Skip to content

Commit

Permalink
HBASE-26327 Replicas cohosted on a rack shouldn't keep triggering Bal… (
Browse files Browse the repository at this point in the history
apache#3729)

Signed-off-by: Huaxiang Sun <[email protected]>
  • Loading branch information
clarax authored Oct 25, 2021
1 parent ffb20ca commit 7af5277
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -311,14 +311,7 @@ void updateMetricsSize(int size) {

private boolean areSomeRegionReplicasColocated(BalancerClusterState c) {
regionReplicaHostCostFunction.prepare(c);
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);
}

private String getBalanceReason(double total, double sumMultiplier) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -161,8 +162,7 @@ public void testNeedsBalanceForColocatedReplicas() {
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())));
}

Expand Down

0 comments on commit 7af5277

Please sign in to comment.