Expand description
Admission-based rate limiting for throughput and bandwidth.
This module provides RateLimiter, which enforces configurable limits at three
levels of granularity — global, per-usecase, and per-scope — for both request
throughput (requests/s) and upload/download bandwidth (bytes/s).
Throughput is enforced using token buckets. Bandwidth uses debt-based GCRA (Generic Cell Rate Algorithm) buckets that track a theoretical arrival time (TAT). All rate-limit checks are synchronous, non-blocking, and lock-free.
Structs§
- Bandwidth
Handle - Handle for recording bandwidth consumption against GCRA buckets.
- Bandwidth
Limits - Bandwidth limits applied at global, per-usecase, and per-scope granularity.
- Rate
Limiter - Combined rate limiter that enforces both bandwidth and throughput limits.
- Rate
Limits - Rate limits for objectstore.
- Throughput
Limits - Request throughput limits applied at global, per-usecase, and per-scope granularity.
- Throughput
Rule - An override rule that applies a specific throughput limit to matching request contexts.