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)

Reply via email to