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

Allan Yang commented on HBASE-19953:
------------------------------------

{quote}
In reality, a synchronous API for DDL operations is super-useful – applications 
can't reasonably proceed to run if an action hasn't completed. So, I'd pose the 
question: how would we know when to say that a DDL operation is "completed 
enough"?
{quote}
For clients >2.0, it is very simple, we only need to check whether the 
procedure is finished. For clients in 1.x, admin.getAlterStauts() is used to 
check the status(for modify table), but since in 2.x, getAlterStauts is 
deprecated , so we need to make 1.x client to wait in sync.
{quote}
I am -1 on just reverting this. 
{quote}
After a careful think, I think we don't need to revert this, we only need to 
turn ModifyTable to a async op(Which is the only sync DDL for 2.x client now). 
[~elserj] you can see HMaster.truncateTable. We also use 
ProcedurePrepareLatch.createLatch(2, 0) to make sure the 2.x client won't sync 
wait here.
Uploaded a addendum to clarify  my point.



> Avoid calling post* hook when procedure fails
> ---------------------------------------------
>
>                 Key: HBASE-19953
>                 URL: https://issues.apache.org/jira/browse/HBASE-19953
>             Project: HBase
>          Issue Type: Bug
>          Components: master, proc-v2
>            Reporter: Ramesh Mani
>            Assignee: Josh Elser
>            Priority: Critical
>             Fix For: 2.0.0-beta-2, 2.0.0
>
>         Attachments: HBASE-19952.001.branch-2.patch, 
> HBASE-19953.002.branch-2.patch, HBASE-19953.003.branch-2.patch
>
>
> Ramesh pointed out a case where I think we're mishandling some post\* 
> MasterObserver hooks. Specifically, I'm looking at the deleteNamespace.
> We synchronously execute the DeleteNamespace procedure. When the user 
> provides a namespace that isn't empty, the procedure does a rollback (which 
> is just a no-op), but this doesn't propagate an exception up to the 
> NonceProcedureRunnable in {{HMaster#deleteNamespace}}. It took Ramesh 
> pointing it out a bit better to me that the code executes a bit differently 
> than we actually expect.
> I think we need to double-check our post hooks and make sure we aren't 
> invoking them when the procedure actually failed. cc/ [~Apache9], [~stack].



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to