一位开发者分享了历时两年多打造的嵌入式 KV 存储引擎 Mace,项目已在 GitHub 开源。该引擎采用 Rust 编写,设计目标是同时获得 B+ Tree 读延迟可预测与 LSM Tree 写吞吐高的优点。核心特性包括:Bw-Tree 风格的有序索引搭配 MVCC 快照隔离、append-only WAL 日志与异步 checkpoint、大 value 分离存储至 blob 文件、bucket 粒度管理与懒加载、merge operator 支持、可选 zstd 压缩,以及 CRC 校验保障数据完整性。项目目前仍处早期阶段,但存储格式和公开 API 已基本稳定,崩溃恢复经过测试。该项目起源于开发者此前用 Rust 编写的文件系统 junkfs,因元数据管理需要事务支持却找不到合适的存储方案,在研读 leanstore 与 photondb 的源码及相关论文后决定自行实现。性能方面,在 relaxed durability、16 字节键/128 字节值、100 万条数据的测试条件下,Mace 与 RocksDB 对比:读多写少场景达到每秒 294 万次操作,约为 RocksDB 的 2.67 倍;zipf 分布下达 2.88 倍;均衡读写为 1.97 倍;写密集场景为 1.49 倍;纯 scan 场景为 1.62 倍。作者坦言在读多写少和扫描场景优势明显,写密集场景优势缩小。后续规划包括自定义 comparator,重点将转向稳定性与细节打磨。
事件分析
核心观点:当 sled 沉寂、RocksDB 臃肿难嵌,独立开发者正用 Rust 在存储引擎的缝隙处证明单点性能突围的可能。
原文链接:V2EX 分享发现

评论前必须登录!
立即登录 注册