@InterfaceAudience.Private @InterfaceStability.Evolving public class TimeBasedLimiter extends Object implements QuotaLimiter
Modifier and Type | Field and Description |
---|---|
private static org.apache.hadoop.conf.Configuration |
conf |
private RateLimiter |
readCapacityUnitLimiter |
private RateLimiter |
readReqsLimiter |
private RateLimiter |
readSizeLimiter |
private RateLimiter |
reqCapacityUnitLimiter |
private RateLimiter |
reqSizeLimiter |
private RateLimiter |
reqsLimiter |
private RateLimiter |
writeCapacityUnitLimiter |
private RateLimiter |
writeReqsLimiter |
private RateLimiter |
writeSizeLimiter |
Modifier | Constructor and Description |
---|---|
private |
TimeBasedLimiter() |
Modifier and Type | Method and Description |
---|---|
void |
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.
|
(package private) static QuotaLimiter |
fromThrottle(org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Throttle throttle) |
long |
getReadAvailable()
Returns the number of bytes available to read to avoid exceeding the quota
|
long |
getWriteAvailable()
Returns the number of bytes available to write to avoid exceeding the quota
|
void |
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
|
private static void |
setFromTimedQuota(RateLimiter limiter,
org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.TimedQuota timedQuota) |
String |
toString() |
void |
update(TimeBasedLimiter other) |
private static final org.apache.hadoop.conf.Configuration conf
private RateLimiter reqsLimiter
private RateLimiter reqSizeLimiter
private RateLimiter writeReqsLimiter
private RateLimiter writeSizeLimiter
private RateLimiter readReqsLimiter
private RateLimiter readSizeLimiter
private RateLimiter reqCapacityUnitLimiter
private RateLimiter writeCapacityUnitLimiter
private RateLimiter readCapacityUnitLimiter
private TimeBasedLimiter()
static QuotaLimiter fromThrottle(org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Throttle throttle)
public void update(TimeBasedLimiter other)
private static void setFromTimedQuota(RateLimiter limiter, org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.TimedQuota timedQuota)
public void checkQuota(long writeReqs, long estimateWriteSize, long readReqs, long estimateReadSize, long estimateWriteCapacityUnit, long estimateReadCapacityUnit) throws RpcThrottlingException
QuotaLimiter
checkQuota
in interface QuotaLimiter
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 quotaRpcThrottlingException
- thrown if not enough available resources to perform operation.public void grabQuota(long writeReqs, long writeSize, long readReqs, long readSize, long writeCapacityUnit, long readCapacityUnit)
QuotaLimiter
grabQuota
in interface QuotaLimiter
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 quotapublic void consumeWrite(long size, long capacityUnit)
QuotaLimiter
consumeWrite
in interface QuotaLimiter
public void consumeRead(long size, long capacityUnit)
QuotaLimiter
consumeRead
in interface QuotaLimiter
public boolean isBypass()
QuotaLimiter
isBypass
in interface QuotaLimiter
public long getWriteAvailable()
QuotaLimiter
getWriteAvailable
in interface QuotaLimiter
public long getReadAvailable()
QuotaLimiter
getReadAvailable
in interface QuotaLimiter
Copyright © 2007–2020 The Apache Software Foundation. All rights reserved.