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

Duo Zhang commented on HBASE-18978:
-----------------------------------

HBASE-19241 has been resolved. [~appy]

'RawXXX' will execute the callbacks directly in the rpc framework thread, so it 
is a little dangerous for non-expert users as if you execute time-consuming 
tasks in the callback, the hbase client may be stuck. For the non-raw 
implementation, usually it is just a simple wrapper of the raw implementation. 
The difference is  that, you need to provide a thread pool to execute the 
callbacks, so it will not block the rpc framework thread, which is safer for 
users.

And for AsyncTable and RawAsyncTable, the scan API is a bit different. For 
RawAsyncTable there is a very low level observer style API. All other scan 
methods of async client are based on this API. It is not easy to write correct 
code with this API and I believe for most cases users do not need to use this 
method.

And for the coprocessor API, I only keep it in RawAsyncTable, This is just 
because that I think coprocessor is a low level API. No other reasons, and I'm 
fine if someone want to also introduce coprocessor API in AsycTable interface.

Thanks.

> Align the methods in Table and AsyncTable
> -----------------------------------------
>
>                 Key: HBASE-18978
>                 URL: https://issues.apache.org/jira/browse/HBASE-18978
>             Project: HBase
>          Issue Type: Task
>          Components: asyncclient, Client
>            Reporter: Duo Zhang
>            Assignee: Peter Somogyi
>            Priority: Critical
>             Fix For: 2.0.0-beta-1
>
>




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to