[ 
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)

Reply via email to