Ray Mattingly created HBASE-28429:
-------------------------------------

             Summary: Quotas should have a configurable minimum wait interval
                 Key: HBASE-28429
                 URL: https://issues.apache.org/jira/browse/HBASE-28429
             Project: HBase
          Issue Type: Improvement
            Reporter: Ray Mattingly


At my day job we're attempting to rollout read size throttling by default for 
thousands of distinct users across hundreds of multi-tenant clusters.

During our rollout we've observed that throttles with a 1 second refill 
interval will yield relatively tiny wait intervals disproportionately often. 
From what we've seen, wait intervals are <=5ms on approximately 20-50% of our 
RpcThrottlingExceptions; this could sound theoretically promising if latency is 
your top priority. But, in reality, this makes it very difficult to configure a 
throttle tolerant HBase client because retries become very prone to 
near-immediate exhaustion, and throttled clients quickly saturate the cluster's 
RPC layer with rapid-fire retries.

One can combat this with the FixedIntervalRateLimiter, but that's a very heavy 
handed approach from latency's perspective, and can still yield tiny intervals 
that exhaust retries and erroneously fail client operations under significant 
load.

With this in mind, I'm proposing that we introduce a configurable minimum wait 
interval for quotas, defaulted to 0. This would make quotas much more usable at 
scale from our perspective.



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

Reply via email to