本手册提供了一种实用、循序渐进的方法,使用 Golang 构建一个基于日志结构合并树(LSM 树)的存储引擎。它首先识别了传统数据库设计面临的挑战,尤其是在写密集型工作负载方面。然后,本教程逐步介绍并实现了 LSM 树的核心组件:用于内存存储的 MemTable(内存表)、用于持久化和不可变磁盘存储的 SSTable(排序字符串表),以及用于崩溃恢复的 WAL(预写日志)。作者强调了每个组件背后的设计理念,例如 SSTable 的不可变性简化了并发性并带来了可预测的读/写路径,以及 WAL 的顺序只追加特性实现了高效的磁盘写入。文章使用地道的 Go 语言(包括泛型),并提供代码示例进行演示,最终旨在让读者理解如何构建高性能的现代数据库。









