-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Open
Description
I've been working on a lock-free observation algorithm for histograms in the Rust client. It seems to give better results than the current one in the Go client.
All my experiments are described in detail in the repository https://github.com/wyfo/split-histogram. The key aspects are:
- fewer atomic RMW operations
- better cache locality, leading to improved performance under contention
- proper synchronization between observations and collection (no spin-loop with
runtime.Gosched)
I haven't implemented it in Go yet because I don't have much time right now, but if you find the idea interesting, I can try to do it — unless someone else wants to.
I know the future is oriented toward native histograms, but their current implementation is far too costly in terms of performance for my use case, so I still need a histogram implementation with the least possible overhead.
Metadata
Metadata
Assignees
Labels
No labels