rmdmattingly commented on PR #5306: URL: https://github.com/apache/hbase/pull/5306#issuecomment-1604304762
> My concern here is how our users could make use of this feature. Users can send customized connection headers or request headers at client side, but how do they plan to make use of these attributes at server side? Good question. Right now there isn't much out-of-the-box that one will get server-side via these attributes. One could trivially begin using these attributes in their coprocessor(s), for example. Medium/long term, we also have plans to use these attributes at my day job by implementing a new type of quota. At my company we run thousands of microservices, some of which are very fundamental and consequently have a variety of "upstream callers". These proxy APIs, from HBase's perspective, are a single user and can only be throttled as such — but we may have some single pathologic upstream caller that ideally could be throttled in isolation. Another common, similar, problem we see is MapReduce jobs accidentally creating hotspots. Our solution is to support custom quota groupings ([HBASE-27784](https://issues.apache.org/jira/browse/HBASE-27784)) which could be powered by, for example, request attributes. From the issue: > Basically when a Connection is established we can set an attribute (i.e. quotaGrouping=hadoop or quotaGrouping=MyProxyAPI). In QuotaCache, we can add a getQuotaGroupLimiter(String groupName) and also allow someone to define quotas using set_quota TYPE => THROTTLE, GROUP => 'hadoop', LIMIT => '100M/sec' Also 👍 on the design doc / hbase-examples. If we have agreement on the vague shape of things here then I'll definitely go ahead on building out examples! -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
