[ https://issues.apache.org/jira/browse/HBASE-17159?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15688833#comment-15688833 ]
Charlie Qiangeng Xu commented on HBASE-17159: --------------------------------------------- Among the comment for the roundRobinAssignment function in the class of BaseLoadBalancer.java: {noformat} * Currently implemented as a round-robin assignment. Same invariant as load * balancing, all servers holding floor(avg) or ceiling(avg). * * TODO: Use block locations from HDFS to place regions with their blocks {noformat} and inside the body of roundRobinAssignment function: {noformat} // TODO: instead of retainAssignment() and roundRobinAssignment(), we should just run the // normal LB.balancerCluster() with unassignedRegions. We only need to have a candidate // generator for AssignRegionAction. The LB will ensure the regions are mostly local // and balanced. This should also run fast with fewer number of iterations. {noformat} > Improve the assignment plan when server aborted or creating tables, etc. > ------------------------------------------------------------------------ > > Key: HBASE-17159 > URL: https://issues.apache.org/jira/browse/HBASE-17159 > Project: HBase > Issue Type: New Feature > Components: Balancer, Region Assignment > Affects Versions: 2.0.0, 1.2.4 > Reporter: Charlie Qiangeng Xu > > When master processing a dead serve or creating a new table, the assignment > plan would be generated based on the roundRobinAssignment method of balancer. > Yet if these operations happen a lot, the cluster would be out of balance > both on table level and server level. Balancer would be triggered and may > cause huge amount of region moves( This is what we observed). > Ideally, the assignment should be able to consider the table or cluster level > balance as well as locality(for the case of dead server). > -- This message was sent by Atlassian JIRA (v6.3.4#6332)