You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by vj...@apache.org on 2020/09/13 08:55:57 UTC
[hbase] branch branch-2.3 updated: HBASE-25006 Make the cost
functions optional for StochastoicBalancer
This is an automated email from the ASF dual-hosted git repository.
vjasani pushed a commit to branch branch-2.3
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2.3 by this push:
new dae0a67 HBASE-25006 Make the cost functions optional for StochastoicBalancer
dae0a67 is described below
commit dae0a67f1e29cdfd7ca4dd45577d65f21730bb1b
Author: Clara Xiong <cl...@gmail.com>
AuthorDate: Sun Sep 13 14:10:58 2020 +0530
HBASE-25006 Make the cost functions optional for StochastoicBalancer
Closes #2386
Signed-off-by: Nick Dimiduk <nd...@apache.org>
Signed-off-by: Viraj Jasani <vj...@apache.org>
---
.../master/balancer/StochasticLoadBalancer.java | 30 +++++++++++++---------
1 file changed, 18 insertions(+), 12 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 7bbcc91..8550877 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
@@ -204,18 +204,18 @@ public class StochasticLoadBalancer extends BaseLoadBalancer {
regionReplicaRackCostFunction = new RegionReplicaRackCostFunction(conf);
costFunctions = new ArrayList<>();
- costFunctions.add(new RegionCountSkewCostFunction(conf));
- costFunctions.add(new PrimaryRegionCountSkewCostFunction(conf));
- costFunctions.add(new MoveCostFunction(conf));
- costFunctions.add(localityCost);
- costFunctions.add(rackLocalityCost);
- costFunctions.add(new TableSkewCostFunction(conf));
- costFunctions.add(regionReplicaHostCostFunction);
- costFunctions.add(regionReplicaRackCostFunction);
- costFunctions.add(regionLoadFunctions[0]);
- costFunctions.add(regionLoadFunctions[1]);
- costFunctions.add(regionLoadFunctions[2]);
- costFunctions.add(regionLoadFunctions[3]);
+ addCostFunction(new RegionCountSkewCostFunction(conf));
+ addCostFunction(new PrimaryRegionCountSkewCostFunction(conf));
+ addCostFunction(new MoveCostFunction(conf));
+ addCostFunction(localityCost);
+ addCostFunction(rackLocalityCost);
+ addCostFunction(new TableSkewCostFunction(conf));
+ addCostFunction(regionReplicaHostCostFunction);
+ addCostFunction(regionReplicaRackCostFunction);
+ addCostFunction(regionLoadFunctions[0]);
+ addCostFunction(regionLoadFunctions[1]);
+ addCostFunction(regionLoadFunctions[2]);
+ addCostFunction(regionLoadFunctions[3]);
loadCustomCostFunctions(conf);
curFunctionCosts = new Double[costFunctions.size()];
@@ -513,6 +513,12 @@ public class StochasticLoadBalancer extends BaseLoadBalancer {
}
}
+ private void addCostFunction(CostFunction costFunction) {
+ if (costFunction.getMultiplier() > 0) {
+ costFunctions.add(costFunction);
+ }
+ }
+
private String functionCost() {
StringBuilder builder = new StringBuilder();
for (CostFunction c:costFunctions) {