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

rust-practice

> 编程语言
开源

Rust 中的一些小型学习项目

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

工具介绍

Rust 中的一些小型学习项目

Rust-练习

Bitcask 是什么? Bitcask 是一种日志结构的键值存储模型(最初来自 Riak)。与在原地更新数据不同,每次写入 — — 无论是 set 还是 delete — — 都会被追加到日志文件的末尾。内存中的哈希索引(称为 "keydir")将每个键映射到其在日志中最新条目的偏移量/长度。键的旧版本在日志中只是成为死空间,直到合并(压缩)将仅对活动条目进行重写,生成一个新文件并回收磁盘空间。这种设计通过为非常快速的、大部分是顺序的写入和 O(1) 的读取牺牲了一些内存(每个键一个索引条目)。

这里的实现方式非常简单:

  • 日志文件以 key_len(4B) | value_len_or_tombstone(4B) | key | value 的形式存储条目;负值表示是一个墓碑(删除)。

  • keydir: BTreeMap, (offset, length) 在启动时通过扫描日志一次在内存中重建。

MVCC 是什么? 多版本并发控制允许读者和写者同时工作,而不互相阻塞。 而不是覆盖一个值,每次写入都会创建一个带有单调递增版本号的 新版本。 事务在开始时获取一个版本号,并且只会看到在该时刻已经提交的版本(其"快照") - 从而实现可重复的读取,而不需要获取读锁。

Issues· 0 开放

查看全部 Issues在 GitHub 打开

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

> 标签

Rustbitcaskkv-store

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

> 工具信息

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

> 相关工具

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