[
https://issues.apache.org/jira/browse/HBASE-21754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16749378#comment-16749378
]
Allan Yang commented on HBASE-21754:
------------------------------------
[~Apache9] any comments on the patch? QA passed
> ReportRegionStateTransitionRequest should be executed in priority executor
> --------------------------------------------------------------------------
>
> Key: HBASE-21754
> URL: https://issues.apache.org/jira/browse/HBASE-21754
> Project: HBase
> Issue Type: Bug
> Affects Versions: 2.1.2, 2.0.4
> Reporter: Allan Yang
> Assignee: Allan Yang
> Priority: Major
> Attachments: HBASE-21754.patch, HBASE-21754v2.patch
>
>
> Now, ReportRegionStateTransitionRequest is executed in default handler, only
> region of system table is executed in priority handler. That is because we
> have only two kinds of handler default and priority in master(replication
> handler is for replication specifically), if the transition report for all
> region is executed in priority handler, there is a dead lock situation that
> other regions' transition report take all handler and need to update meta,
> but meta region is not able to report online since all handler is
> taken(addressed in the comments of MasterAnnotationReadingPriorityFunction).
> But there is another dead lock case that user's DDL requests (or other sync
> op like moveregion) take over all default handlers, making region transition
> report is not possible, thus those sync ops can't complete either. A simple
> UT provided in the patch shows this case.
> To resolve this problem, I added a new metaTransitionExecutor to execute meta
> region transition report only, and all the other region's report are executed
> in priority handlers, separating them from user's requests.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)