mvcc 标签归档

共 25 篇文章 · 返回首页

数据库内核实验索引

汇总本站数据库内核文章:PostgreSQL / MySQL InnoDB / 列存、湖仓、流处理、查询引擎、RocksDB、向量、Redis、全文检索、TiKV/HTAP、FoundationDB、SQLite 与 WiredTiger 内核,以及 LSM-Tree 实验与其它单篇。

【PG 内核】PostgreSQL 内核机制深度拆解

从进程模型到磁盘页面、从 MVCC 到流复制——对 PostgreSQL 内核做完整的源码级拆解。不止步于源码分析:26 篇中 6 篇是运维实战——经典故障的根因与排查路径、性能调查的五层工具链、配置陷阱与恢复边界。面向想读懂 PG 内核源码、在生产环境排查过问题、准备给 PG 贡献代码的工程师。

【分布式系统百科】Percolator 模型:Google 的乐观事务方案

Percolator 在 Bigtable 之上用三列设计实现了跨行分布式事务,其核心思路是把事务协调状态编码进数据本身,从而消除了对专用协调者节点的依赖。本文拆解其两阶段提交流程、冲突检测与锁清理机制,并分析 TiDB 对该模型的工程改进。

【MySQL InnoDB 内核】MVCC 与 Read View

用 MySQL 8.0.36 源码钉住 InnoDB 的 undo 式 MVCC:聚簇行上的 DB_TRX_ID / DB_ROLL_PTR、ReadView 的 m_up_limit_id / m_low_limit_id / m_ids、changes_visible 判定、RC 每语句关闭视图 vs RR 复用视图,以及沿 undo 链重建可见版本的路径。对照 PostgreSQL CLOG 方案,并给出 Docker 可复现实验步骤。

【PG 内核】MVCC 实现:CLOG、hint bit 与快照可扩展性

在已有 MVCC 文章基础上深入 PG 并发控制的三个基础设施:CLOG 的 SLRU 结构(事务状态位、页面格式、SLRU 淘汰)、hint bit 的写入时机和竞争问题(何时写、谁写、写坏了怎么办)、PG 14 snapshot scalability 优化的具体机制(ProcArrayLock 为什么是瓶颈、xid/xmin 的原子更新如何减少持锁路径),以及事务 ID 回卷(wraparound)的威胁模型。最后与 InnoDB undo log 方案做系统性对比。

【SQLite 内核】事务与隔离:DEFERRED/IMMEDIATE/EXCLUSIVE 与单写者快照

拆解 BEGIN DEFERRED/IMMEDIATE/EXCLUSIVE 三种模式的取锁时机差异,对照 Berenson et al. SIGMOD 1995 的隔离词汇与官方 Isolation In SQLite 文档;说明单写者约束下 WAL 快照为何天然回避 write skew,并用本机 3.53.2 实测三种 BEGIN 均可提交。

【TiKV / HTAP 内核】Percolator 乐观事务落地:prewrite、commit 与三 CF

拆解 TiKV 如何把 Percolator 论文的 data/lock/write 三列映射到 RocksDB 的 CF_DEFAULT/CF_LOCK/CF_WRITE,key 用 memcomparable + 位反转时间戳编码;说明 short value、Rollback 记录、Lock 类型 write 等论文之外的工程补丁,以及 Async Commit 如何压缩提交路径;对照 distributed/30 的论文模型与 rocksdb/14 的单机事务 API 分层。