From a6160e86933bdde4ddfc1ed29be061cf59ef7905 Mon Sep 17 00:00:00 2001 From: Umesh Agashe Date: Mon, 22 May 2017 11:04:33 -0700 Subject: [PATCH] HBASE-18087 Fix unit tests in TestTableFavoredNodes AssignmentManager call getFavoredNodes() on LoadBalancer and expects non-empty result. Adding getFavoredNodes() method to FavoredStochasticBalancer fixes broken unit tests. --- .../apache/hadoop/hbase/master/assignment/AssignmentManager.java | 7 +++---- .../hadoop/hbase/master/balancer/FavoredStochasticBalancer.java | 4 ++++ .../java/org/apache/hadoop/hbase/client/TestTableFavoredNodes.java | 1 - 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java index eceb6246dd81b6eb1f6adc886b9edc64b522b440..809902f6056151adcc76ebf17767e2a28003d2e3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignmentManager.java @@ -49,7 +49,7 @@ import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.hbase.client.TableState; import org.apache.hadoop.hbase.exceptions.UnexpectedStateException; -import org.apache.hadoop.hbase.favored.FavoredNodeLoadBalancer; +import org.apache.hadoop.hbase.master.balancer.FavoredStochasticBalancer; import org.apache.hadoop.hbase.favored.FavoredNodesManager; import org.apache.hadoop.hbase.favored.FavoredNodesPromoter; import org.apache.hadoop.hbase.master.AssignmentListener; @@ -83,7 +83,6 @@ import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProto import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionRequest; import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionResponse; import org.apache.hadoop.hbase.util.Bytes; -import org.apache.hadoop.hbase.util.EnvironmentEdge; import org.apache.hadoop.hbase.util.EnvironmentEdgeManager; import org.apache.hadoop.hbase.util.Pair; import org.apache.hadoop.hbase.util.Threads; @@ -287,7 +286,7 @@ public class AssignmentManager implements ServerListener { final Configuration conf = master.getConfiguration(); // Only read favored nodes if using the favored nodes load balancer. - this.shouldAssignRegionsWithFavoredNodes = FavoredNodeLoadBalancer.class.isAssignableFrom( + this.shouldAssignRegionsWithFavoredNodes = FavoredStochasticBalancer.class.isAssignableFrom( conf.getClass(HConstants.HBASE_MASTER_LOADBALANCER_CLASS, Object.class)); this.assignDispatchWaitMillis = conf.getInt(ASSIGN_DISPATCH_WAIT_MSEC_CONF_KEY, @@ -414,7 +413,7 @@ public class AssignmentManager implements ServerListener { public List getFavoredNodes(final HRegionInfo regionInfo) { return this.shouldAssignRegionsWithFavoredNodes? - ((FavoredNodeLoadBalancer)getBalancer()).getFavoredNodes(regionInfo): + ((FavoredStochasticBalancer)getBalancer()).getFavoredNodes(regionInfo): ServerName.EMPTY_SERVER_LIST; } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.java index 6d2a404762fa921e804241d0f556cd12c7936f21..a8e22cec2508731959a447da07f9ddb5d6302a61 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.java @@ -469,6 +469,10 @@ public class FavoredStochasticBalancer extends StochasticLoadBalancer implements } } + public synchronized List getFavoredNodes(HRegionInfo regionInfo) { + return this.fnm.getFavoredNodes(regionInfo); + } + /* * Generate Favored Nodes for daughters during region split. * diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestTableFavoredNodes.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestTableFavoredNodes.java index 7c0aa74b5bb4c13ef363a97fc0d69f26eca0748d..46f79bd3c1aa9328e85c8d1b67a2df261c5b106b 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestTableFavoredNodes.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestTableFavoredNodes.java @@ -45,7 +45,6 @@ import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.Waiter; import org.apache.hadoop.hbase.favored.FavoredNodeAssignmentHelper; -import org.apache.hadoop.hbase.favored.FavoredNodeLoadBalancer; import org.apache.hadoop.hbase.favored.FavoredNodesManager; import org.apache.hadoop.hbase.master.LoadBalancer; import org.apache.hadoop.hbase.master.ServerManager; -- 2.10.1 (Apple Git-78)