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:
parent
54c1e1b517
commit
581c3f2634
@ -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;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user