Umesh Kumar Kumawat created HBASE-30331:
-------------------------------------------

             Summary: RegionMover.filterRSGroupServers short-circuits on 
default RSGroup, causing unnecessary region churn on clusters with custom 
RSGroups
                 Key: HBASE-30331
                 URL: https://issues.apache.org/jira/browse/HBASE-30331
             Project: HBase
          Issue Type: Bug
          Components: rsgroup
    Affects Versions: 3.0.0
            Reporter: Umesh Kumar Kumawat


Problem

  RegionMover.filterRSGroupServers() in hbase-server contains a short-circuit 
for the default RSGroup:

  // RegionMover.java line 530
  if (rsgroup.getName().equals(RSGroupInfo.DEFAULT_GROUP)) {
    return onlineServers;   // returns ALL online servers — including 
custom-group servers
  }

  When unloadRegions() is called on a server that belongs to the default 
RSGroup, filterRSGroupServers skips the membership check and returns every live 
RegionServer as a valid move target — including
  servers in custom RSGroups. HMaster's RSGroup-aware balancer will eventually 
move those regions back to the correct group, but RegionMover is causing work 
that the master then has to undo.

  Root Cause

  The short-circuit was added as an optimization: on a cluster where all 
servers are in the default group, iterating the membership set is redundant. 
However, once any server is moved to a custom RSGroup,
  the default-group filter no longer reflects actual membership — it 
over-includes servers that have left the default group.

  Impact

  - A RegionMover unload on a default-group server may place regions onto 
custom-group servers.
  - HMaster detects the misplacement and moves those regions back via the 
RSGroup-aware balancer, causing an unnecessary round of region transitions and 
load imbalance during the window between RegionMover
  finishing and the next balancer cycle.
  - Affects any cluster that uses RSGroups and runs RegionMover (rolling 
restarts, decommission workflows).

 

 The corresponding fix for branch-2 was shipped as part of HBASE-30323. This 
ticket tracks the same correction on master/branch-3.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to