Sorry I pasted code that I had modified. I am looking at the master branch
though. Why would the numRegionsPerServerPerTable[newServer][tableIndex] be
set to the existing numMaxRegionsPerTable[tableIndex]? it seems like this
should be switched to what I pasted.

On Wed, Feb 15, 2017 at 2:58 PM, Ted Yu <yuzhih...@gmail.com> wrote:

> In master branch, I see this:
>
>       if (numRegionsPerServerPerTable[newServer][tableIndex] >
> numMaxRegionsPerTable[tableIndex]) {
>
>         numRegionsPerServerPerTable[newServer][tableIndex] =
> numMaxRegionsPerTable[tableIndex];
>
> which branch are you looking at ?
>
> Thanks
>
> On Wed, Feb 15, 2017 at 2:47 PM, Timothy Brown <t...@siftscience.com>
> wrote:
>
> > 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