You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by se...@apache.org on 2013/04/05 23:56:53 UTC
svn commit: r1465142 - in
/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase:
HRegionInfo.java client/HConnection.java client/HConnectionManager.java
Author: sershe
Date: Fri Apr 5 21:56:53 2013
New Revision: 1465142
URL: http://svn.apache.org/r1465142
Log:
HBASE-8274 Backport to 94: HBASE-7488 Implement HConnectionManager.locateRegions which is currently returning null
Modified:
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HConnection.java
hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java?rev=1465142&r1=1465141&r2=1465142&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/HRegionInfo.java Fri Apr 5 21:56:53 2013
@@ -405,6 +405,15 @@ implements WritableComparable<HRegionInf
}
/**
+ * Gets the start key from the specified region name.
+ * @param regionName
+ * @return Start key.
+ */
+ public static byte[] getStartKey(final byte[] regionName) throws IOException {
+ return parseRegionName(regionName)[1];
+ }
+
+ /**
* Separate elements of a regionName.
* @param regionName
* @return Array of byte[] containing tableName, startKey and id
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HConnection.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HConnection.java?rev=1465142&r1=1465141&r2=1465142&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HConnection.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HConnection.java Fri Apr 5 21:56:53 2013
@@ -191,8 +191,20 @@ public interface HConnection extends Abo
* @return list of region locations for all regions of table
* @throws IOException
*/
- public List<HRegionLocation> locateRegions(byte[] tableName)
- throws IOException;
+ public List<HRegionLocation> locateRegions(final byte[] tableName)
+ throws IOException;
+
+ /**
+ * Gets the locations of all regions in the specified table, <i>tableName</i>.
+ * @param tableName table to get regions of
+ * @param useCache Should we use the cache to retrieve the region information.
+ * @param offlined True if we are to include offlined regions, false and we'll leave out offlined
+ * regions from returned list.
+ * @return list of region locations for all regions of table
+ * @throws IOException
+ */
+ public List<HRegionLocation> locateRegions(final byte[] tableName, final boolean useCache,
+ final boolean offlined) throws IOException;
/**
* Establishes a connection to the region server at the specified address.
Modified: hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java?rev=1465142&r1=1465141&r2=1465142&view=diff
==============================================================================
--- hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java (original)
+++ hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java Fri Apr 5 21:56:53 2013
@@ -32,6 +32,7 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.NavigableMap;
import java.util.Set;
import java.util.TreeMap;
import java.util.concurrent.Callable;
@@ -827,17 +828,27 @@ public class HConnectionManager {
}
@Override
- public HRegionLocation locateRegion(final byte [] regionName)
- throws IOException {
- // TODO implement. use old stuff or new stuff?
- return null;
+ public HRegionLocation locateRegion(final byte[] regionName) throws IOException {
+ return locateRegion(HRegionInfo.getTableName(regionName),
+ HRegionInfo.getStartKey(regionName), false, true);
}
@Override
- public List<HRegionLocation> locateRegions(final byte [] tableName)
+ public List<HRegionLocation> locateRegions(final byte[] tableName)
throws IOException {
- // TODO implement. use old stuff or new stuff?
- return null;
+ return locateRegions(tableName, false, true);
+ }
+
+ @Override
+ public List<HRegionLocation> locateRegions(final byte[] tableName, final boolean useCache,
+ final boolean offlined) throws IOException {
+ NavigableMap<HRegionInfo, ServerName> regions = MetaScanner.allTableRegions(conf, tableName,
+ offlined);
+ final List<HRegionLocation> locations = new ArrayList<HRegionLocation>();
+ for (HRegionInfo regionInfo : regions.keySet()) {
+ locations.add(locateRegion(tableName, regionInfo.getStartKey(), useCache, true));
+ }
+ return locations;
}
public HRegionLocation locateRegion(final byte [] tableName,