Hi,

I was wondering if someone could confirm or deny my suspicion that the
"numMaxRegionsPerTable" is not being updated properly at line 670 of
BaseLoadBalancer.java
<https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.java>.
The comment says "check whether this caused maxRegionsPerTable in the new
Server to be updated" but then does not update numMaxRegionsPerTable. I
stepped through 'testRegionAvailabilityWithRegionMoves' in
TestBaseLoadBalancer.java and saw the maxRegionsPerTable never gets
increased to 2 after the region is moved to a RegionServer that already has
a region. If the maxRegionsPerTable isn't updated with the new max, then
the balancer will properly penalize this potential move which causes a
worse Table Skew.


Code in question:

//check whether this caused maxRegionsPerTable in the new Server to be
updated
if (numRegionsPerServerPerTable[newServer][tableIndex] >
numMaxRegionsPerTable[tableIndex]) {
  numMaxRegionsPerTable[tableIndex] =
numRegionsPerServerPerTable[newServer][tableIndex];
}


Thanks,
Tim

Reply via email to