[ 
https://issues.apache.org/jira/browse/HBASE-21754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16749404#comment-16749404
 ] 

Duo Zhang commented on HBASE-21754:
-----------------------------------

Overall LGTM. Left a few comments on RB, if they are not problems then +1.

> 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)

Reply via email to