Bryan Beaudreault created HBASE-27142:
-----------------------------------------

             Summary: 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


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.7#820007)

Reply via email to