[
https://issues.apache.org/jira/browse/HBASE-12760?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14259819#comment-14259819
]
Elliott Clark commented on HBASE-12760:
---------------------------------------
Not sure that this one is a gain. It's possible that moving the region from
it's highest locality server to a different server could result in a better
balance. In that case then checking out if moving to the second highest
locality server helps then why not look ?
> Return NullAction when region is located in highest locality server
> -------------------------------------------------------------------
>
> Key: HBASE-12760
> URL: https://issues.apache.org/jira/browse/HBASE-12760
> Project: HBase
> Issue Type: Improvement
> Components: Balancer
> Affects Versions: 0.99.2
> Reporter: cuijianwei
> Priority: Minor
> Attachments: HBASE-12760-trunk.patch
>
>
> StochasticLoadBalancer#LocalityBasedCandidateGenerator will try to move a
> region to the server with the highest locality. The target server is selected
> by LocalityBasedCandidateGenerator.pickHighestLocalityServer, as:
> {code}
> private int pickHighestLocalityServer(Cluster cluster, int thisServer,
> int thisRegion) {
> ...
> for (int loc : regionLocations) {
> if (loc >= 0 && loc != thisServer) { // find the first suitable server
> return loc;
> }
> }
> ...
> }
> {code}
> If the region is just located in the best server, the current logic will
> choose the server having the second highest locality, generating an action to
> try to move region to server with lower locality. Is it better to return a
> NullAction in this situation (as below)? so that there won't be further
> computing caused by the generated action.
> {code}
> private int pickHighestLocalityServer(Cluster cluster, int thisServer,
> int thisRegion) {
> ...
> for (int loc : regionLocations) {
> if (loc == thisServer) {
> return -1; // return NullAction when the region is just located in
> the best server
> }
> if (loc >= 0) { // find the first suitable server
> return loc;
> }
> }
> ...
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)