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;
     }