- Limit algorithms
- Loss-based
- AIMD
- Delay-based
- Gradient
- Time-based short window (e.g. min. 1s, min. 10 samples)
This way the limit won't be updated on every sample
- Just move the short window to the Windowed wrapper!
- Time-based short window (e.g. min. 1s, min. 10 samples)
This way the limit won't be updated on every sample
- Vegas
- Probe min. latency
- Support fast start
- Gradient
- Windowed wrapper
- Percentile sampler
- Average sampler
- Configure window duration decision policy?
- Loss-based
- Tests
- Vegas
- Simulator:
- Topology
-
Source
andSink
interfaces? -
LoadSource -> Option<ClientLimiter> -> Option<ServerLimiter> -> Server
? -
Server -> *Servers
?
-
- LoadSource - cycle through behaviours, e.g. 100 RPS for 10 seconds, 0 RPS for 2 seconds
- Results
- Each node keep track of own metrics?
- Graphs
- Test fairness
- Topology
- Limiter
- Rejection delay
- Option to add delay before rejecting jobs. Intended to slow down clients, e.g. RabbitMQ retries.
- Fractional limits – e.g. 0.5 allows 1 job every other RTT
- Static partitioning
- Dynamic partitioning?
- How possible would it be to partition somewhat dynamically? E.g. on customer IDs?
- LIFO for jobs waiting for a token
- Optimise for latency
- Rejection delay
- Documentation
- README
- Examples
- Rustdoc
#![warn(missing_docs)]
- Examples
- Move most docs into Rust doc format to view in e.g. crates.io
- README