数据库专题
数据库内核是计算机系统软件中最复杂的领域之一。本专题收录我在 PostgreSQL / openGauss 内核开发、分布式一致性(Raft / DCF)、逻辑解码与双向同步、存储引擎等方向的实战笔记与源码解读,希望对同样走在这条路上的同行有所启发。
作为长期在 PostgreSQL 与 openGauss 内核一线搬砖的工程师,我日常的工作内容大致涵盖:内核源码阅读与 Bug 定位、新特性设计(如 DDL-Replay 双向同步)、分布式一致性模块开发(DCF / Raft)、性能调优与故障排查。下面把博客里相关的文章按主题串成一张导览图,方便按需取用。
主题导览图
下面这张关系图勾勒了数据库内核的八大主题及其依赖关系:内核基础是底盘,向上分支出 MVCC/事务、逻辑复制、分区与性能调优;这些基础模块共同支撑高可用与复制,并最终汇聚到分布式一致性这一最高层。点击下方任一主题卡片,可直接进入对应主题的全部文章列表。
主题卡片矩阵
下面每个卡片对应一个数据库内核主题。卡片显示主题简介、文章总数和最近 5 篇文章;点击主题名或卡片可进入 /tags/<主题>/ 自动聚合页。新增文章只需在 tools/sync-hexo.py 的 TOPIC_RULES 中加入匹配规则,文章就会出现在对应主题卡片里,无需手动维护本页。
近期更新(最新 10 篇)
数据库专题下最近发布或更新的 10 篇文章,按时间倒序排列,作为”新内容速递”使用。完整文章可通过上方主题卡片、/tags/、/categories/数据库 等自动聚合页浏览。
- PostgreSQL 逻辑复制 Stream 执行逻辑源码级拆解:从 reorderbuffer 触发到订阅端落盘回放 · 2026-10-27
- PostgreSQL 目录快照源码级深度拆解:系统表读取的 MVCC 真相与失效机制 · 2026-10-27
- PostgreSQL 读一行数据源码级深度拆解:MVCC 在每个环节的落点 · 2026-10-26
- 逻辑复制发布端现状 · 2026-10-21
- pgoutput_change 到 HeapTupleSatisfiesVisibility 的函数调用栈分析 · 2026-10-21
- PostgreSQL reorderbuffer.c 函数级源码全集:5615 行 / 95 个函数的逐函数解析 · 2026-10-20
- PostgreSQL 逻辑复制:catalog 改动、可见性判定与 xmin/xmax 推进全景 · 2026-10-20
- PostgreSQL syscache 模块源码深度拆解:CatCache 数据结构、LRU 哈希表、cache invalidation 全链路 · 2026-10-20
- openGauss 通过 CSN 保证全序的源码级深度分析:从 nextCommitSeqNo 原子计数到订阅端 CSN 校验 · 2026-10-19
- openGauss 并行解码设计原理深度拆解:reader + 多 worker + CSN 三层架构的源码级剖析 · 2026-10-19
精选文章(高优置顶)
带有 top: 标记的置顶文章,通常是相对完整、体系化的系列入口或读者最常问的主题。
按主题浏览
数据库专题文章分布在以下 8 个主题中,点击进入自动聚合页:
- 内核基础 · 45 篇 · 进程模型 · 存储 · WAL · 执行器 · 学习路径
- MVCC 与事务 · 7 篇 · 多版本并发控制 · 事务生命周期 · 隔离级别
- 逻辑复制 · 80 篇 · 逻辑解码 · DDL 同步 · publisher / subscriber
- 分区 · 10 篇 · 分区表设计 · 跨分区 DML 路由 · 跨数据库对比
- 分布式一致性 · 10 篇 · Raft · DCF · 多数派 · Leader 选举
- 性能调优 · 5 篇 · Checkpoint · WAL Writer · 统计信息 · IO 调优
- 实战经验 · 9 篇 · 避坑清单 · 翻译整理 · PostgreSQL 万能论
核心技术栈
学习路径建议
如果你刚接触数据库内核开发,建议按下面这条路线循序渐进,每一档都附上对应的站内文章入口:
- 入门:PostgreSQL 基操 → 源码编译 → 启动流程。先把一份能跑、能断点的内核源码环境搭起来。
- 存储与 WAL:FSM 文件解析 → full_page_writes → WAL 机制浅析 → 崩溃恢复。理解”数据页 + WAL + 检查点”这一数据库的基石三角。
- 进程与执行器:BgWriter → Checkpoint → WalWriter → insert 语句执行过程。把后台进程和查询执行的主干打通。
- 复制与高可用:流复制与 WAL 日志 → 同步流复制原理 → WalReceiver / WalSender 交互 → repmgr 实现原理 → 伪双写。
- 事务与并发控制:事务管理 → 并发控制 → MVCC 源码解读 → 锁等待排查。
- 逻辑解码与双向同步:逻辑复制源码分析 → PG15 逻辑复制支持 DDL → pglogical 详解 → DDL-Replay 框架设计 → AI 逻辑解码。
- 分布式一致性:Raft 重要概念 → 一文读懂 openGauss DCF 网络模块 → DCF 投票系统详解 → DCF 运行机制 → DCF 写入机制 → Raft 协议动态调整 quorum。
实战经验沉淀
- 内核 Bug 定位:熟悉 gdb / perf / bpftrace 的组合用法,能从 panic 日志反推到具体的代码行。
- 性能优化:在 openGauss 内核侧主导过 WAL 写入路径优化、复制槽回收策略改造等专项,单节点写入吞吐有数倍提升。
- 架构设计:完整设计过一套基于 DCF 的两地三中心高可用方案,覆盖网络分区、脑裂、自动切换、降级运行等场景。
推荐阅读顺序
如果你只想读 5 篇文章理解数据库内核的脉络,我会推荐:
这五篇涵盖了存储、复制、分布式一致性与逻辑同步四条主线,足以勾勒出数据库内核的整体图景。
写在最后
数据库内核开发是一个”慢就是快”的领域:每一次对一行代码的深入理解,最终都会在某个深夜的故障排查里兑现回报。本专题会持续更新,把每一段新的源码阅读笔记、每一次新的故障复盘都沉淀下来。也欢迎通过 GitHub 与我交流。