Versions Compared

Key

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

乱序合并与delete操作的交互流程

乱序合并前

乱序合并开始即在当前存储组创建一个名为mergingModification的临时ModificationFile变量。


所有的delete操作都需要判断存储组中的mergingModification变量是否为null,乱序合并开始即在当前存储组创建一个名为mergingModification的临时ModificationFile变量

在此之后所有的delete操作都需要判断存储组中的mergingModification变量是否为null,如果不为null,则将此次delete操作写入mergingModification临时变量中如果不为null,则将此次delete操作写入mergingModification临时变量中,不再写入mods文件中;否则写入mods中。


乱序合并中

根据当前合并文件已经存在的mods文件过滤已经删除的数据。

根据当前合并文件已经存在的mods文件过滤已经删除的数据,因此,在乱序合并完后,原mods文件中记录的delete操作不再有用因此,在乱序合并完后,原mods文件中记录的delete操作不再有用。


乱序合并完

删除原mods文件对应数据的原mods文件。

删除原mods文件对应数据的原mods文件将mergingModification中的记录分别全部写入所有参与合并的顺序文件的mods文件中,

将mergingModification中的记录分别全部写入所有参与合并的顺序文件的mods文件中,以保证乱序合并过程中delete操作的有效性以保证乱序合并过程中delete操作的有效性。


顺序合并与delete操作的交互流程

顺序合并前

与乱序合并不同,顺序合并不创建mergingModification临时变量

...