K - type of the table keyV - type of the table recordpublic class TableRateLimiter<K,V>
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
static interface |
TableRateLimiter.CreditFunction<K,V>
Function interface for providing rate limiting credits for each table record.
|
| Constructor and Description |
|---|
TableRateLimiter(java.lang.String tableId,
RateLimiter rateLimiter,
TableRateLimiter.CreditFunction<K,V> creditFn,
java.lang.String tag) |
| Modifier and Type | Method and Description |
|---|---|
void |
setTimerMetric(Timer timer)
Set up waitTimeMetric metric for latency reporting due to throttling.
|
void |
throttle(java.util.Collection<K> keys,
java.lang.Object... args)
Throttle a request with a collection of keys as the argument if necessary.
|
void |
throttle(int opId,
java.lang.Object... args)
Throttle a request with opId and associated arguments
|
void |
throttle(K key,
java.lang.Object... args)
Throttle a request with a key argument if necessary.
|
void |
throttle(K key,
V value,
java.lang.Object... args)
Throttle a request with both the key and value arguments if necessary.
|
void |
throttleRecords(java.util.Collection<Entry<K,V>> records,
java.lang.Object... args)
Throttle a request with a collection of table records as the argument if necessary.
|
public TableRateLimiter(java.lang.String tableId,
RateLimiter rateLimiter,
TableRateLimiter.CreditFunction<K,V> creditFn,
java.lang.String tag)
tableId - table id of the table to be rate limitedrateLimiter - actual rate limiter instance to be usedcreditFn - function for deriving the credits for each requesttag - tag to be used with the rate limiterpublic void setTimerMetric(Timer timer)
timer - waitTimeMetric metricpublic void throttle(K key, java.lang.Object... args)
key - key used for the table requestargs - additional argumentspublic void throttle(K key, V value, java.lang.Object... args)
key - key used for the table requestvalue - value used for the table requestargs - additional argumentspublic void throttle(int opId,
java.lang.Object... args)
opId - operation Idargs - associated argumentspublic void throttle(java.util.Collection<K> keys, java.lang.Object... args)
keys - collection of keys used for the table requestargs - additional arguments