You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by hu...@apache.org on 2021/10/25 22:45:53 UTC

[hbase] branch branch-2 updated: HBASE-26327 Replicas cohosted on a rack shouldn't keep triggering balancer (#3788)

This is an automated email from the ASF dual-hosted git repository.

huaxiangsun pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-2 by this push:
     new 32eb23c  HBASE-26327 Replicas cohosted on a rack shouldn't keep triggering balancer (#3788)
32eb23c is described below

commit 32eb23c8f36381fc7da2c288133a04db7b799679
Author: clarax <cl...@gmail.com>
AuthorDate: Mon Oct 25 15:44:11 2021 -0700

    HBASE-26327 Replicas cohosted on a rack shouldn't keep triggering balancer (#3788)
    
    Signed-off-by: Huaxiang Sun <hu...@apache.org>
---
 .../apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java | 6 +-----
 .../master/balancer/TestStochasticLoadBalancerRegionReplica.java    | 4 ++--
 .../balancer/TestStochasticLoadBalancerRegionReplicaWithRacks.java  | 2 +-
 3 files changed, 4 insertions(+), 8 deletions(-)

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 3dc7670..f2993de 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
@@ -337,11 +337,7 @@ public class StochasticLoadBalancer extends BaseLoadBalancer {
     if (Math.abs(regionReplicaHostCostFunction.cost()) > CostFunction.COST_EPSILON) {
       return true;
     }
-    regionReplicaRackCostFunction.prepare(c);
-    if (Math.abs(regionReplicaRackCostFunction.cost()) > CostFunction.COST_EPSILON) {
-      return true;
-    }
-    return false;
+    return (Math.abs(regionReplicaHostCostFunction.cost()) > CostFunction.COST_EPSILON);
   }
 
   @RestrictedApi(explanation = "Should only be called in tests", link = "",
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplica.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplica.java
index 8262e2c..cccb854 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplica.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplica.java
@@ -18,6 +18,7 @@
 package org.apache.hadoop.hbase.master.balancer;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
 import java.util.ArrayList;
@@ -161,8 +162,7 @@ public class TestStochasticLoadBalancerRegionReplica extends BalancerTestBase {
     map.put(s2, regionsOnS2);
     // add another server so that the cluster has some host on another rack
     map.put(ServerName.valueOf("host2", 1000, 11111), randomRegions(1));
-    assertTrue(
-      loadBalancer.needsBalance(HConstants.ENSEMBLE_TABLE_NAME,
+    assertFalse(loadBalancer.needsBalance(HConstants.ENSEMBLE_TABLE_NAME,
         new BalancerClusterState(map, null, null, new ForTestRackManagerOne())));
   }
 
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaWithRacks.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaWithRacks.java
index b682c4b..ea305d3 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaWithRacks.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/balancer/TestStochasticLoadBalancerRegionReplicaWithRacks.java
@@ -51,7 +51,7 @@ public class TestStochasticLoadBalancerRegionReplicaWithRacks extends BalancerTe
 
   @Test
   public void testRegionReplicationOnMidClusterWithRacks() {
-    conf.setLong(StochasticLoadBalancer.MAX_STEPS_KEY, 10000000L);
+    conf.setLong(StochasticLoadBalancer.MAX_STEPS_KEY, 100000000L);
     conf.setFloat("hbase.master.balancer.stochastic.maxMovePercent", 1.0f);
     conf.setLong("hbase.master.balancer.stochastic.maxRunningTime", 120 * 1000); // 120 sec
     loadBalancer.onConfigurationChange(conf);