[
https://issues.apache.org/jira/browse/HBASE-13759?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14557866#comment-14557866
]
Matteo Bertozzi commented on HBASE-13759:
-----------------------------------------
{quote}Do you want to ask the host if it is aborting or stopping in here
handleInterruptedException?{quote}
that is more or less implicit. if master.abort()/stop() was called
procedureExecutor.isRunning() will be false. we are basically pushing the
procedure back in the queue and restart from while (isRunning()).
do you have a better way to check if the master is going down but it didn't
call abort/stop yet?
{quote}The implementation of isYieldAfterExecutionStep is done by doing a
isYieldBeforeExecuteFromState in StateMachineProcedure? Interesting...{quote}
the StateMachineProc has more alrady information on what is doing, so you can
control which step should yield and which should not without having to keep
extra state around
> Improve procedure yielding
> --------------------------
>
> Key: HBASE-13759
> URL: https://issues.apache.org/jira/browse/HBASE-13759
> Project: HBase
> Issue Type: Sub-task
> Components: proc-v2
> Affects Versions: 2.0.0, 1.2.0
> Reporter: Matteo Bertozzi
> Assignee: Matteo Bertozzi
> Priority: Trivial
> Fix For: 2.0.0, 1.2.0
>
> Attachments: HBASE-13759-v0.patch
>
>
> Adds the ability to yield the procedure every execution step.
> by default, a procedure will try to go begin to end without stopping.
> This allows procedures to be nice to other procedures.
> one usage example is ServerShutdownHandler where we want everyone to make
> some progress.
> Allows procedure to throw InterruptedException, the default handling will be:
> "ask the master if there is an abort of stop. If there is, stop executions
> and exit. Else, clear the IE and carryon executing. the interruted procedure
> will retry".
> If the procedure implementor wants a different behavior, the IE can be
> catched and custom handling can be performed.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)