Allan Yang created HBASE-21754:
----------------------------------

             Summary: 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.0.4, 2.1.2
            Reporter: Allan Yang
            Assignee: Allan Yang


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)

Reply via email to