Versions Compared

Key

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

...

    1. 若两个任务一个是空间内合并,另一个是跨空间合并,且系统预设的合并优先级不是balance
      1. 若系统预设的合并执行优先级是inner_cross,则空间内合并的任务的优先级较高
      2. 若系统预设的合并执行优先级是cross_inner,则跨空间合并的任务的优先级较高
    2. 若两个任务都是空间内合并
      1. 若两个任务一个是顺序空间内合并,另一个是乱序空间内合并,则顺序空间内合并的任务的优先级较高
      2. 若两个任务的平均每个待合并文件的空间内合并次数不相等,则平均每个文件空间内合并次数低的任务的优先级较高若两个任务的平均每个待合并文件的空间内合并次数不相等,则平均每个文件空间内合并次数低的任务的优先级较高(因为这样可以减少写放大)

      3. 若两个任务的选中待合并文件的数量不同,则文件数量多的任务的优先级较高

      4. 若两个任务的待合并文件的总大小不同,则待合并文件总大小较小的任务的优先级较高若两个任务的待合并文件的总大小不同,则待合并文件总大小较小的任务的优先级较高(因为小文件的合并速度较快)

      5. 若两个任务的待合并文件的最大version不同,则较大version的任务的优先级高若两个任务的待合并文件的最大version不同,则较大version的任务的优先级高(因为我们想要优先合并最近落盘的文件)

    3. 若两个任务都是跨空间合并
      1. 若两个任务的待合并的顺序文件的数量不一样,则顺序文件数量较少的任务的优先级高若两个任务的待合并的顺序文件的数量不一样,则顺序文件数量较少的任务的优先级高(因为在合并过程中占用更少的内存)

      2. 乱序文件数量较多的任务的优先级较高乱序文件数量较多的任务的优先级较高(因为会减少更多的乱序文件)


合并任务调度器CompactionSchedule

...