You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by bu...@apache.org on 2017/06/27 19:58:34 UTC
[2/6] hbase git commit: HBASE-18164 Fast locality computation in
balancer - addendum handles NaN
HBASE-18164 Fast locality computation in balancer - addendum handles NaN
Signed-off-by: tedyu <yu...@gmail.com>
Signed-off-by: Sean Busbey <bu...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/bb181ff5
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/bb181ff5
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/bb181ff5
Branch: refs/heads/branch-1
Commit: bb181ff50bd60120bcda463d6d71db8505170e88
Parents: 386a6e8
Author: Kahlil Oppenheimer <ka...@gmail.com>
Authored: Tue Jun 6 15:53:43 2017 -0400
Committer: Sean Busbey <bu...@apache.org>
Committed: Tue Jun 27 13:33:48 2017 -0500
----------------------------------------------------------------------
.../hadoop/hbase/master/balancer/StochasticLoadBalancer.java | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/bb181ff5/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 6f99f44..0f29a1a 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
@@ -1279,8 +1279,9 @@ public class StochasticLoadBalancer extends BaseLoadBalancer {
}
// We normalize locality to be a score between 0 and 1.0 representing how good it
- // is compared to how good it could be
- locality /= bestLocality;
+ // is compared to how good it could be. If bestLocality is 0, assume locality is 100
+ // (and the cost is 0)
+ locality = bestLocality == 0 ? 1.0 : locality / bestLocality;
}
@Override
@@ -1291,7 +1292,7 @@ public class StochasticLoadBalancer extends BaseLoadBalancer {
return;
}
double localityDelta = getWeightedLocality(region, newEntity) - getWeightedLocality(region, oldEntity);
- double normalizedDelta = localityDelta / bestLocality;
+ double normalizedDelta = bestLocality == 0 ? 0.0 : localityDelta / bestLocality;
locality += normalizedDelta;
}