[
https://issues.apache.org/jira/browse/HBASE-24942?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Duo Zhang resolved HBASE-24942.
-------------------------------
Fix Version/s: 2.3.2
2.4.0
Hadoop Flags: Reviewed
Resolution: Fixed
Pushed to branch-2.3+.
Thanks [~stack] for reviewing.
> 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
> Priority: Major
> Fix For: 3.0.0-alpha-1, 2.4.0, 2.3.2
>
>
> 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)