2026-06-16 | database · kernel | #postgresql #pg-kernel #wal #xloginsert #checkpoint #redo #recovery #wal-writer #wal-level #pg-waldump #xlogrecord #checkpoint-completion-target
拆解 PostgreSQL WAL 的完整内部机制:XLogInsert() 从分段锁到 WAL Buffer 的插入路径、XLogRecord 的物理布局(Header + Block Headers + Data)、Checkpoint 的两阶段流程与 IO 摊平算法、REDO 恢复的 RMGR 分发、wal_level 三级差异的 WAL 记录对比。运维部分聚焦 checkpoint IO 风暴的根因与 checkpoint_completion_target 的调优陷阱、max_wal_size 设小导致 WAL 段疯狂切换的机制,以及用 pg_waldump 定位问题 WAL record 的实操方法。
2026-06-16 | database · kernel | #postgresql #pg-kernel #logical-replication #logical-decoding #reorder-buffer #pgoutput #publication #subscription #decode #conflict-detection #replication-slot #wal
拆解 PostgreSQL 逻辑复制的完整内核路径:LogicalDecodingContext 从 WAL 解码出逻辑变更的内部流程、Reorder Buffer 按 COMMIT 顺序重排事务与 snapshot 重建机制、pgoutput 输出插件的二进制协议与行过滤变换、Publication/Subscription 模型的内核实现。重点剖析四种冲突类型的根因与修复边界——update_missing/delete_missing 为什么静默跳过而 duplicate_key 直接停摆、subscription 被 disable 后的数据追平策略、序列不在逻辑复制范围内的自增主键冲突陷阱、大事务在 reorder buffer 中的延迟放大效应。
2026-06-16 | database · kernel · ops | #postgresql #pg-kernel #pitr #pg_resetwal #pg_checksums #zero_damaged_pages #pg_dump #pg_restore #wal #corruption #recovery #timeline #pg_rewind
拆解 PostgreSQL 数据恢复路径的内部机制与操作边界:PITR 的三个关键窗口与 timeline fork 原理、pg_checksums 的校验粒度与盲区、pg_resetwal 的 hint bit 代价与 VACUUM FULL 陷进、pg_dump 并行调度的内部策略。重点在于每种操作做什么、不做什么、哪些后果不可逆。
2026-06-16 | database · kernel | #postgresql #pg-kernel #mvcc #wal #vacuum #btree #query-planner #streaming-replication #logical-replication #buffer-manager #lock-manager #troubleshooting #pg-upgrade #pitr #postgresql-internals
从进程模型到磁盘页面、从 MVCC 到流复制——对 PostgreSQL 内核做完整的源码级拆解。不止步于源码分析:26 篇中 6 篇是运维实战——经典故障的根因与排查路径、性能调查的五层工具链、配置陷阱与恢复边界。面向想读懂 PG 内核源码、在生产环境排查过问题、准备给 PG 贡献代码的工程师。
2025-10-15 | storage | #write-optimization #group-commit #wal #memtable #write-stall #fsync #rate-limiting #batch-write
深入分析存储写入性能优化——WAL 分组提交、批量写入、Write Buffer 调优、fsync 频率控制、写入限速与写停顿分析
2025-09-05 | storage | #wal #aries #crash-recovery #checkpoint #lsn #redo #undo
WAL 是数据库持久性的基石,ARIES 是工业界公认最完备的崩溃恢复协议。本文从 WAL 三条规则出发,逐步拆解 ARIES 的 Analysis-Redo-Undo 三阶段,结合 InnoDB 实现分析恢复全流程。
2026-06-02 | algorithms | #vector-engine #hnsw #pq #wal #mmap #systems-programming
把前几篇的算法组装起来,构建一个真正可用的向量检索系统。
2026-04-28 | algorithms | #wal #aries #crash-recovery #checkpoint #database #innodb
崩溃恢复是数据库最被低估的核心能力。
2026-03-22 | database | #database #lsm-tree #wal #memtable #skip-list #crash-recovery #leveldb #storage-engine
从零实现 WAL 和 MemTable:WAL 的 record 格式与 32KB Block 对齐、跳表的 O(log n) 插入与查找、InternalKey 编码、崩溃恢复的正确性证明。从零写一个 LSM-Tree 存储引擎系列第 2 篇。
2026-03-30 | database | #database #sqlite #b-tree #wal #page-cache #storage-engine #benchmark #performance #source-code-analysis
拆解 SQLite 的三层性能引擎:B-Tree 页面布局如何把随机 I/O 压到最低、WAL 如何实现读写并发、Page Cache 如何替代操作系统的盲目预读。附 SQLite vs MySQL vs PostgreSQL 嵌入式场景对比分析。
2026-03-15 | database | #database #lsm-tree #leveldb #rocksdb #storage-engine #rust #compaction #wal #sstable #bloom-filter #skip-list #benchmark
五篇长文,从 LSM-Tree 的设计哲学讲到完整 KV 引擎实现,最后用 Rust 重写并三方 benchmark 对比。每篇含完整 C 代码、架构图、数学推导。