[ https://issues.apache.org/jira/browse/HBASE-7060?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Lars Hofhansl updated HBASE-7060: --------------------------------- Resolution: Fixed Status: Resolved (was: Patch Available) Marking as fixed. > Region load balancing by table does not handle the case where a table's > region count is lower than the number of the RS in the cluster > -------------------------------------------------------------------------------------------------------------------------------------- > > Key: HBASE-7060 > URL: https://issues.apache.org/jira/browse/HBASE-7060 > Project: HBase > Issue Type: Bug > Components: master > Affects Versions: 0.92.0 > Reporter: Tianying Chang > Assignee: Ted Yu > Fix For: 0.94.3, 0.96.0 > > Attachments: 7060-94.txt, 7060-94-v2.txt, 7060-test-tentative-94.txt, > 7060-trunk.txt, HBASE-7060.patch > > > When the table's region count is less than the count of region servers, the > region balance algorithm will not move the region. For example, the cluster > has 100 RS, the table has 50 regions sitting on one RS, they will not be > moved to any of the other 99 RS. > This is because the algorithm did not calculate the under-loaded RS > correctly. This is how the algorithm works with the above example: > avg-regions-per-RS=0.5 > min-RS-per-RS=0 > max-RS-per-RS=1 > when they calculate the under loaded RS, the code is as below. Since > regionCount=0, which is always >=min, so it will always skip, therefore, no > underloaded RS are found. > Map<ServerName, Integer> underloadedServers = new HashMap<ServerName, > Integer>(); > for (Map.Entry<ServerAndLoad, List<HRegionInfo>> server: > serversByLoad.entrySet()) { > int regionCount = server.getKey().getLoad(); > if (regionCount >= min) { break; } > underloadedServers.put(server.getKey().getServerName(), min - regionCount); > } > Later the function returns since underloaded RS size is 0 > if (serverUnerloaded ==0) return regionsToReturn; -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira