You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2018/10/23 20:22:15 UTC
hbase git commit: HBASE-21338 Warn if balancer is an ill-fit for
cluster size
Repository: hbase
Updated Branches:
refs/heads/branch-2.0 2b675e36d -> 8a04d444d
HBASE-21338 Warn if balancer is an ill-fit for cluster size
Signed-off-by: Michael Stack <st...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/8a04d444
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/8a04d444
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/8a04d444
Branch: refs/heads/branch-2.0
Commit: 8a04d444d7ea999f06c3a15137c75b507ae75925
Parents: 2b675e3
Author: xcang <xc...@salesforce.com>
Authored: Mon Oct 22 16:29:08 2018 -0700
Committer: Michael Stack <st...@apache.org>
Committed: Tue Oct 23 13:21:36 2018 -0700
----------------------------------------------------------------------
.../master/balancer/StochasticLoadBalancer.java | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/8a04d444/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
index d134690..b2c6629 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java
@@ -372,9 +372,6 @@ public class StochasticLoadBalancer extends BaseLoadBalancer {
for (int i = 0; i < this.curFunctionCosts.length; i++) {
curFunctionCosts[i] = tempFunctionCosts[i];
}
- LOG.info("start StochasticLoadBalancer.balancer, initCost=" + currentCost + ", functionCost="
- + functionCost());
-
double initCost = currentCost;
double newCost = currentCost;
@@ -383,9 +380,20 @@ public class StochasticLoadBalancer extends BaseLoadBalancer {
computedMaxSteps = Math.max(this.maxSteps,
((long)cluster.numRegions * (long)this.stepsPerRegion * (long)cluster.numServers));
} else {
- computedMaxSteps = Math.min(this.maxSteps,
- ((long)cluster.numRegions * (long)this.stepsPerRegion * (long)cluster.numServers));
+ long calculatedMaxSteps = (long)cluster.numRegions * (long)this.stepsPerRegion *
+ (long)cluster.numServers;
+ computedMaxSteps = Math.min(this.maxSteps, calculatedMaxSteps);
+ if (calculatedMaxSteps > maxSteps) {
+ LOG.warn("calculatedMaxSteps:{} for loadbalancer's stochastic walk is larger than "
+ + "maxSteps:{}. Hence load balancing may not work well. Setting parameter "
+ + "\"hbase.master.balancer.stochastic.runMaxSteps\" to true can overcome this issue."
+ + "(This config change does not require service restart)", calculatedMaxSteps,
+ maxRunningTime);
+ }
}
+ LOG.info("start StochasticLoadBalancer.balancer, initCost=" + currentCost + ", functionCost="
+ + functionCost() + " computedMaxSteps: " + computedMaxSteps);
+
// Perform a stochastic walk to see if we can get a good fit.
long step;