Skip to content

Commit eb69eae

Browse files
author
Ray Mattingly
committed
HBASE-29262 StochasticLoadBalancer should use the CostFunction epsilon when evaluating whether a move improved costs
1 parent 78f0101 commit eb69eae

1 file changed

Lines changed: 3 additions & 1 deletion

File tree

hbase-balancer/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -683,8 +683,10 @@ protected List<RegionPlan> balanceTable(TableName tableName,
683683

684684
newCost = computeCost(cluster, currentCost);
685685

686+
double costImprovement = currentCost - newCost;
687+
boolean costsImproved = costImprovement > CostFunction.getCostEpsilon(costImprovement);
686688
boolean conditionalsSimilarCostsImproved =
687-
(newCost < currentCost && conditionalViolationsChange == 0 && !isViolatingConditionals);
689+
(costsImproved && conditionalViolationsChange == 0 && !isViolatingConditionals);
688690
// Our first priority is to reduce conditional violations
689691
// Our second priority is to reduce balancer cost
690692
// change, regardless of cost change

0 commit comments

Comments
 (0)