Matteo Bertozzi created HBASE-11598:
---------------------------------------

             Summary: Add simple rpc throttling
                 Key: HBASE-11598
                 URL: https://issues.apache.org/jira/browse/HBASE-11598
             Project: HBase
          Issue Type: New Feature
            Reporter: Matteo Bertozzi
            Assignee: Matteo Bertozzi
            Priority: Minor
             Fix For: 1.0.0, 2.0.0


Add a simple version of rpc throttling.
(by simple I mean something that requires less changes as possible to the core)

The idea is to add a hbase:quota table to store the user/table quota 
information.
Add a couple of API on the client like throttleUser() and throttleTable()
and on the server side before executing the request we check the quota, if not 
an exception is thrown.
The quota will be per-machine. There will be a flag "QuotaScope" that will be 
used in the future to specify the quota at "cluster level" instead of per 
machine. (A limit of 100req/min means that each machine can execute 100req/min 
with a scope per-machine).

This will be the first cut, simple solution that requires verify few changes to 
the core.
Later on we can make the client aware of the ThrottlingException and deal with 
it in a smarter way.
Also we need to change a bit the RPC code to be able to yield the operation if 
the quota will be 
available not to far in the future, and avoid going back to the client for "few 
seconds".



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to