hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hudson (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-11598) Add simple rpc throttling
Date Wed, 08 Apr 2015 02:28:14 GMT

    [ https://issues.apache.org/jira/browse/HBASE-11598?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14484578#comment-14484578
] 

Hudson commented on HBASE-11598:
--------------------------------

FAILURE: Integrated in HBase-1.1 #375 (See [https://builds.apache.org/job/HBase-1.1/375/])
HBASE-13205 [branch-1] Backport HBASE-11598 Add simple rpc throttling (Ashish Singhi) (tedyu:
rev c031d8de2391b1349de05c8d439224dab1bde978)
* hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/QuotaUtil.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.java
* hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/QuotaProtos.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerServices.java
* hbase-protocol/src/main/protobuf/HBase.proto
* hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
* hbase-shell/src/main/ruby/shell/commands/list_quotas.rb
* hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
* hbase-shell/src/main/ruby/hbase/hbase.rb
* hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/util/BoundedPriorityBlockingQueue.java
* hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/HBaseProtos.java
* hbase-client/src/main/java/org/apache/hadoop/hbase/quotas/QuotaRetriever.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/QuotaLimiterFactory.java
* hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/MasterProtos.java
* hbase-protocol/src/main/protobuf/Master.proto
* hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/MasterQuotaManager.java
* hbase-server/src/test/java/org/apache/hadoop/hbase/quotas/TestQuotaThrottle.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/RegionServerQuotaManager.java
* hbase-client/src/main/java/org/apache/hadoop/hbase/quotas/QuotaSettingsFactory.java
* hbase-server/src/test/java/org/apache/hadoop/hbase/quotas/TestRateLimiter.java
* hbase-server/src/test/java/org/apache/hadoop/hbase/quotas/TestQuotaAdmin.java
* hbase-client/src/main/java/org/apache/hadoop/hbase/quotas/ThrottlingException.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/OperationQuota.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServerInterface.java
* hbase-common/src/main/java/org/apache/hadoop/hbase/util/Bytes.java
* hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
* hbase-client/src/main/java/org/apache/hadoop/hbase/quotas/ThrottleType.java
* hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionManager.java
* hbase-client/src/main/java/org/apache/hadoop/hbase/quotas/QuotaSettings.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
* hbase-shell/src/main/ruby/shell/commands/set_quota.rb
* hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/QuotaState.java
* hbase-server/src/test/java/org/apache/hadoop/hbase/quotas/TestQuotaTableUtil.java
* hbase-server/src/test/java/org/apache/hadoop/hbase/master/MockRegionServer.java
* hbase-protocol/pom.xml
* hbase-client/src/main/java/org/apache/hadoop/hbase/quotas/QuotaType.java
* hbase-shell/src/main/ruby/hbase.rb
* hbase-client/src/main/java/org/apache/hadoop/hbase/quotas/QuotaScope.java
* hbase-protocol/src/main/protobuf/Quota.proto
* hbase-client/src/main/java/org/apache/hadoop/hbase/quotas/QuotaTableUtil.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/QuotaCache.java
* hbase-shell/src/main/ruby/hbase/quotas.rb
* hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterServices.java
* hbase-client/src/main/java/org/apache/hadoop/hbase/quotas/InvalidQuotaSettingsException.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/UserQuotaState.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.java
* hbase-shell/src/main/ruby/shell.rb
* hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
* hbase-server/src/test/java/org/apache/hadoop/hbase/MockRegionServerServices.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/QuotaLimiter.java
* hbase-server/src/test/java/org/apache/hadoop/hbase/quotas/TestQuotaState.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/RateLimiter.java
* hbase-server/src/test/java/org/apache/hadoop/hbase/security/access/TestAccessController.java
* hbase-common/src/main/java/org/apache/hadoop/hbase/util/Sleeper.java
* hbase-client/src/main/java/org/apache/hadoop/hbase/quotas/ThrottleSettings.java
* hbase-client/src/main/java/org/apache/hadoop/hbase/quotas/QuotaFilter.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/NoopOperationQuota.java
* hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java
* hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
* hbase-shell/src/main/ruby/shell/commands.rb
* hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java
* hbase-client/src/main/java/org/apache/hadoop/hbase/quotas/QuotaExceededException.java


> Add simple rpc throttling
> -------------------------
>
>                 Key: HBASE-11598
>                 URL: https://issues.apache.org/jira/browse/HBASE-11598
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Matteo Bertozzi
>            Assignee: Matteo Bertozzi
>            Priority: Minor
>             Fix For: 2.0.0
>
>         Attachments: HBASE-11598-v0.patch, HBASE-11598-v1.patch, HBASE-11598-v2.patch,
HBASE-11598-v2.patch
>
>
> 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.3.4#6332)

Mime
View raw message