【WiredTiger 内核】B-Tree 与 update chain:未提交更新只挂链
拆解 WiredTiger row-store B-Tree 的 WT_BTREE/WT_REF 结构,以及叶页上 WT_INSERT skiplist 与 WT_UPDATE 链如何承载插入与多版本;说明未提交更新不进磁盘镜像,为 Reconciliation 与 History Store 铺垫。
发布来自土法炼钢兴趣小组的知识、笔记、进展和应用。主题包括数据结构和算法、编程语言、网络安全、密码学等。
共 3 篇文章 · 返回首页
拆解 WiredTiger row-store B-Tree 的 WT_BTREE/WT_REF 结构,以及叶页上 WT_INSERT skiplist 与 WT_UPDATE 链如何承载插入与多版本;说明未提交更新不进磁盘镜像,为 Reconciliation 与 History Store 铺垫。
定位单文件嵌入式行存在服务器行存与 LSM 嵌入 KV 之间的生态位;钉住 SQLite 架构约束、站内分工与 17 篇阅读路线,并以 Bayer/McCreight、官方 file format、PVLDB 2022 为学术锚点。
一条典型的分析查询只访问表中数百列里的三四列,行式存储却把整行数据从磁盘搬进内存,绝大多数字节在读入后立刻被丢弃。列式存储(Columnar Storage)把同一列的值连续存放,查询只需要读取涉及到的列,I/O 量可以降低一到两个数量级。但 I/O 减少只是故事的一半——列式布局还为压缩、向量化执行(Vectoriz…