Repository: hbase Updated Branches: refs/heads/master 30424ec73 -> 8426f1f53
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/8426f1f5 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/8426f1f5 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/8426f1f5 Branch: refs/heads/master Commit: 8426f1f53a5fecffe05bdd894779b08e23bbbfbf Parents: 30424ec 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:28 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/8426f1f5/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; }
