Repository: hbase Updated Branches: refs/heads/branch-1 542536932 -> 3c8ac97c7
HBASE-12697 Don't use RegionLocationFinder if localityCost == 0 Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/3c8ac97c Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/3c8ac97c Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/3c8ac97c Branch: refs/heads/branch-1 Commit: 3c8ac97c768f6b7b9ada3707e955fd2adfd87140 Parents: 5425369 Author: Elliott Clark <[email protected]> Authored: Mon Dec 15 19:11:54 2014 -0800 Committer: Elliott Clark <[email protected]> Committed: Fri Dec 26 11:13:35 2014 -0800 ---------------------------------------------------------------------- .../hbase/master/balancer/StochasticLoadBalancer.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/3c8ac97c/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.java ---------------------------------------------------------------------- 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 9d8c7cb..5119614 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 @@ -229,10 +229,19 @@ public class StochasticLoadBalancer extends BaseLoadBalancer { clusterState.remove(masterServerName); } + // On clusters with lots of HFileLinks or lots of reference files, + // instantiating the storefile infos can be quite expensive. + // Allow turning this feature off if the locality cost is not going to + // be used in any computations. + RegionLocationFinder finder = null; + if (this.localityCost != null && this.localityCost.getMultiplier() > 0) { + finder = this.regionFinder; + } + //The clusterState that is given to this method contains the state //of all the regions in the table(s) (that's true today) // Keep track of servers to iterate through them. - Cluster cluster = new Cluster(clusterState, loads, regionFinder, rackManager); + Cluster cluster = new Cluster(clusterState, loads, finder, rackManager); if (!needsBalance(cluster)) { return null; }
