[
https://issues.apache.org/jira/browse/HBASE-19976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16361678#comment-16361678
]
Duo Zhang commented on HBASE-19976:
-----------------------------------
And here, since the procedure executor does not know much about the priority we
defined in MasterProcesureScheduler since it is general and in another module,
I plan to abstract the priority like this:
The ProcedureScheduler will return an int number to tell that how many priority
levels it has, and in ProcedureExecutor, we will reserve one thread for each of
the level except the lowest one. And when polling, we pass the priority level
to the ProcedureScheduler to only fetch the procedures which priority is higher.
And we can introduce 3 levels in MasterProcedureScheduler, one for meta, one
for other system table, and one for all other procedures. Notice that the
ServerCrashProcedure should have different priority if it carries meta region
or other system regions.
Thanks.
> Dead lock if the worker threads in procedure executor are exhausted
> -------------------------------------------------------------------
>
> Key: HBASE-19976
> URL: https://issues.apache.org/jira/browse/HBASE-19976
> Project: HBase
> Issue Type: Bug
> Reporter: Duo Zhang
> Assignee: stack
> Priority: Critical
>
> See the comments in HBASE-19554. If all the worker threads are stuck in
> AssignProcdure since meta region is offline, then the RecoverMetaProcedure
> can not be executed and cause dead lock.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)