[ https://issues.apache.org/jira/browse/HBASE-21754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16748560#comment-16748560 ]
Duo Zhang commented on HBASE-21754: ----------------------------------- +1 on the approach. > 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 > > > 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)