For small queue sizes, of course, cache locality will dictate perf. For large queue sizes, on the order of magnitude of Kafka/Linux kernel/Windows kernel, these schedulers all take the form of hierarchal timer wheels to reduce O(n) -> O(lgn)
I'm asking as we plan on eventually building a distributed hierarchal timer wheel partitioned & replicated w/ gossip protocols. A native, thoughtful approach would help greatly :)
Ive been using the delay queue quite often - https://github.com/tokio-rs/tokio/blob/cf38ba627abb0d44ae7e7dc0659ddd51866e9efa/tokio-util/src/time/delay_queue.rs
I was curious whether any of the wonderful authors of this library thought about hierarchical timer wheels as an alternative/better approach - https://blog.acolyer.org/2015/11/23/hashed-and-hierarchical-timing-wheels/
For small queue sizes, of course, cache locality will dictate perf. For large queue sizes, on the order of magnitude of Kafka/Linux kernel/Windows kernel, these schedulers all take the form of hierarchal timer wheels to reduce O(n) -> O(lgn)
I'm asking as we plan on eventually building a distributed hierarchal timer wheel partitioned & replicated w/ gossip protocols. A native, thoughtful approach would help greatly :)