Package com.linkedin.venice.throttle
Class GuavaRateLimiter
java.lang.Object
com.linkedin.venice.throttle.GuavaRateLimiter
- All Implemented Interfaces:
VeniceRateLimiter
A wrapper around Guava's RateLimiter to provide a common interface for rate limiting.
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.linkedin.venice.throttle.VeniceRateLimiter
VeniceRateLimiter.RateLimiterType
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionlong
getQuota()
void
setQuota
(long quota) The following methods are used only when checking if the new quota requests are different from the existing quota.toString()
boolean
tryAcquirePermit
(int units) Try to acquire permit for the given rcu.
-
Constructor Details
-
GuavaRateLimiter
public GuavaRateLimiter(long permitsPerSecond)
-
-
Method Details
-
tryAcquirePermit
public boolean tryAcquirePermit(int units) Description copied from interface:VeniceRateLimiter
Try to acquire permit for the given rcu. Will not block if permit is not available.- Specified by:
tryAcquirePermit
in interfaceVeniceRateLimiter
- Parameters:
units
- Number of units to acquire.- Returns:
- true if permit is acquired, false otherwise.
-
setQuota
public void setQuota(long quota) Description copied from interface:VeniceRateLimiter
The following methods are used only when checking if the new quota requests are different from the existing quota.- Specified by:
setQuota
in interfaceVeniceRateLimiter
-
getQuota
public long getQuota()- Specified by:
getQuota
in interfaceVeniceRateLimiter
-
toString
-