hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matteo Bertozzi (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-11598) Add simple rpc throttling
Date Mon, 28 Jul 2014 12:19:40 GMT

     [ https://issues.apache.org/jira/browse/HBASE-11598?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Matteo Bertozzi updated HBASE-11598:
------------------------------------

    Description: 
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".

REVIEW BOARD: https://reviews.apache.org/r/23981

  was:
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".


> 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".
> REVIEW BOARD: https://reviews.apache.org/r/23981



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

Mime
View raw message