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