选择过程
从新生成的顺序文件开始选择,对于每一个顺序文件
按版本顺序从老到新找到和该顺序文件重叠的所有乱序文件(不超过compaction_cross_space_max_select_unseq_file_num),如果没有乱序文件与之重叠,则跳过该顺序文件
当选中的顺序文件超过compaction_cross_space_max_select_seq_file_num,则将选中的顺序文件和乱序文件提交任务
执行过程
将这些文件进行跨文件空间的合并
正序遍历提交的顺序文件,对于每一个顺序文件
将其于相应的乱序文件中有重叠的部分进行合并并写入原顺序文件,保留整个乱序文件,并通过增加 .mods 文件以及修改 TsFileResource 来标记已经合并的部分
碎文件清理
设计一个碎文件清理任务,将没有与任何顺序文件发生重叠的乱序文件填充到顺序空间中