This is an automated email from the ASF dual-hosted git repository.
rmattingly 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 032d937f54e HBASE-29262 StochasticLoadBalancer should use the
CostFunction epsilon when evaluating whether a move improved costs (#6907)
(#6909)
032d937f54e is described below
commit 032d937f54e5a23f4c2839ee0ce945cb667d4aed
Author: Ray Mattingly <[email protected]>
AuthorDate: Wed Apr 16 08:52:49 2025 -0400
HBASE-29262 StochasticLoadBalancer should use the CostFunction epsilon when
evaluating whether a move improved costs (#6907) (#6909)
Signed-off-by: Nick Dimiduk <[email protected]>
Co-authored-by: Ray Mattingly <[email protected]>
---
.../apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
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 44e5aad3a6b..689c65fd6ca 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
@@ -730,8 +730,12 @@ public class StochasticLoadBalancer extends
BaseLoadBalancer {
newCost = computeCost(cluster, currentCost);
+ double costImprovement = currentCost - newCost;
+ double minimumImprovement =
+ Math.max(CostFunction.getCostEpsilon(currentCost),
CostFunction.getCostEpsilon(newCost));
+ boolean costsImproved = costImprovement > minimumImprovement;
boolean conditionalsSimilarCostsImproved =
- (newCost < currentCost && conditionalViolationsChange == 0 &&
!isViolatingConditionals);
+ (costsImproved && conditionalViolationsChange == 0 &&
!isViolatingConditionals);
// Our first priority is to reduce conditional violations
// Our second priority is to reduce balancer cost
// change, regardless of cost change