#tree #b-tree #map #version

bplustree

具有乐观锁耦合的并发内存 B+ 树

1 个不稳定版本

0.1.0 2021年10月7日

#44 in #并发

Download history 226/week @ 2024-03-13 177/week @ 2024-03-20 183/week @ 2024-03-27 151/week @ 2024-04-03 87/week @ 2024-04-10 225/week @ 2024-04-17 339/week @ 2024-04-24 208/week @ 2024-05-01 121/week @ 2024-05-08 111/week @ 2024-05-15 18/week @ 2024-05-22 77/week @ 2024-05-29 237/week @ 2024-06-05 116/week @ 2024-06-12 52/week @ 2024-06-19 18/week @ 2024-06-26

453 每月下载量

MIT/Apache

170KB
3.5K SLoC

BPlusTree

实现了一个具有乐观锁耦合的快速内存 B+ 树。该实现基于 LeanStore 并从 Umbra 中进行了一些调整。

当前的 API 非常基础,预计在未来的版本中将添加更多功能,它试图松散地遵循 std::collections::BTreeMap API。

目前它尚未进行大量优化,但已经比一些并发无锁实现更快。单线程性能通常较慢(约 1.4 倍),但由于 B+ 树拓扑结构,扫描速度略快。

有关如何使用它的说明,请参阅 文档


lib.rs:

实现了一个具有乐观锁耦合的快速内存 B+ 树。该实现基于 LeanStore 并从 Umbra 中进行了一些调整。

当前的 API 非常基础,预计在未来的版本中将添加更多功能,它试图松散地遵循 std::collections::BTreeMap API。

目前它尚未进行大量优化,但已经比一些并发无锁实现更快。单线程性能通常较慢(约 1.4 倍),但由于 B+ 树拓扑结构,扫描速度略快。

use bplustree::BPlusTree;

let tree = BPlusTree::new();

tree.insert("some", "data");

依赖关系

~1–1.8MB
~34K SLoC