Ray Mattingly created HBASE-29351:
-------------------------------------

             Summary: Quotas: adaptive wait intervals
                 Key: HBASE-29351
                 URL: https://issues.apache.org/jira/browse/HBASE-29351
             Project: HBase
          Issue Type: Improvement
            Reporter: Ray Mattingly
            Assignee: Ray Mattingly


We've been using Quotas heavily at my day job, particularly user throttles. You 
can read more about our setup 
[here|https://product.hubspot.com/blog/hbase-share-resources].

We have hundreds of clusters with a wide variety of usage patterns; we've found 
it difficult to find a `hbase.quota.rate.limiter.refill.interval.ms` that 
perfectly blends optimistic enough retries (to make fully utilizing the quota 
easy) and sufficiently pessimistic backoffs (to avoid hotspotting RPC layers 
with doomed retries) across the board and out-of-the-box.

For some background, when a request is throttled our RateLimiters will return 
the backoff millis that must be waited in order for the RateLimiter to service 
the given request's estimated workload in a single threaded environment. This 
falls apart for two reasons: clients are rarely single threaded, and estimated 
workloads are often wrong.

To make usage and configuration easier, I'm suggesting that we add support for 
"adaptive wait intervals" to the FixedIntervalRateLimiter. This would involve 
introducing a multiplier for the wait interval which grows when we throttle 
multiple times in a given refill interval, or shrinks when we go many refill 
intervals without throttling. The result would be wait interval suggestions 
that provide smarter backoffs designed to fully utilize, but not oversubscribe, 
the allowance.



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

Reply via email to