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)