You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Allan Yang (JIRA)" <ji...@apache.org> on 2019/01/22 09:21:01 UTC

[jira] [Created] (HBASE-21754) ReportRegionStateTransitionRequest should be executed in priority executor

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)