WiredTiger的reconciliation将内存页转为磁盘格式,触发于脏页驱逐和检查点。用户表保留最新已提交更新,旧版本写入History Store。行存储叶页按序遍历,依leaf_page_max和split_pct分裂为多页镜像。History Store页reconcile时移除全局可见墓碑。Eviction为腾缓存,Checkpoint为一致快照,两者分工明确。
本文介绍WiredTiger内核系列文章,涵盖MongoDB默认引擎的MVCC实现路径,包括Cache、Eviction、Reconciliation、History Store和Checkpoint等核心机制。系列共17篇,从Session/Cursor到选型对照,重点解析更新链、脏页驱逐、旧快照读取及崩溃恢复,并对比PG、InnoDB、RocksDB等引擎,为运维和架构师提供完整技术参考。
WiredTiger采用第三种MVCC方案:用户表B-Tree仅存最新已提交版本,旧版本存入全局History Store(WiredTigerHS.wt)。写路径通过reconciliation将旧版本写入HS,读路径按update chain→磁盘页→HS顺序查找。Durable History取代Lookaside,使历史可跨eviction/checkpoint持久查询,由minSnapshotHistoryWindowInSeconds控制保留窗口。与PostgreSQL堆版本、InnoDB undo相比,WT分离当前与历史,利于用户页驱逐,但增加历史I/O与磁盘开销。
前提 本篇文章中所有的Host Component均以DOMComponent为例。 Internal Instance更新 在之前我们建立了Internal Instance的mount和unmount方法用来处理Internal Instance的挂载和卸载。为了完成更新功能,我们需要建立一个叫receive的方法。 Composite Component更新 1 2 3 ...
完成下面两步后,将自动完成登录并继续当前操作。