HBASE-23335 : Improving cost functions array copy in StochasticLoadBalancer (#874)
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 5ad32f6..911f8fe 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
@@ -417,9 +417,7 @@
double currentCost = computeCost(cluster, Double.MAX_VALUE);
curOverallCost = currentCost;
- for (int i = 0; i < this.curFunctionCosts.length; i++) {
- curFunctionCosts[i] = tempFunctionCosts[i];
- }
+ System.arraycopy(tempFunctionCosts, 0, curFunctionCosts, 0, curFunctionCosts.length);
double initCost = currentCost;
double newCost = currentCost;
@@ -463,9 +461,7 @@
// save for JMX
curOverallCost = currentCost;
- for (int i = 0; i < this.curFunctionCosts.length; i++) {
- curFunctionCosts[i] = tempFunctionCosts[i];
- }
+ System.arraycopy(tempFunctionCosts, 0, curFunctionCosts, 0, curFunctionCosts.length);
} else {
// Put things back the way they were before.
// TODO: undo by remembering old values