推荐一个我自己最近在做的项目:一个单机 kv 存储引擎名为 LotusDB(Lotus 意为莲花/荷花)。

lotusdb 是一个结合 LSM 和 B+ 树优势的 kv 存储引擎,具备读写快速稳定、读写放大和空间放大极低、简洁优雅的特点。

如果你苦于 CRUD 无法自拔,想造轮子、写数据库、写底层存储引擎,想成为一个内功深厚的程序员的话,这个项目就是为你量身打造的。

如果你想学习 Go 语言,这也是绝佳的项目之一。

github.com

有以下几大特点你可以学习:
● 代码简洁规范
● 涵盖大多数 Go 语言基础用法和高级特性
● 单元测试编写技巧
● 理解和实践常见 kv 存储模型(LSM 和 B+ 树)
● 数据库设计理念
● 底层基础知识实践(操作系统、文件、磁盘)

lotusdb 把 LSM Tree 当中最复杂的 SSTable 以及 compaction 操作完全去掉了,大大降低了学习和自己手撸 LSM Tree 的门槛,相信通过这个项目,你可以走上成为一个内功深厚的高手之路!

ps. 目前这个项目刚起步不久,相关的文档还在撰写和完善中,后续会出一个完整的 LotusDB 设计与实现的系列文章,欢迎关注我的知乎后续更新。
展开
评论