空间内合并文件选择(SizeTieredCompactionSelector)

    • 新建临时候选任务队列 tempTaskQueue
    • 遍历所有 TsFileResource,获取当前 TsFileResource 的最高层级 maxSearchLevel
    • currentLevel 从 0 到 maxSearchLevel
      • 新建标志量 submitInCurrentLevel = false 
      • 临时文件列表 tempResourceList 
      • 遍历每一个 TsFileResource
        • 如果当前 tsFileResource 的层级为 currentLevel,并且 !isDeleted() && !isCompacting() && closed() && !isCompactionCandidate()
          • 将其加入到 tempResourceList 中
          • 如果 tempResourceList 的大小到达了目标数目或者其中所有文件体积之和超过了目标大小
            • 将其加入到 tempTaskQueue 中
            • 清空tempResourceList 
            • submitInCurrentLevel = true
      • 如果 submitInCurrentLevel == true
        • break
    • 从 tempTaskQueue 中逐一取出其中的任务
      • 将任务中的所有 tsFileResource 的 isCompactionCandidate 设置为 true
      • 将任务提交到全局的暂存队列中
  • No labels