Package org.apache.hadoop.hbase.quotas
Interface QuotaLimiter
- All Known Implementing Classes:
NoopQuotaLimiter
,TimeBasedLimiter
Internal interface used to interact with the user/table quota.
-
Method Summary
Modifier and TypeMethodDescriptionvoid
checkQuota
(long writeReqs, long estimateWriteSize, long readReqs, long estimateReadSize, long estimateWriteCapacityUnit, long estimateReadCapacityUnit) Checks if it is possible to execute the specified operation.void
consumeRead
(long size, long capacityUnit) Removes or add back some read amount to the quota.void
consumeWrite
(long size, long capacityUnit) Removes or add back some write amount to the quota.long
Returns the number of bytes available to read to avoid exceeding the quotalong
Returns the maximum number of bytes ever available to readlong
Returns the number of bytes available to write to avoid exceeding the quotavoid
grabQuota
(long writeReqs, long writeSize, long readReqs, long readSize, long writeCapacityUnit, long readCapacityUnit) Removes the specified write and read amount from the quota.boolean
isBypass()
Returns true if the limiter is a noop
-
Method Details
-
checkQuota
void checkQuota(long writeReqs, long estimateWriteSize, long readReqs, long estimateReadSize, long estimateWriteCapacityUnit, long estimateReadCapacityUnit) throws RpcThrottlingException Checks if it is possible to execute the specified operation.- Parameters:
writeReqs
- the write requests that will be checked against the available quotaestimateWriteSize
- the write size that will be checked against the available quotareadReqs
- the read requests that will be checked against the available quotaestimateReadSize
- the read size that will be checked against the available quotaestimateWriteCapacityUnit
- the write capacity unit that will be checked against the available quotaestimateReadCapacityUnit
- the read capacity unit that will be checked against the available quota- Throws:
RpcThrottlingException
- thrown if not enough available resources to perform operation.
-
grabQuota
void grabQuota(long writeReqs, long writeSize, long readReqs, long readSize, long writeCapacityUnit, long readCapacityUnit) Removes the specified write and read amount from the quota. At this point the write and read amount will be an estimate, that will be later adjusted with a consumeWrite()/consumeRead() call.- Parameters:
writeReqs
- the write requests that will be removed from the current quotawriteSize
- the write size that will be removed from the current quotareadReqs
- the read requests that will be removed from the current quotareadSize
- the read size that will be removed from the current quotawriteCapacityUnit
- the write capacity unit that will be removed from the current quotareadCapacityUnit
- the read capacity unit num that will be removed from the current quota
-
consumeWrite
Removes or add back some write amount to the quota. (called at the end of an operation in case the estimate quota was off) -
consumeRead
Removes or add back some read amount to the quota. (called at the end of an operation in case the estimate quota was off) -
isBypass
boolean isBypass()Returns true if the limiter is a noop -
getReadAvailable
long getReadAvailable()Returns the number of bytes available to read to avoid exceeding the quota -
getReadLimit
long getReadLimit()Returns the maximum number of bytes ever available to read -
getWriteAvailable
long getWriteAvailable()Returns the number of bytes available to write to avoid exceeding the quota
-