WAL 与 ARIES:pageLSN、CLR 与可重启恢复
从 steal/no-force 缓冲策略出发,拆解 ARIES 的 Analysis、Redo、Undo、pageLSN、CLR 与 fuzzy checkpoint,并用可复现实验验证恢复中再次崩溃的幂等性;最后对照 PostgreSQL 16 与 SQLite 3.46 的真实 WAL 边界。
Linux 内核、存储与网络、可观测性、系统架构与大模型基础设施的工程笔记:机制拆解、踩坑复盘与可核对证据,少空谈。
共 16 篇文章 · 返回首页
从 steal/no-force 缓冲策略出发,拆解 ARIES 的 Analysis、Redo、Undo、pageLSN、CLR 与 fuzzy checkpoint,并用可复现实验验证恢复中再次崩溃的幂等性;最后对照 PostgreSQL 16 与 SQLite 3.46 的真实 WAL 边界。
汇总本站数据库内核文章:PostgreSQL / MySQL InnoDB / 列存、湖仓、流处理、查询引擎、RocksDB、向量、Redis、全文检索、TiKV/HTAP、FoundationDB、SQLite、WiredTiger 与图数据库内核,以及 LSM-Tree 实验与其它单篇。
OceanBase 选 MulanPubL-2.0,TiDB 选 Apache 2.0,Apache Doris 走基金会路线,StarRocks 从闭源 fork 再开源用 Elastic License 2.0,SequoiaDB 选 SSPL。本文分析中国开源数据库在协议选择背后的工程逻辑、商业动机与云厂商生态策略。
每一次网络请求的背后,都隐藏着建立连接的成本。当应用服务器需要与数据库通信时,一次完整的连接建立过程可能消耗数十毫秒;在高并发场景下,频繁创建和销毁连接会迅速耗尽系统资源,成为整个架构中最容易被忽视的性能瓶颈。连接池(Connection Pool)技术通过预先创建并复用连接,将单次连接获取的时间从毫秒级压缩到微秒级,…
面向 2026 年数据库研究前沿的系列索引,覆盖 AI-Native DB、向量与图检索、HTAP、Serverless、CXL、隐私计算与可验证数据系统。
从零实现 LSM-Tree Compaction:最小堆多路归并迭代器、Level 分层与 Compaction 打分、Tombstone 下推、Version/VersionEdit/MANIFEST 版本管理,以及 Leveled/Size-Tiered/Universal 三种策略的量化对比。从零写一个 LSM-Tree 存储引擎系列第 4 篇。
组装完整 LSM-Tree 存储引擎:DB 接口(Open/Put/Get/Delete/Iterator/Snapshot)、单写多读并发控制、启动恢复,然后用 Rust 重写核心模块,记录 5 个编译器不让我过的故事,最后三方 benchmark 对比。从零写一个 LSM-Tree 存储引擎系列第 5 篇。
从零理解 LSM-Tree 存储引擎的设计哲学:B-Tree 与 LSM-Tree 的本质差异,写放大/读放大/空间放大的三角权衡,以及 WAL、MemTable、SSTable、Compaction、Bloom Filter 各组件的角色与协作关系。从零写一个 LSM-Tree 存储引擎系列第 1 篇。
从零实现 SSTable 和 Bloom Filter:Data Block 前缀压缩与 restart 二分查找、Bloom Filter 双重哈希把误判率压到约 1%、SSTable Builder 和 Reader 的完整 C 代码。从零写一个 LSM-Tree 存储引擎系列第 3 篇。
从零实现 WAL 和 MemTable:WAL 的 record 格式与 32KB Block 对齐、跳表的 O(log n) 插入与查找、InternalKey 编码、崩溃恢复的正确性证明。从零写一个 LSM-Tree 存储引擎系列第 2 篇。
关系数据库范式详解:第一、第二、第三范式原理与数据库设计最佳实践
LevelDB 缓存实现解析:LRU 算法在 Key-Value 数据库中的应用与优化
LevelDB 使用指南:Google 开发的高性能 Key-Value 数据库实践教程
从 PostgreSQL 源码级别拆解 MVCC 的实现机制:堆表版本链、事务快照、可见性判断规则、VACUUM、隔离级别的真实行为,以及 Snapshot Isolation 抓不住的 Write Skew 和 SSI 如何解决它。附 MySQL InnoDB vs PostgreSQL MVCC 对比。
拆解 SQLite 的三层性能引擎:B-Tree 页面布局如何把随机 I/O 压到最低、WAL 如何实现读写并发、Page Cache 如何替代操作系统的盲目预读。附 SQLite vs MySQL vs PostgreSQL 嵌入式场景对比分析。
五篇长文,从 LSM-Tree 的设计哲学讲到完整 KV 引擎实现,最后用 Rust 重写并三方 benchmark 对比。每篇含完整 C 代码、架构图、数学推导。