From a10dd4a5d020220a045af5c93b594910028449b4 Mon Sep 17 00:00:00 2001 From: John Leach Date: Tue, 27 Jun 2017 13:54:33 -0500 Subject: [PATCH] HBASE-18280 Remove Manual Array Copies --- .../src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java | 4 +--- .../src/main/java/org/apache/hadoop/hbase/util/Bytes.java | 8 ++------ .../hadoop/hbase/master/balancer/StochasticLoadBalancer.java | 8 ++------ 3 files changed, 5 insertions(+), 15 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java index 1c6ea03b0c..8250f0460f 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java @@ -688,9 +688,7 @@ public class HBaseAdmin implements Admin { return splits; } splits = new byte[startKeys.length - 1][]; - for (int i = 1; i < startKeys.length; i++) { - splits[i - 1] = startKeys[i]; - } + System.arraycopy(startKeys, 1, splits, 0, startKeys.length - 1); } return splits; } diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Bytes.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Bytes.java index a481d27a6b..ae2b4ab8a7 100644 --- a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Bytes.java +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/Bytes.java @@ -1917,12 +1917,8 @@ public class Bytes implements Comparable { if(diffBI.compareTo(splitsBI) < 0) { byte[] aPaddedAdditional = new byte[aPadded.length+1]; byte[] bPaddedAdditional = new byte[bPadded.length+1]; - for (int i = 0; i < aPadded.length; i++){ - aPaddedAdditional[i] = aPadded[i]; - } - for (int j = 0; j < bPadded.length; j++){ - bPaddedAdditional[j] = bPadded[j]; - } + System.arraycopy(aPadded, 0, aPaddedAdditional, 0, aPadded.length); + System.arraycopy(bPadded, 0, bPaddedAdditional, 0, bPadded.length); aPaddedAdditional[aPadded.length] = 0; bPaddedAdditional[bPadded.length] = 0; return iterateOnSplits(aPaddedAdditional, bPaddedAdditional, inclusive, num); 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 ece9153475..d6718563ab 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 @@ -363,9 +363,7 @@ public class StochasticLoadBalancer extends BaseLoadBalancer { 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, this.curFunctionCosts.length); LOG.info("start StochasticLoadBalancer.balancer, initCost=" + currentCost + ", functionCost=" + functionCost()); @@ -403,9 +401,7 @@ public class StochasticLoadBalancer extends BaseLoadBalancer { // save for JMX curOverallCost = currentCost; - for (int i = 0; i < this.curFunctionCosts.length; i++) { - curFunctionCosts[i] = tempFunctionCosts[i]; - } + System.arraycopy(tempFunctionCosts, 0, curFunctionCosts, 0, this.curFunctionCosts.length); } else { // Put things back the way they were before. // TODO: undo by remembering old values -- 2.13.0