数据库内核索引
本目录汇总八类数据库内核内容:生产级 RDBMS 源码拆解(PostgreSQL、MySQL InnoDB)、OLAP 列存引擎(ClickHouse / DuckDB)、数据湖与开放表格式(Parquet / Iceberg / Delta / Hudi)、流式数据处理(Kafka / Flink / 状态 / exactly-once)、分布式 OLAP 查询引擎(Trino / Spark / DuckDB / 优化与 MPP)、RocksDB 写优化 LSM 内核、向量检索引擎(Milvus / Knowhere / Qdrant / Lance 对照),以及 从零实现 LSM-Tree 的实验系列。
系列入口
PostgreSQL 内核机制(26 篇,已完成)
从进程模型、MVCC、WAL、Buffer Pool、查询优化器、索引到流复制与运维实战——PG 内核完整拆解。
MySQL InnoDB 内核机制(20 篇,已完成)
InnoDB 架构、页格式、Buffer Pool、Redo/Undo、MVCC、锁、binlog 与 PG 系列对照。全 20 篇。
列存引擎内核(16 篇,已完成,§14 学术加深)
ClickHouse MergeTree、向量化执行、Merge 与分布式;DuckDB 对照。全 16 篇;研究台账见 columnar-engine/PLAN.md。
数据湖与开放表格式(21 篇,已完成)
Parquet / Arrow 列式文件格式,Iceberg 元数据树与提交协议,Delta 事务日志与 Hudi timeline 对照;对象存储 ACID、行级删除、catalog、查询引擎下推、流式 CDC 入湖与湖上向量。全 21 篇。
流式数据处理(18 篇,已完成,§14 学术加深)
Kafka 日志与副本、Flink 事件时间与 watermark、窗口、RocksDB 状态与 checkpoint、端到端 exactly-once、Debezium CDC 与入湖深化;背压、生产故障模式与引擎选型对照。承接 lakehouse 第 19 章 入湖侧,补全实时计算层。全 18 篇;研究台账见 stream-processing/PLAN.md。
分布式 OLAP 查询引擎(18 篇,已完成)
闭合数据平台栈:SQL 前端与 Calcite 式优化、Volcano/向量化执行、Trino Coordinator/Worker 与 shuffle、Iceberg connector 下推与生产排查。承接 lakehouse 第 18 章 读湖视角。全 18 篇。
RocksDB 内核机制(18 篇,已完成)
补全存储引擎三角:LevelDB 基线、RocksDB 写/读路径、SST/MANIFEST、Leveled/Universal compaction 与 write stall、Column Family、事务与 Checkpoint、Flink/TiKV 嵌入对照。与 lsm-tree DIY 和 stream-processing 第 12 章 分工。全 18 篇。
向量检索引擎(18 篇,已完成)
补齐 db-frontier ANN 算法篇与 llm-infra RAG 应用篇之间的引擎层:Milvus 2.6.x(Segment / WAL / Segcore / Knowhere / 混合过滤与一致性),Qdrant 与 Lance/LanceDB 对照。全 18 篇;规划见 vector-engine/PLAN.md。
LSM-Tree 实验与其它单篇
这一组文章偏“自己动手做一个数据库部件”:从日志、MemTable、SSTable、Bloom Filter、Compaction 到完整引擎,把抽象名词还原成可运行的代码路径。
当前 LSM 实验与其它单篇共 9 篇正文。
推荐入口
- 【向量检索引擎】向量引擎全景:算法、RAG 与专用引擎之间的一层
- 【向量检索引擎】系列入口
- 【RocksDB 内核机制】LSM 生态全景:存储引擎三角与 RocksDB 生态位
- 【数据湖与开放表格式】Lakehouse 全景:从 Hive 表到开放表格式
- 【从零写一个 LSM-Tree 存储引擎】Compaction:LSM-Tree 的心脏手术
- 【从零写一个 LSM-Tree 存储引擎】完整引擎 + Rust 重写对比
- 从零写一个 LSM-Tree 存储引擎
目录
- 【从零写一个 LSM-Tree 存储引擎】Compaction:LSM-Tree 的心脏手术
- 【从零写一个 LSM-Tree 存储引擎】完整引擎 + Rust 重写对比
- 从零写一个 LSM-Tree 存储引擎
- 【从零写一个 LSM-Tree 存储引擎】LSM-Tree 全景:为什么要先写日志再排序
- 【从零写一个 LSM-Tree 存储引擎】SSTable + Bloom Filter:磁盘上的有序表
- 【从零写一个 LSM-Tree 存储引擎】WAL + MemTable:崩溃了也不丢数据
- 数据库 MVCC:快照隔离到底隔离了什么
- 持久化数据结构在数据库中的应用
- SQLite 是怎么做到十亿行每秒的
延伸阅读
同主题继续阅读
把当前热点继续串成多页阅读,而不是停在单篇消费。
【RocksDB 内核机制】LevelDB · WAL · Compaction · Column Family · 生产嵌入
补全存储引擎三角最后一角:从 LevelDB 基线与 RocksDB 架构演进,到 WAL/MemTable/SST 写路径、Get/Iterator 读路径、Leveled/Universal compaction 与 write stall,再到 Column Family、事务、Checkpoint 与 Flink/TiKV 嵌入对照。
【RocksDB 内核机制】LSM 生态全景:存储引擎三角与 RocksDB 生态位
闭合存储引擎三角的最后一角:对照 PG B-Tree 与列存 scan,定位 LSM 写优化引擎在 TiKV、Flink、Kafka Streams、ClickHouse Embedded 中的嵌入方式,并划分本系列与 lsm-tree DIY、storage/31–32、stream/12 的分工边界。
【RocksDB 内核机制】选型与存储栈阅读地图
用决策树收束 RocksDB 与 InnoDB、列存、湖仓的适用边界;给出存储引擎三角 + 数据平台全栈阅读地图,对接 query-engine/18 与 postgresql-kernel,并标注 HTAP/TiKV 续作入口。
【数据湖与开放表格式】Parquet · Iceberg · Delta · Hudi 内核拆解
拆解 lakehouse 的两层基础:列式文件格式(Parquet/ORC/Arrow)与开放表格式(Iceberg/Delta/Hudi)。讲清没有数据库进程时,如何在对象存储上做 ACID、行级更新、快照与并发,以及 catalog、查询引擎、流式入湖如何拼成可运维的湖仓。面向数据平台工程师与从 OLAP/数仓转型的开发者。