我是一名Go开发人员,正在阅读一本名为《数据库内部结构》的书。作者广泛讨论了在非常低的级别(特别是在页面级别)使用内存。
当我尝试构建自己的数据库时,我浏览了Go文档和其他文章,以获取有关在此级别上使用内存的讨论,但是似乎没有任何内容讨论如何处理特定内存页面中的数据。
我的问题是:
可以去吗?
如果Go不能做到这一点,这是C或C++可以做的事情吗?
如果Go,C或C++都无法做到这一点,也许我不明白作者在页面级别使用内存是什么意思,我应该如何思考它?
如有必要,请让我知道需要添加到问题中的任何进一步细节。
本书摘录
上下文是我们正在谈论实现B树和在页面中分组节点。这可以在第 2 章标题为“磁盘结构”的一节中找到。
PAGED 二叉树 通过将节点分组到页面中来布置二叉树,如图 2-6 所示,改善了局部性的情况。要查找下一个节点,只需在已提取的页面中跟随指针即可。但是,节点和它们之间的指针仍然会产生一些开销。将结构布置在磁盘上并进一步维护是非平凡的工作,特别是如果键和值没有按随机顺序预先排序和添加。平衡需要页面重组,这反过来又会导致指针更新。
它还提供了以下图像:
慕婉清6462132
收到一只叮咚
相关分类