Class GuavaRateLimiter

java.lang.Object
com.linkedin.venice.throttle.GuavaRateLimiter
All Implemented Interfaces:
VeniceRateLimiter

public class GuavaRateLimiter extends Object implements VeniceRateLimiter
A wrapper around Guava's RateLimiter to provide a common interface for rate limiting.
  • 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 interface VeniceRateLimiter
      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 interface VeniceRateLimiter
    • getQuota

      public long getQuota()
      Specified by:
      getQuota in interface VeniceRateLimiter
    • toString

      public String toString()
      Overrides:
      toString in class Object