[ https://issues.apache.org/jira/browse/HBASE-13376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14560093#comment-14560093 ]
Ted Yu commented on HBASE-13376: -------------------------------- In getLowestLocalRegionOnServer(): {code} 810 for (int j = 0; j < regionsPerServer[serverIndex].length; j++) { ... 819 } 820 LOG.debug(" Lowest locality region index is " + lowestLocalRegionIndex 821 + " and its region server contains " + regionsPerServer[serverIndex].length 822 + " regions"); 823 return regionsPerServer[serverIndex][lowestLocalRegionIndex]; {code} If the server doesn't have any region, accessing lowestLocalRegionIndex at line 823 would produce exception. Better guard against this situation. > Improvements to Stochastic load balancer > ---------------------------------------- > > Key: HBASE-13376 > URL: https://issues.apache.org/jira/browse/HBASE-13376 > Project: HBase > Issue Type: Improvement > Components: Balancer > Affects Versions: 1.0.0, 0.98.12 > Reporter: Vandana Ayyalasomayajula > Assignee: Vandana Ayyalasomayajula > Priority: Minor > Attachments: HBASE-13376_0.98.txt, HBASE-13376_0.txt, > HBASE-13376_1.txt, HBASE-13376_98.patch > > > There are two things this jira tries to address: > 1. The locality picker in the stochastic balancer does not pick regions with > least locality as candidates for swap/move. So when any user configures > locality cost in the configs, the balancer does not always seems to move > regions with bad locality. > 2. When a cluster has equal number of loaded regions, it always picks the > first one. It should pick a random region on one of the equally loaded > servers. This improves a chance of finding a good candidate, when load picker > is invoked several times. -- This message was sent by Atlassian JIRA (v6.3.4#6332)