Bryan Beaudreault created HBASE-28085:
-----------------------------------------
Summary: Configurably use scanner timeout as rpc timeout for
scanner next calls
Key: HBASE-28085
URL: https://issues.apache.org/jira/browse/HBASE-28085
Project: HBase
Issue Type: Improvement
Reporter: Bryan Beaudreault
In the AsyncTable implementation, scanner next() calls use
"hbase.client.scanner.timeout.period" as the rpc timeout. The reason is
described in comments, and makes a lot of sense:
{code:java}
// 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. {code}
The branch-2 HTable implementation still uses the old behavior – the next()
call passes the read rpc timeout as the rpc timeout, and uses the scanner
timeout period as the operation timeout. This can lead to the above behavior.
It would be nice to provide users a migration path to AsyncTable's behavior, in
the form of a config flag which causes HTable to use
"hbase.client.scanner.timeout.period" as rpc timeout for next() calls like
AsyncTable does.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)