@Override public void close() { // Adjust the quota consumed for the specified operation long writeDiff = operationSize[OperationType.MUTATE.ordinal()] - writeConsumed; long readDiff = operationSize[OperationType.GET.ordinal()] + operationSize[OperationType.SCAN.ordinal()] - readConsumed; long writeCapacityUnitDiff = calculateWriteCapacityUnitDiff( operationSize[OperationType.MUTATE.ordinal()], writeConsumed); long readCapacityUnitDiff = calculateReadCapacityUnitDiff( operationSize[OperationType.GET.ordinal()] + operationSize[OperationType.SCAN.ordinal()], readConsumed); for (final QuotaLimiter limiter : limiters) { if (writeDiff != 0) { limiter.consumeWrite(writeDiff, writeCapacityUnitDiff); } if (readDiff != 0) { limiter.consumeRead(readDiff, readCapacityUnitDiff); } } }
@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); } }