Summary
在本章中,我们学习了二进制文件的组织:如果序列化基础的数据类型,将他们组合成 Cell,并用 Cell 来构建 Slotted Page 及在这些数据结构中进行导航。
我们还学到如何处理可变长度的数据类型,如字符串、字节序列跟数组,以及如何处理包含了这些可变长度数据的Cell。
我们讨论了 slotted page 分槽页的格式,他让我们可以在外部的页使用 Cell ID 来引用单独的 Cell,按照插入的顺序来保存数据,并按照 Key 的顺序来排序这些 Cell 的偏移量。
这些原则可以使用在大部分的基于磁盘的二进制格式跟网络协议中。
更多的阅读
如果你希望了解更多本章中所提及的概念,可以从下面引用的文献中了解更多信息
-
File organization techniques
Folk, Michael J., Greg Riccardi, and Bill Zoellick. 1997. File Structures: An Object- Oriented Approach with C++ (3rd Ed.). Boston: Addison-Wesley Longman.
Giampaolo, Dominic. 1998. Practical File System Design with the Be File System (1st Ed.). San Francisco: Morgan Kaufmann.
Vitter, Jeffrey Scott. 2008. “Algorithms and data structures for external memory.” Foundations and Trends in Theoretical Computer Science 2, no. 4 (January): 305-474. https://doi.org/10.1561/0400000014.