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)