Class TokenBucket

java.lang.Object
org.apache.polaris.service.ratelimiter.TokenBucket

public class TokenBucket extends Object
General-purpose Token bucket implementation. Acquires tokens at a fixed rate and has a maximum amount of tokens. Each successful "tryAcquire" costs 1 token.
  • Constructor Details

    • TokenBucket

      public TokenBucket(long tokensPerSecond, long maxTokens, InstantSource instantSource)
  • Method Details

    • tryAcquire

      public boolean tryAcquire()
      Tries to acquire and spend 1 token. Doesn't block if a token isn't available.
      Returns:
      whether a token was successfully acquired and spent