[ 
https://issues.apache.org/jira/browse/HBASE-28608?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Duo Zhang updated HBASE-28608:
------------------------------
    Fix Version/s: 2.7.0
                   3.0.0-beta-2
     Hadoop Flags: Incompatible change,Reviewed
       Resolution: Fixed
           Status: Resolved  (was: Patch Available)

Pushed to branch-2+.

Thanks [~droudy] for contributing!

> More sensible client meta operation timeout default
> ---------------------------------------------------
>
>                 Key: HBASE-28608
>                 URL: https://issues.apache.org/jira/browse/HBASE-28608
>             Project: HBase
>          Issue Type: Improvement
>          Components: Client
>    Affects Versions: 2.6.0, 2.4.17, 3.0.0-beta-1, 2.5.8
>            Reporter: Daniel Roudnitsky
>            Assignee: Daniel Roudnitsky
>            Priority: Major
>              Labels: pull-request-available, timeout
>             Fix For: 2.7.0, 3.0.0-beta-2
>
>
> Documented behavior in the HBase reference for client meta operation timeout 
> {{hbase.client.meta.operation.timeout}} default is that it will be set to the 
> configured client operation timeout, but implementation is that it defaults 
> to the default client operation timeout of 20 minutes. I propose to set the 
> default meta operation to what is currently specified in the hbase reference: 
> From "Timeout settings" in the hbase reference:
> {panel}
> A higher-level timeout is hbase.client.operation.timeout which is valid for 
> each client call. When an RPC call fails for instance for a timeout due to 
> hbase.rpc.timeout it will be retried until hbase.client.operation.timeout is 
> reached. Client operation timeout for system tables can be fine tuned by 
> setting hbase.client.meta.operation.timeout configuration value. When this is 
> not set its value will use hbase.client.operation.timeout
> {panel}
> There seem to be two very different dependencies on meta operation timeout:
>  # End to end operation timeout for system table operations (2.x and 3)
>  # Timeout to acquire {{userRegionLock}} to initiate meta scan in 
> {{locateRegionInMeta}} (2.x blocking client only, see HBASE-28730 for more 
> detail/related work)
> For case 1 I believe it makes sense from a user perspective that meta 
> operation timeout, which is meant to apply to a specific subset of 
> operations, will respect the 'general' operation timeout that is configured 
> if the more specific meta operation timeout is not explicitly set. 
> For case 2 blocking client, the default meta timeout value defeats the 
> purpose of the `userRegionLock` timeout if one has a typical setup where 
> {{hbase.client.operation.timeout}} << 20 minutes and 
> {{hbase.client.meta.operation.timeout}} is not explicitly set, which can lead 
> to operations taking much longer than the configured operation timeout to 
> actually timeout if there is e.g meta slowness and/or contention around 
> userRegionLock on 2.x, see HBASE-28730 for more detail/related work.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to