You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by hu...@apache.org on 2020/05/07 21:12:00 UTC
[hbase] branch branch-2.3 updated: HBASE-24328 skip duplicate
GCMultipleMergedRegionsProcedure while previous finished (#1672) (#1678)
This is an automated email from the ASF dual-hosted git repository.
huaxiangsun pushed a commit to branch branch-2.3
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2.3 by this push:
new 2b2e6c7 HBASE-24328 skip duplicate GCMultipleMergedRegionsProcedure while previous finished (#1672) (#1678)
2b2e6c7 is described below
commit 2b2e6c77899f0adc65c601d8ed602591e8fe5986
Author: huaxiangsun <hu...@apache.org>
AuthorDate: Thu May 7 14:11:44 2020 -0700
HBASE-24328 skip duplicate GCMultipleMergedRegionsProcedure while previous finished (#1672) (#1678)
Signed-off-by: Huaxiang Sun<hu...@apache.org>
---
.../master/assignment/GCMultipleMergedRegionsProcedure.java | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/GCMultipleMergedRegionsProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/GCMultipleMergedRegionsProcedure.java
index 8042d61..4fc5484 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/GCMultipleMergedRegionsProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/GCMultipleMergedRegionsProcedure.java
@@ -97,7 +97,16 @@ public class GCMultipleMergedRegionsProcedure extends
try {
switch (state) {
case GC_MERGED_REGIONS_PREPARE:
- // Nothing to do to prepare.
+ // If GCMultipleMergedRegionsProcedure processing is slower than the CatalogJanitor's scan
+ // interval, it will end resubmitting GCMultipleMergedRegionsProcedure for the same
+ // region, we can skip duplicate GCMultipleMergedRegionsProcedure while previous finished
+ List<RegionInfo> parents = MetaTableAccessor.getMergeRegions(
+ env.getMasterServices().getConnection(), mergedChild.getRegionName());
+ if (parents == null || parents.isEmpty()) {
+ LOG.info("Region=" + mergedChild.getShortNameToLog()
+ + " info:merge qualifier has been deleted");
+ return Flow.NO_MORE_STATE;
+ }
setNextState(GCMergedRegionsState.GC_MERGED_REGIONS_PURGE);
break;
case GC_MERGED_REGIONS_PURGE: