BASE-8432 a table with unbalanced regions will balance indefinitely with the 'org.apache.hadoop.hbase.master.DefaultLoadBalancer' (Wang Qiang and Ted)

git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1504939 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
larsh 2013-07-19 16:54:55 +00:00
parent 54c1e1b517
commit 581c3f2634

View File

@ -266,8 +266,8 @@ public class DefaultLoadBalancer extends BaseLoadBalancer {
if (regionsToPut == 0)
{
regionsToPut = 1;
maxToTake--;
}
maxToTake -= regionsToPut;
underloadedServers.put(server.getKey().getServerName(), regionsToPut);
}
// number of servers that get new regions
@ -375,6 +375,10 @@ public class DefaultLoadBalancer extends BaseLoadBalancer {
for (Map.Entry<ServerAndLoad, List<HRegionInfo>> server :
serversByLoad.entrySet()) {
int regionCount = server.getKey().getLoad();
BalanceInfo balanceInfo = serverBalanceInfo.get(server.getKey().getServerName());
if(balanceInfo != null) {
regionCount += balanceInfo.getNumRegionsAdded();
}
if(regionCount >= max) {
break;
}