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)