Introduce sweep-bptree, a in memory b+tree implementation which performs better for local access
Hi All,
I'd like to introduce sweep-bptree, A b+tree impl which has some unique features. https://crates.io/crates/sweep-bptree
advantages
- Compare to std::collections::BTreeMap, performs better for local access pattern, follow up queries tend to query keys near previous queries.
- Better performance for iter, into\_iter, clone, drop etc.
- bulk load pre sorted values.
disadvantages
- slower random access performance, details pls refer to the readme's benchmark section.
- still early.
why?
While developing poly2tri-rs, I need a performant data structure to maintain the \sweeping/advancing front\\. It's access pattern is like: query a point, doing calculation and modification, then try prev/next point. B+Tree stores all data on leafs, which is quite nice for cache.
Disclaimer: this crate utilize unsafe code to achieve better performance..
Here is the github link: sweep-bptree