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

Phil Yang edited comment on HBASE-17449 at 1/11/17 11:16 AM:
-------------------------------------------------------------

Timeout for scan is complex after we having heartbeat in 1.1+. As long as 
server can responds an heartbeat in time, ResultScanner.next() will always be 
blocked until we can get a Result to users. So setting scan timeout is only to 
prevent server not responding, while operation timeout can limit the max 
blocking time for all the other operations. I think AsyncTable's scan is same 
that we may take a long time before we call ScanResultConsumer.onNext or 
ResultScanner.next() or RawScanResultConsumer.onNext()? [~Apache9]

+1 for using a new key for scan rpc timeout because now it use same key with 
scanner TTL at server which confuse users.

For read/write timeout, as I said, we need to write in doc what is the timeout 
for batch/append/increment.


was (Author: yangzhe1991):
Timeout for scan is complex after we having heartbeat in 1.1+. As long as 
server can responds an heartbeat in time, ResultScanner.next() will always be 
blocked until we can get a Result to users. So setting scan timeout is only to 
prevent server not responding, while operation timeout can limit the max 
blocking time for all the other operations. 

+1 for using a new key for scan rpc timeout because now it use same key with 
scanner TTL at server which confuse users.

For read/write timeout, as I said, we need to write in doc what is the timeout 
for batch/append/increment.

> Add explicit document on different timeout settings
> ---------------------------------------------------
>
>                 Key: HBASE-17449
>                 URL: https://issues.apache.org/jira/browse/HBASE-17449
>             Project: HBase
>          Issue Type: Improvement
>          Components: documentation
>            Reporter: Yu Li
>
> Currently we have more than one timeout settings, mainly includes:
> * hbase.rpc.timeout
> * hbase.client.operation.timeout
> * hbase.client.scanner.timeout.period
> And in latest branch-1 or master branch code, we will have two other 
> properties:
> * hbase.rpc.read.timeout
> * hbase.rpc.write.timeout
> However, in current refguid we don't have explicit instruction on the 
> difference of these timeout settings (there're explanations for each 
> property, but no instruction on when to use which)
> In my understanding, for RPC layer timeout, or say each rpc call:
> * Scan (openScanner/next): controlled by hbase.client.scanner.timeout.period
> * Other operations:
>    1. For released versions: controlled by hbase.rpc.timeout
>    2. For 1.4+ versions: read operation controlled by hbase.rpc.read.timeout, 
> write operation controlled by hbase.rpc.write.timeout, or hbase.rpc.timeout 
> if the previous two are not set.
> And hbase.client.operation.timeout is a higher-level control counting retry 
> in, or say the overall control for one user call.
> After this JIRA, I hope when users ask questions like "What settings I should 
> use if I don't want to wait for more than 1 second for a single 
> put/get/scan.next call", we could give a neat answer.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to