Tech
[分享创造] 分享一个用 Rust 写的嵌入式 KV 引擎 Mace
这两年做了一个嵌入式 KV 存储引擎,叫 Mace https://github.com/abbycin/mace ,分享一下。
它是什么
嵌入式、事务性 KV 数据库,设计上想同时拿到 B+ Tree 读延迟可预测和 LSM Tree 写吞吐高的优点。主要特性:
Bw-Tree 风格的有序索引 + MVCC snapshot isolation
append-only WAL + 异步 checkpoint
大 value 分离( blob 文件)
bucket 粒度管理,懒加载
merge operator 支持
可选 zstd 压缩
CRC 校验保证数据完整性
目前状态
还非常年轻,功能应该大差不差了,但还有很多细节需要打磨(比如:空间满了或许应该转为只读而不是打日志然后崩溃,诸如此类的细节)。不过好消息是,存储格式和公开 API 基本稳定,crash recovery 经过测试
为什么要做这个
两年多前看过内核和用户态文件系统的实现,就想着自己也写一个练练手,于是用 Rust 写了一个 junkfs ,其中 kv ...
Read the full discussion on V2EX
This article was aggregated from V2EX. Click to join the conversation.
View on V2EX