Ray Mattingly created HBASE-28430:
-------------------------------------

             Summary: RpcThrottlingException messages should describe the 
throttled access pattern
                 Key: HBASE-28430
                 URL: https://issues.apache.org/jira/browse/HBASE-28430
             Project: HBase
          Issue Type: Improvement
            Reporter: Ray Mattingly


Right now we catch RpcThrottlingExceptions and have some debug logging in 
[RegionServerRpcQuotaManager|https://github.com/apache/hbase/blob/98eb3e01b352684de3c647a6fda6208a657c4607/hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.java#L234-L236]
 — this is okay support for in depth explanations, but is not trivially 
transparent to users.

For example, at my day job we have proxy APIs which sit between HBase and many 
microservices. We throttle these microservices in isolation, but the 
RpcThrottlingExceptions appear to be indiscriminate in the stdout of the proxy 
API.

If we added the given username, table, and namespace to RpcThrottlingException 
messages then understanding the nature and specificity of any given throttle 
violation should be much more straightforward. Given that quotas/throttling is 
most useful in a multi-tenant environment, I would anticipate this being a 
pretty universal usability pain point.

It would be a bit more complicated, but we should also consider including more 
information about the rate limiter which has been violated. For example, what 
is the current configured read size limit that we've exceeded?



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

Reply via email to