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)