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

Duo Zhang commented on HBASE-16833:
-----------------------------------

{quote}
We should consider the reload parameter?
{quote}

For the async table implementation, there is no reload at all. We will clear 
meta cache when error which means we will reload the location at next try. The 
interface here is marked as unstable so I haven't spent much time to design it. 
And I think the word 'reload' expose too many implementation details to the 
upper layer. Maybe we should name the parameter 'skipCache'. Then it is free 
for us to update the cache or not.

{quote}
And for region caching, if we need to reload the region info from meta, we may 
have some concurrent requests for same table even same region. We could let the 
first one send the RPC request and the others wait the result?
{quote}

Yes we should do this. The problem will become worse after we introduce multi 
get in async table as we will get lots of locations at the same time. I plan to 
file a issue after I have an initial patch for multi get(HBASE-17142).

{quote}
I think for sync client we also have this issue, may be we should add it also 
in sync client and make it configurable?
{quote}

For 2.0 I plan to implement the old blocking table on the new async table, so 
most code of the old blocking table will just be dropped in the future. And for 
this issue, you can see RpcRetryingCallerImpl.singleCallDuration, where we also 
add a small delta when sleeping. And for the blocking table implementation, we 
can not limit the total time of locating a region as we do not pass any timeout 
parameters to the prepare method of a RetryingCallable. I think you can open a 
new issue to address this problem as async table is not likely to be backported 
to branch-1.

Thanks.

> Implement asynchronous hbase client based on HBASE-15921
> --------------------------------------------------------
>
>                 Key: HBASE-16833
>                 URL: https://issues.apache.org/jira/browse/HBASE-16833
>             Project: HBase
>          Issue Type: Umbrella
>          Components: Client
>    Affects Versions: 2.0.0
>            Reporter: Duo Zhang
>            Assignee: Duo Zhang
>              Labels: asynchronous
>             Fix For: 2.0.0
>
>
> In HBASE-15921 we have introduced a simple AsyncTable only supports get, put 
> and delete. This issue aims to implement a complete async hbase client based 
> on it. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to