huaxiang sun created HBASE-19924:
------------------------------------
Summary: hbase rpc throttling does not work for multi() with
request count rater.
Key: HBASE-19924
URL: https://issues.apache.org/jira/browse/HBASE-19924
Project: HBase
Issue Type: Bug
Components: rpc
Affects Versions: 1.2.6, 2.0
Reporter: huaxiang sun
Assignee: huaxiang sun
Basically, rpc throttling does not work for request count based rater for
multi. for the following code, when it calls limiter's checkQuota(),
numWrites/numReads is lost.
{code:java}
@Override
public void checkQuota(int numWrites, int numReads, int numScans) throws
ThrottlingException {
writeConsumed = estimateConsume(OperationType.MUTATE, numWrites, 100);
readConsumed = estimateConsume(OperationType.GET, numReads, 100);
readConsumed += estimateConsume(OperationType.SCAN, numScans, 1000);
writeAvailable = Long.MAX_VALUE;
readAvailable = Long.MAX_VALUE;
for (final QuotaLimiter limiter : limiters) {
if (limiter.isBypass()) continue;
limiter.checkQuota(writeConsumed, readConsumed);
readAvailable = Math.min(readAvailable, limiter.getReadAvailable());
writeAvailable = Math.min(writeAvailable, limiter.getWriteAvailable());
}
for (final QuotaLimiter limiter : limiters) {
limiter.grabQuota(writeConsumed, readConsumed);
}
}{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)