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

Ted Yu commented on HBASE-4865:
-------------------------------

w.r.t. HBaseAdmin#createTable[Async] methods, see HBASE-3904 and HBASE-3229
We don't need to change their implementation now.
                
> HBaseAdmin addColumn, modifyColumn, deleteColumn are documented as 
> asynchronous but are actually synchronous.
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-4865
>                 URL: https://issues.apache.org/jira/browse/HBASE-4865
>             Project: HBase
>          Issue Type: Bug
>          Components: client, master
>    Affects Versions: 0.94.0
>         Environment: all
>            Reporter: nkeywal
>            Priority: Minor
>
> The javadoc states is asynchronous, but we can see in the implementation on 
> HMaster that the implementation does not use executorService but calls 
> directly process(). This is not true for all methods: enableTable, 
> modifyTable, disableTable are truly asynchronous.
> The other impact is that the listeners are not called, as this is done by the 
> executorService.
> I don't known if we have to change the documentation or the implementation. 
> For consistency; I would change the implementation, but it may breaks 
> existing code.
> Two other comments:
> 1) There is no real naming pattern here, while it would be useful:
> HBaseAdmin#createTable is synchrounous and calls the asynchronous 
> HMaster#createTable 
> HBaseAdmin#createTableAsync is asynchrounous and calls the asynchronous 
> HMaster#createTable 
> HBaseAdmin#modifyTable is asynchrounous and calls the asynchronous 
> HMaster#modifyTable 
> HBaseAdmin#modifyColumn is documented as asynchrounous and calls the 
> synchronous HMaster#modifyColumn
> 2) the coprocessor "post" semantic is not consistent across the services.
> - when the service is synchronous, post is called after the services 
> execution (ex: addColumn with the current implementation).
> - when the service is asynchronous, post is called after the executorService 
> has registered the service to execute, but the service itself is not executed 
> yet.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to