1 unstable release
0.1.0 | Oct 7, 2021 |
---|
#1038 in Concurrency
531 downloads per month
170KB
3.5K
SLoC
BPlusTree
Implementation of a fast in-memory concurrent B+ Tree featuring optimistic lock coupling. The implementation is based on LeanStore with some adaptations from Umbra.
The current API is very basic and more features are supposed to be added in the following
versions, it tries to loosely follow the std::collections::BTreeMap
API.
Currently it is not heavily optimized but is already faster than some concurrent lock-free
implementations. Single threaded performance is generally slower (~ 1.4x) but still comparable to std::collections::BTreeMap
with sligthly faster scans due to the B+ Tree topology.
For how to use it refer to the documentation
lib.rs
:
Implementation of a fast in-memory concurrent B+ Tree featuring optimistic lock coupling. The implementation is based on LeanStore with some adaptations from Umbra.
The current API is very basic and more features are supposed to be added in the following
versions, it tries to loosely follow the std::collections::BTreeMap
API.
Currently it is not heavily optimized but is already faster than some concurrent lock-free
implementations. Single threaded performance is generally slower (~ 1.4x) but still comparable to std::collections::BTreeMap
with sligthly faster scans due to the B+ Tree topology.
use bplustree::BPlusTree;
let tree = BPlusTree::new();
tree.insert("some", "data");
Dependencies
~1–1.8MB
~33K SLoC