Skip to content

Latest commit

 

History

History
44 lines (43 loc) · 1.5 KB

roadmap.md

File metadata and controls

44 lines (43 loc) · 1.5 KB

Roadmap

  • 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!
      • Vegas
        • Probe min. latency
        • Support fast start
    • Windowed wrapper
      • Percentile sampler
      • Average sampler
      • Configure window duration decision policy?
  • Tests
    • Vegas
  • Simulator:
    • Topology
      • Source and Sink 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
  • 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
  • Documentation
    • README
      • Examples
    • Rustdoc #![warn(missing_docs)]
      • Examples
    • Move most docs into Rust doc format to view in e.g. crates.io