Versions Compared

Key

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

...

  1. 文件名以存储组名(full path)命名
  2. MTreeFile内部以该存储组节点为根节点


对于存储组层往上的前缀树,也使用一个MTreeFile进行管理。

  1. 该MTreeFile内部以全局MTree的root节点为根节点
  2. 该MTreeFile的存储StorageGroupMNode父节点以上的MNode
  3. StorageGroupMNode父节点在该文件中指向StorageGroupMNode的地址指针值为-1,标志子节点需至具体的存储组文件进行查询

2. 文件格式设计

2.1. 文件整体设计

文件整体采用定长记录的组织方式,即一个定长的Header+定长Node序列。Header中存储文件的描述性信息,Node中存储MNode的序列化信息。

...

  1. 将目标地址刷入磁盘buffer,并将其设置为正在使用且未完成数据准备状态
  2. 将所有已修改的MNode的数据写入磁盘buffer
  3. 将磁盘buffer更新为正在使用且数据准备完成状态
  4. 将磁盘buffer的数据写入MNode在MTreeFile的指定位置(覆盖原有数据)
  5. 将磁盘buffer更新为未使用状态


3.6.3. 重启恢复

重启时检查磁盘buffer状态单个MTreeFile重启时检查磁盘buffer状态

  1. 数据未准备好,则清空磁盘buffer,结束恢复
  2. 数据已准备好,重新将数据更新至文件中指定地址,清空buffer,结束恢复