Versions Compared

Key

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

...

  • hasSelected = false
  • 如果 currentTaskNum >= compaction_concurrent_thread
           || !enable_cross_space_compaction
    • return hasSelected;
  • 候选乱序文件 UF = []
  • 候选顺序文件 SF = []
  • hasSelected = false
  • for 乱序文件 u in  乱序文件链表 U
    • 临时选中顺序文件 TmpSF = [] 
    • for 顺序文件 s in 顺序文件链表 S
      • if isOverlap(u, s)
        • TmpSF.add(s)
    • if not (u 未关闭 || u 正在合并 || s in TmpSF 未关闭 || s in TmpSF 正在合并)
      • UF.add(u); SF.addAll(TmpSF);
      • if UF.size() < compaction_cross_space_max_select_unseq_file_num
        • continue
    • if UF.size()>0
      • 将 UF 和 SF 提交异步任务(跨空间合并执行流程), UF=[],SF=[], ++currentTaskNum, hasSelected=true
      • 如果 compaction_priority=balance, break;
  • return hasSelected


合并执行任务

空间内合并执行流程

...