You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Bryan Beaudreault (Jira)" <ji...@apache.org> on 2022/07/07 16:58:00 UTC

[jira] [Commented] (HBASE-27142) Scanner timeout should take precedence over rpc timeout

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

Bryan Beaudreault commented on HBASE-27142:
-------------------------------------------

[~zhangduo] I was reminding myself of our compatibility guidelines. I think this change would count as "Operational Compatibility", which would be allowed to change in a minor release. Also given how infrequently we have major releases, I think it makes sense to allow a change like this in minor releases. 

Just wanted to check one more time if you'd be ok with allowing this in 2.5.0, given it will be released shortly. I think it'd be a good win.

> Scanner timeout should take precedence over rpc timeout
> -------------------------------------------------------
>
>                 Key: HBASE-27142
>                 URL: https://issues.apache.org/jira/browse/HBASE-27142
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 2.4.12
>            Reporter: Bryan Beaudreault
>            Priority: Major
>
> In the new async client (see AsyncScanSingleRegionRpcRetryingCaller.call()), we ignore hbase.rpc.timeout for scanner next calls. The reason is:
> {quote}// As we have a call sequence for scan, it is useless to have a different rpc timeout which is
> // less than the scan timeout. If the server does not respond in time(usually this will not
> // happen as we have heartbeat now), we will get an OutOfOrderScannerNextException when
> // resending the next request and the only way to fix this is to close the scanner and open a
> // new one.
> {quote}
> In branch-2's blocking client (i.e. ClientScanner/ScannerCallable) we make use of RpcRetryingCallerImpl, which calculates the timeout for each call based on the smaller of the two: remaining operation timeout or configured rpc timeout. For scans, the operation timeout is dictated by hbase.client.scanner.timeout.period, which should take precedence over the configured rpc timeout per the above comment.
> We can fix this by using RpcRetryingCallerFactory.newCaller(int) in ClientScanner, passing the scanner timeout period in as the argument. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)