[ https://issues.apache.org/jira/browse/HBASE-8710?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13781572#comment-13781572 ]
James Kinley commented on HBASE-8710: ------------------------------------- needsBalance() uses an instance of ClusterLoadState to determine how many servers are active in the cluster. By default, "hbase.master.loadbalance.bytable" is false and therefore ClusterLoadState has a global view of the cluster and how many servers there are. If "hbase.master.loadbalance.bytable" was set to true then ClusterLoadState will only have a per table view of the cluster. In this case, if the logic was moved to needsBalance() then the balancer may or may not run for each table, it will definitely not run when the cluster has a single server, but needsBalance() will be called for each table. Is this what you would expect? Is there any reason why ClusterLoadState and ClusterStatus cannot be merged? At the moment, a new instance of both is created every time the balancer is run and ClusterStatus is only used by StochasticLoadBalancer. Wouldn't it be better to have a single ClusterStatus object that also contains load information, and to call balancer.needsBalance() from HMaster#balance() before balancer.balanceCluster()? The two other checks in HMaster#balance() could also be moved into balancer.needsBalance() - isRegionsInTransition() and areDeadServersInProgress(). > The balancer shouldn't try balancing one node > --------------------------------------------- > > Key: HBASE-8710 > URL: https://issues.apache.org/jira/browse/HBASE-8710 > Project: HBase > Issue Type: Bug > Affects Versions: 0.95.1 > Reporter: Jean-Daniel Cryans > Assignee: James Kinley > Priority: Minor > Fix For: 0.96.0 > > Attachments: HBASE-8710-1.patch, HBASE-8710-2.patch > > > In my logs, testing 0.95.1 RC1, I see: > {noformat} > 2013-06-07 17:31:47,377 DEBUG > [ip-10-20-46-44.novalocal,48569,1370640098134-BalancerChore] > balancer.StochasticLoadBalancer: Could not find a better load balance plan. > Tried 3200 different configurations in 27ms, and did not find anything with a > computed cost less than 25.0 > {noformat} > Ideally we'd not even try one configuration, let alone 3.2k. -- This message was sent by Atlassian JIRA (v6.1#6144)