HBASE-25836 RegionStates#getAssignmentsForBalancer should only care about OPEN or...
commitfda324b1166b1da74bf5206a5c43e65a9f8e3217
authorAndrew Purtell <apurtell@apache.org>
Tue, 4 May 2021 01:23:07 +0000 (3 18:23 -0700)
committerGitHub <noreply@github.com>
Tue, 4 May 2021 01:23:07 +0000 (3 18:23 -0700)
tree44d8de80477e380ba14e4e21dc87c5cc14f40902
parente44592a37d6127cc576dada3c5f287dcd0572340
HBASE-25836 RegionStates#getAssignmentsForBalancer should only care about OPEN or OPENING regions (#3219)

RegionStates#getAssignmentsForBalancer is used by the HMaster to
collect all regions of interest to the balancer for the next chore
iteration. We check if a table is in disabled state to exclude
regions that will not be of interest (because disabled regions are
or will be offline) or are in a state where they shouldn't be
mutated (like SPLITTING). The current checks are not actually
comprehensive.

Filter out regions not in OPEN or OPENING state when building the
set of interesting regions for the balancer to consider. Only
regions open (or opening) on the cluster are of interest to
balancing calculations for the current iteration. Regions in all
other states can be expected to not be of interest – either offline
(OFFLINE, or FAILED_*), not subject to balancer decisions now
(SPLITTING, SPLITTING_NEW, MERGING, MERGING_NEW), or will be
offline shortly (CLOSING) – until at least the next chore
iteration.

Add TRACE level logging.

Signed-off-by: Bharath Vissapragada <bharathv@apache.org>
Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Viraj Jasani <vjasani@apache.org>
hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStates.java