You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Allan Yang (JIRA)" <ji...@apache.org> on 2018/11/12 03:48:00 UTC

[jira] [Commented] (HBASE-21469) Re-visit post* hooks in DDL operations

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

Allan Yang commented on HBASE-21469:
------------------------------------

Ping [~elserj], FYI.

> 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.1.1, 2.0.2
>            Reporter: Allan Yang
>            Assignee: Allan Yang
>            Priority: Major
>
> 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)