Summary

本章中我们讨论了基于磁盘实现的 B-Tree 的特定的概念,如

  • Page header

    页的头部信息通常用来存储元数据

  • Rightmost pointers

    不与分隔键成对的指针,以及如何对其进行处理

  • High keys

    用来确认节点中能够存储的最大的 Key

  • Overflow pages

    溢出页让我们可以存储尺寸大于固定页大小的可变长度记录

在这些之后,我们还有一些关于从根下降到叶子节点的讨论

  • 如何使用间接指针来应用二分查找
  • 如何通过父节点指针或是导航信息来跟踪树的层级结构

最后,还讨论跟优化及维护相关的技术

  • Rebalancing

    移动相邻节点的元素来减少分裂跟合并的次数

  • Right-only appends

    在某些假设中,不进行分裂,而是将新 Cell 添加到页的最右侧能够快速的填充数据

  • Bulk loading

    一个使用将有序数据来高效构建 B-Tree 的技术。

  • Garbage collection

    处理页重写,将 Cell 变为以 Key 同序,跟回收不可用 Cell 的技术。

这些概念构建了基础的 B-Tree 算法与真实实现之间的桥梁,帮助我们更好的理解基于 B-Tree 的存储系统是如何工作的。

更多的阅读

如果你希望了解更多本章中所提及的概念,可以从下面引用的文献中了解更多信息

  • Disk-based B-Trees

    Graefe, Goetz. 2011. “Modern B-Tree Techniques.” Foundations and Trends in Databases 3, no. 4 (April): 203-402. https://doi.org/10.1561/1900000028.

    Healey, Christopher G. 2016. Disk-Based Algorithms for Big Data (1st Ed.). Boca Raton: CRC Press.