将上游的 SQLite B-Tree 代码改进纳入其中
作者: alexmiller-apple创建于 2019年10月14日更新于 2026年7月30日
`ssd` 存储引擎使用了多年前引入的 SQLite 的 btree 代码,因为它具有出色的可测试性。 多年过去了,上游发生了进一步的开发,我们从未将其包含到 FDB 中。 为了进一步复杂化这个问题,我们对 SQLite 代码进行了自己的改进,以添加校验和改进代码的清理行为。 我已经将我们的 btree.c 与最新版本进行了比较,看起来代码中有两个主要变化。 第一个看起来是为了允许页面缓存在多个进程之间共享,这对于我们没有任何好处。 第二个是更好地检测和处理损坏的 SQLite 数据库。 这优于我们在这里进行的修改,因为模拟只会损坏我们修改的内容,而有一些修改用于处理一些不变的内容(比如数据库中记录的页面大小)。
内容来源: apple/foundationdb