Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

创建tmp文件,作为磁盘buffer,记录目标地址和写入数据。


3.6.1. 磁盘buffer的格式设计

逻辑上一个磁盘buffer应具备如下三个状态:

  1. 未被使用:此时的重启恢复无需处理磁盘buffer,也证明文件处于完整可用的状态
  2. 正在准备数据:此时重启恢复需要清空磁盘buffer,新数据仍未写入文件,抛弃该次写入操作
  3. 完成数据准备,正在执行数据迁移:此时重启恢复需要重做数据迁移,直接覆盖目标地址空间


因此磁盘buffer的格式可有如下的初步设计:

  1. 标记位,是否已正在被使用
  2. 标记位,是否已完成buffer数据的准备
  3. 目标地址
  4. 待刷盘数据,以链表为粒度一次性准备好

...