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

Ted Yu commented on HBASE-16172:
--------------------------------

I can address the above in next patch.
The real timeout in ScannerCallableWithReplicas seems to be longer than timeout:
{code}
      Future<Pair<Result[], ScannerCallable>> f = cs.poll(timeout, 
TimeUnit.MILLISECONDS);
      if (f != null) {
        Pair<Result[], ScannerCallable> r = f.get(timeout, 
TimeUnit.MILLISECONDS);
{code}
Potentially we may wait for 2 * timeout milliseconds.

Fix in another issue ?

> Unify the retry logic in ScannerCallableWithReplicas and 
> RpcRetryingCallerWithReadReplicas
> ------------------------------------------------------------------------------------------
>
>                 Key: HBASE-16172
>                 URL: https://issues.apache.org/jira/browse/HBASE-16172
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Yu Li
>            Assignee: Ted Yu
>         Attachments: 16172.v1.txt, 16172.v2.txt, 16172.v2.txt
>
>
> The issue is pointed out by [~devaraj] in HBASE-16132 (Thanks D.D.), that in 
> {{RpcRetryingCallerWithReadReplicas#call}} we will call 
> {{ResultBoundedCompletionService#take}} instead of {{poll}} to dead-wait on 
> the second one if the first replica timed out, while in 
> {{ScannerCallableWithReplicas#call}} we still use 
> {{ResultBoundedCompletionService#poll}} with some timeout for the 2nd replica.
> This JIRA aims at discussing whether to unify the logic in these two kinds of 
> caller with region replica and taking action if necessary.



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

Reply via email to