百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
B

bf-tree

> 编程语言
开源

Bf-Tree 是来自 MS Research 的 Rust 中一个现代化的读写优化的并发大于内存范围索引。

1.1K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

Bf-Tree 是来自 MS Research 的 Rust 中一个现代化的读写优化的并发大于内存范围索引。

Bf-Tree Bf-Tree 是 MSR 的 Rust 中一个现代的读写优化的并发大于内存范围索引。 ## 设计细节 您可以在 这里 找到 Bf-Tree 研究论文。 更多设计文档可以在 这里。 ## 用户指南 ### Rust Bf-Tree 使用 Rust 编写,并作为一个 Rust 程序库提供。您可以将 Bf-Tree 添加到您的 Cargo.toml 中,如下所示: ```bash

$ cargo add bf_tree 这将将 bf_tree 添加为依赖项到您的 Cargo.toml 中。toml bf-tree = "0.5.5" Bf-Tree 的一个示例使用:rust use bf_tree::BfTree; use bf_tree::LeafReadResult;

let mut config = bf_tree::Config::default(); config.cb_min_record_size(4); let tree = BfTree::with_config(config, None).unwrap(); tree.insert(b"key", b"value");

let mut buffer = [0u8; 1024]; let read_size = tree.read(b"key", &mut buffer);

assert_eq!(read_size, LeafReadResult::Found(5)); assert_eq!(&buffer[..5], b"value");

###

Bf-Tree 支持 CPR 风格的一致快照。快照会将所有正在进行的事务的一个一致前缀保存到文件中,之后可以从这种快照文件重建树。要启用快照,在创建树之前在 `Config` 上设置 `use_snapshot(true)`。一旦启用,可以在任何时候调用 [`BfTree::cpr_snapshot`] 并指定目标路径来进行快照。可以同时进行读取和写入操作,但一次只能有一个快照正在进行。

要从快照文件恢复树,请使用 [`BfTree::new_from_cpr_snapshot`]。快照文件包含大多数配置字段(记录大小、叶页大小、仅使用缓存标志等),因此调用者只需要指定恢复时的选项:

- `recovery_snapshot_file_path`: 要从中恢复的快照文件的路径。 - `use_snapshot`: 恢复后的树是否本身支持创建新的快照。 - `buffer_ptr`: 可选的指向预先分配的缓存缓冲区的指针; 传递 `None` 以让 Bf-Tree 分配一个。 - `buffer_size`: 可选的快照中存储的缓存大小覆盖值。 如果小于原始大小,恢复可能失败,因为快照中的缓存页必须能够容纳

[dependencies]

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Rust

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言