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 17:25:36 UTC
[hbase] branch branch-2 updated: HBASE-24328 skip duplicate
GCMultipleMergedRegionsProcedure while previous finished (#1672)
This is an automated email from the ASF dual-hosted git repository.
huaxiangsun pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2 by this push:
new 735aa8b HBASE-24328 skip duplicate GCMultipleMergedRegionsProcedure while previous finished (#1672)
735aa8b is described below
commit 735aa8bf9f840c4ca119b853fce43cf2c9523c39
Author: niuyulin <ny...@163.com>
AuthorDate: Thu May 7 12:25:25 2020 -0500
HBASE-24328 skip duplicate GCMultipleMergedRegionsProcedure while previous finished (#1672)
Co-authored-by: niuyulin <ni...@xiaomi.com>
---
.../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: