一周构建一个 LSM 树存储引擎

大家好,又见面了,我是 GitHub 精选君!

背景介绍

对于计算机专业学习者或是具有相关项目需求的开发者来说,想要自己动手构建一个存储引擎并不易实现。尤其是 LSM 树(Log-structured Merge-tree)存储引擎,为了适配大数据和高写入量场景,设计和实现上都需要投入较大的精力来完成。此时,如果有一个详细的项目教程引导你走过这个复杂的过程,那是不是也太好了。

今天要给大家推荐一个 GitHub 开源项目 skyzh/mini-lsm,该项目在 GitHub 有超过 1.9k Star,用一句话介绍该项目就是:A tutorial of building an LSM-Tree storage engine in a week!

项目介绍

LSM in a Week 是一个开源的教学项目,旨在指导用户在一个星期之内构建一个简单的 LSM 树存储引擎。项目为有志于专研 LSM 存储引擎的开发者提供了极好的学习机会。它通过详细的教程文档,指导开发者从入门到实现整个存储引擎。三周的教程安排合理,每一天的学习任务清晰,使得用户学习的过程不会过于困难。

如何使用

首先,用户需要将项目 clone 到本地:git clone https://github.com/skyzh/mini-lsm.git。 接着,跟随给出的教程在 mini-lsm-starter 目录下开始编写你的 code:

cargo x install-tools
cargo x copy-test --week 1 --day 1
cargo x scheck
cargo run --bin mini-lsm-cli
cargo run --bin compaction-simulator

同时,项目还提供了已经完成开发的参考解决方案供开发者参考:

cargo run --bin mini-lsm-cli-ref
cargo run --bin mini-lsm-cli-mvcc-ref

并有一个压缩算法模拟器供开发者使用来实验你的压缩算法:

cargo run --bin compaction-simulator-ref
cargo run --bin compaction-simulator-mvcc-ref

教程书籍可供在线阅读:https://skyzh.github.io/mini-lsm

以下是该项目 Star 趋势图(代表项目的活跃程度):

更多项目详情请查看如下链接。

开源项目地址:https://github.com/skyzh/mini-lsm

开源项目作者:skyzh

开源协议:Apache License 2.0

以下是参与项目建设的所有成员:

关注我们,一起探索有意思的开源项目。


更多精彩请扫码关注如下公众号。

Written on February 2, 2024