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

Guanghao Zhang commented on HBASE-17114:
----------------------------------------

bq. Another approach to this would be to allow the server to hint back to the 
client how long it should back off.
Now the ThrottlingException carry a wait interval to client. In our use case, 
we introduce a new parent exception DoNotRetryNowIOException 
(ThrottlingExcepiton extends it), which means the client should not retry now 
and sleep the wait interval carried back by DoNotRetryNowIOException and then 
retry. Can RS calculate a wait interval (e.g. half of the queue time) and use 
CallQueueTooBigException carry it back to client?

> Add an option to set special retry pause when encountering 
> CallQueueTooBigException
> -----------------------------------------------------------------------------------
>
>                 Key: HBASE-17114
>                 URL: https://issues.apache.org/jira/browse/HBASE-17114
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Yu Li
>            Assignee: Yu Li
>
> As titled, after HBASE-15146 we will throw {{CallQueueTooBigException}} 
> instead of dead-wait. This is good for performance for most cases but might 
> cause a side-effect that if too many clients connect to the busy RS, that the 
> retry requests may come over and over again and RS never got the chance for 
> recovering, and the issue will become especially critical when the target 
> region is META.
> So here in this JIRA we propose to supply some special retry pause for CQTBE 
> in name of {{hbase.client.pause.special}}, and by default it will be 500ms (5 
> times of {{hbase.client.pause}} default value)



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

Reply via email to