You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zh...@apache.org on 2018/11/28 02:41:19 UTC
hbase git commit: HBASE-21517 Move the getTableRegionForRow method
from HMaster to TestMaster
Repository: hbase
Updated Branches:
refs/heads/master 7877e09b6 -> d6e1d18be
HBASE-21517 Move the getTableRegionForRow method from HMaster to TestMaster
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/d6e1d18b
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/d6e1d18b
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/d6e1d18b
Branch: refs/heads/master
Commit: d6e1d18be901bd969be976ad8d20359e876e6cd0
Parents: 7877e09
Author: Duo Zhang <zh...@apache.org>
Authored: Tue Nov 27 16:14:44 2018 +0800
Committer: Duo Zhang <zh...@apache.org>
Committed: Wed Nov 28 09:40:27 2018 +0800
----------------------------------------------------------------------
.../org/apache/hadoop/hbase/master/HMaster.java | 35 --------------------
.../apache/hadoop/hbase/master/TestMaster.java | 34 +++++++++++++++++--
2 files changed, 32 insertions(+), 37 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/d6e1d18b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
index 428030d..132e271 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
@@ -47,7 +47,6 @@ import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Function;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@@ -84,7 +83,6 @@ import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
import org.apache.hadoop.hbase.client.MasterSwitchType;
import org.apache.hadoop.hbase.client.RegionInfo;
import org.apache.hadoop.hbase.client.RegionInfoBuilder;
-import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.TableDescriptor;
import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
import org.apache.hadoop.hbase.client.TableState;
@@ -2626,39 +2624,6 @@ public class HMaster extends HRegionServer implements MasterServices {
});
}
- /**
- * Return the region and current deployment for the region containing
- * the given row. If the region cannot be found, returns null. If it
- * is found, but not currently deployed, the second element of the pair
- * may be null.
- */
- @VisibleForTesting // Used by TestMaster.
- Pair<RegionInfo, ServerName> getTableRegionForRow(
- final TableName tableName, final byte [] rowKey)
- throws IOException {
- final AtomicReference<Pair<RegionInfo, ServerName>> result = new AtomicReference<>(null);
-
- MetaTableAccessor.Visitor visitor = new MetaTableAccessor.Visitor() {
- @Override
- public boolean visit(Result data) throws IOException {
- if (data == null || data.size() <= 0) {
- return true;
- }
- Pair<RegionInfo, ServerName> pair =
- new Pair<>(MetaTableAccessor.getRegionInfo(data),
- MetaTableAccessor.getServerName(data,0));
- if (!pair.getFirst().getTable().equals(tableName)) {
- return false;
- }
- result.set(pair);
- return true;
- }
- };
-
- MetaTableAccessor.scanMeta(clusterConnection, visitor, tableName, rowKey, 1);
- return result.get();
- }
-
private long modifyTable(final TableName tableName,
final TableDescriptorGetter newDescriptorGetter, final long nonceGroup, final long nonce)
throws IOException {
http://git-wip-us.apache.org/repos/asf/hbase/blob/d6e1d18b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMaster.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMaster.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMaster.java
index af89cbc..7fdf601 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMaster.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMaster.java
@@ -26,6 +26,7 @@ import static org.junit.Assert.fail;
import java.io.IOException;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.atomic.AtomicReference;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
@@ -43,6 +44,7 @@ import org.apache.hadoop.hbase.UnknownRegionException;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.RegionInfo;
import org.apache.hadoop.hbase.client.RegionInfoBuilder;
+import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.client.TableState;
import org.apache.hadoop.hbase.testclassification.MasterTests;
@@ -94,6 +96,35 @@ public class TestMaster {
TEST_UTIL.shutdownMiniCluster();
}
+ /**
+ * Return the region and current deployment for the region containing the given row. If the region
+ * cannot be found, returns null. If it is found, but not currently deployed, the second element
+ * of the pair may be null.
+ */
+ private Pair<RegionInfo, ServerName> getTableRegionForRow(HMaster master, TableName tableName,
+ byte[] rowKey) throws IOException {
+ final AtomicReference<Pair<RegionInfo, ServerName>> result = new AtomicReference<>(null);
+
+ MetaTableAccessor.Visitor visitor = new MetaTableAccessor.Visitor() {
+ @Override
+ public boolean visit(Result data) throws IOException {
+ if (data == null || data.size() <= 0) {
+ return true;
+ }
+ Pair<RegionInfo, ServerName> pair = new Pair<>(MetaTableAccessor.getRegionInfo(data),
+ MetaTableAccessor.getServerName(data, 0));
+ if (!pair.getFirst().getTable().equals(tableName)) {
+ return false;
+ }
+ result.set(pair);
+ return true;
+ }
+ };
+
+ MetaTableAccessor.scanMeta(master.getConnection(), visitor, tableName, rowKey, 1);
+ return result.get();
+ }
+
@Test
@SuppressWarnings("deprecation")
public void testMasterOpsWhileSplitting() throws Exception {
@@ -128,8 +159,7 @@ public class TestMaster {
// We have three regions because one is split-in-progress
assertEquals(3, tableRegions.size());
LOG.info("Making sure we can call getTableRegionClosest while opening");
- Pair<RegionInfo, ServerName> pair =
- m.getTableRegionForRow(TABLENAME, Bytes.toBytes("cde"));
+ Pair<RegionInfo, ServerName> pair = getTableRegionForRow(m, TABLENAME, Bytes.toBytes("cde"));
LOG.info("Result is: " + pair);
Pair<RegionInfo, ServerName> tableRegionFromName =
MetaTableAccessor.getRegion(m.getConnection(),