Duo Zhang created HBASE-24942:
---------------------------------
Summary: MergeTableRegionsProcedure should not call clean merge
region
Key: HBASE-24942
URL: https://issues.apache.org/jira/browse/HBASE-24942
Project: HBase
Issue Type: Improvement
Components: proc-v2, Region Assignment
Reporter: Duo Zhang
Assignee: Duo Zhang
Fix For: 3.0.0-alpha-1
In MergeTableRegionsProcedure, we will call CatalogJanitor.cleanMergeQualifier
to test whether the regions we want to merge still have merge qualifier. If so
we will skip merge.
But the problem is that, in cleanMergeQualifier, we will call cleanMergeRegion,
where we may schedule GCMultipleMergedRegionsProcedure to actually clean the
merged regions.
I think the intention here is to speed up the cleaning of merged region.
CatalogJanitor, we have a alreadyRunning guard to prevent multiple scan at the
same time, to prevent scheduling duplicated GCMultipleMergedRegionsProcedure
for the same region. But if we call cleanMergeQualifier directly from
MergeTableRegionsProcedure, we may schedule duplicated
GCMultipleMergedRegionsProcedure as there is no guard to prevent CatalogJanitor
to run at the same time.
And there is also another problem that, even if you disable CatalogJanitor,
which means you want to stop cleaning meta, a call from
MergeTableRegionsProcedure could still clean the records in meta...
So I think here we should just check the qualifiers. If there are merge
qualifiers we just skip merging, without scheduling any procedures.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)