Allan Yang created HBASE-21469:
----------------------------------

             Summary: Re-visit post* hooks in DDL operations
                 Key: HBASE-21469
                 URL: https://issues.apache.org/jira/browse/HBASE-21469
             Project: HBase
          Issue Type: Bug
    Affects Versions: 2.0.2, 2.1.1
            Reporter: Allan Yang
            Assignee: Allan Yang


I have some discuss in HBASE-19953 from 
[here|https://issues.apache.org/jira/browse/HBASE-19953?focusedCommentId=16673126&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16673126]
In HBASE-19953,[~elserj] want to make sure that the post* hooks are called only 
when the procedures finish.But it accidentally turns modifytable and truncate 
table request into a sync call, which make clients RPC timeout easily on big 
tables.
We should re-visit those postxxx hooks in DDL operations, because they are now 
not consistent now:
For DDLs other than modifytable and truncate table, although the call will wait 
on the latch, the latch is actually released just after prepare state, so we 
still call postxxx hooks before the operation finish.
For DDLs of  modifytable and truncate, the latch is only released after the 
whole procedure finish. So the effort works(but will cause RPC timeout)
I think these latches are designed for compatibility with 1.x clients. Take 
ModifyTable for example, in 1.x, we use admin.getAlterStauts() to check the 
alter status, but in 2.x, this method is deprecated and returning inaccurate 
result, we have to make 1.x client in a sync wait.
And for the semantics of postxxx hooks in 1.x, we will call them after the 
corresponding DDL request return, but actually, the DDL request may not 
finished also since we don't want for region assignment.

So, here, we need to discuss the semantics of postxxx hooks in DDL operations, 
we need to make it consistent in every DDL operations, do we really need to 
make sure this hooks being called only after the operation finish? What's more, 
we have postCompletedxxx hooks for that need.
  



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

Reply via email to