[
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)