乱序合并与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临时变量
...