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

Phil Yang commented on HBASE-17449:
-----------------------------------

[~carp84]Thanks for reminding.

I think we have a consensus that hbase.client.scanner.timeout.period should not 
be used at both client and server side because they have different meaning? The 
config for scanner rpc timeout should better be have a "rpc" substring, and 
this config has a substring called "client" so it is very confusing to only use 
at server...

My suggestion is  we can first deprecated hbase.client.scanner.timeout.period 
and introduce two new configs called hbase.rpc.scan.timeout and 
hbase.regionserver.scanner.ttl. What do you think?

And we should consider what is suitable timeout setting on batch. Usually a 
batch contains many operations so it is slower than single Put/Get. I'm not 
sure if it should follow rpc timeout and operation timeout. Of course we can 
just use it because we can have different timeout setting in different Table 
instances, so maybe it is not a problem. But we should make sure current AP and 
 AsyncClient follow the rule.

> 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
>            Priority: Critical
>
> 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.15#6346)

Reply via email to