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:47:08 UTC
[hbase] branch master 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 master
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/master by this push:
new fe77630 HBASE-25006 Make the cost functions optional for StochastoicBalancer
fe77630 is described below
commit fe776306d09b1e37551a3ccfef800a720866963f
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 | 32 +++++++++++++---------
1 file changed, 19 insertions(+), 13 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 786becd..e123787 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
@@ -205,19 +205,19 @@ 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]);
- costFunctions.add(regionLoadFunctions[4]);
+ 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]);
+ addCostFunction(regionLoadFunctions[4]);
loadCustomCostFunctions(conf);
curFunctionCosts= new Double[costFunctions.size()];
@@ -514,6 +514,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) {