rmdmattingly opened a new pull request, #5666: URL: https://github.com/apache/hbase/pull/5666
If you're managing HBase for many users, then managing effective user quotas can be a difficult operational burden. At my day job we have thousands of web services, workers, and recurring jobs — each of which we consider a distinct user via [request attributes](https://github.com/apache/hbase/pull/5326) and [quota user overrides](https://github.com/apache/hbase/pull/5424). A common reliability issue is that some single system runs awry, for whatever reason, and generates a pathologic amount of traffic at the HBase level; this can cause pain for any other systems dependent on the given HBase cluster. The above situation could potentially be solved by maintaining our own automated user quota management, but even better would be the ability to specify default user quotas at the HBase level. So that's exactly what this PR introduces. In this PR we add four new configuration options to the `QuotaUtil` class: ```java /* * The below defaults, if configured, will be applied to otherwise unthrottled users. For example, * set `hbase.quota.default.user.machine.read.size` to `1048576` in your hbase-site.xml to ensure * that any given user may not query more than 1mb per second from any given machine, unless * explicitly permitted by a persisted quota. All of these defaults use TimeUnit.SECONDS and * QuotaScope.MACHINE. */ public static final String QUOTA_DEFAULT_USER_MACHINE_READ_SIZE = "hbase.quota.default.user.machine.read.size"; public static final String QUOTA_DEFAULT_USER_MACHINE_READ_NUM = "hbase.quota.default.user.machine.read.num"; public static final String QUOTA_DEFAULT_USER_MACHINE_REQUEST_NUM = "hbase.quota.default.user.machine.req.num"; public static final String QUOTA_DEFAULT_USER_MACHINE_WRITE_NUM = "hbase.quota.default.user.machine.write.num"; ``` These options are exactly what they sound like — one could configure `hbase.quota.default.user.machine.read.size` and `hbase.quota.default.user.machine.req.num` to ensure that no users can exceed a given read size and request per-machine throughput (unless explicitly given larger allowance via a defined quota). cc @bbeaudreault @hgromer @eab148 @bozzkar -- 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]
