@Override public void close() { // Calculate and set the average size of get, scan and mutate for the current operation long getSize = avgOpSize.getAvgOperationSize(OperationType.GET); long scanSize = avgOpSize.getAvgOperationSize(OperationType.SCAN); long mutationSize = avgOpSize.getAvgOperationSize(OperationType.MUTATE); for (final QuotaLimiter limiter : limiters) { limiter.addOperationSize(OperationType.GET, getSize); limiter.addOperationSize(OperationType.SCAN, scanSize); limiter.addOperationSize(OperationType.MUTATE, mutationSize); } // Adjust the quota consumed for the specified operation long writeDiff = avgOpSize.getOperationSize(OperationType.MUTATE) - writeConsumed; long readDiff = (avgOpSize.getOperationSize(OperationType.GET) + avgOpSize .getOperationSize(OperationType.SCAN)) - readConsumed; for (final QuotaLimiter limiter : limiters) { if (writeDiff != 0) limiter.consumeWrite(writeDiff); if (readDiff != 0) limiter.consumeRead(readDiff); } }