Versions Compared

Key

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

...

  • 跨空间合并的文件选择
    • 跨空间合并则是针对该虚拟存储组下该时间分区下的所有乱序文件与其有Overlap的顺序文件都封装在一个合并任务里。

    • 具体判断是否有Overlap的方法是:

      • 遍历每个乱序文件里的每个ChunkGroup遍历每个乱序文件里的每个ChunkGroup,
        • 遍历每个候选顺序文件,获取unseqStartTime, unseqEndTime, seqStartTime, seqEndTime
          • 若unseqEndTime<seqStartTime && 该乱序文件没有一个overlapped顺序文件,则选中该顺序文件,后面没有overlap顺序文件.
          • 若该顺序文件isNotClosed,则选中该顺序文件,因为不知道它是否有重叠
          • 若unseqEndTime<=seqEndTime,则选中该顺序文件,后续没有overlap顺序文件
          • 若unseqStartTime<=seqEndTime,则选中该顺序文件,后续可能还有overlap顺序文件

...

      • select(isTight)方法   
        • 获取系统给合并任务的文件选择预设的时间阈值为30秒·       
        • 遍历每个乱序文件,且当选择文件的耗时还未超过系统预设值时
          • 当被选中待合并的顺序文件的数量 != 所有顺序文件的数量
            • selectOverLappedSeqFiles(unseqFile)选中与该乱序文件Overlap的顺序文件
          • 若该乱序文件或者与其Overlap的某一顺序文件未关闭或正在merging§  清空临时变量,遍历下个乱序文件
          • 计算合并此乱序文件与其对应Overlap的顺序文件列表可能会新增的内存开销
          • 若 合并此乱序文件与其对应Overlap的顺序文件列表可能会新增的内存开销加上原有的其他乱序文件进行合并的开销不会超过系统给合并线程预设的内存开销
            • 把选中的乱序文件和对应Overlap的顺序文件放入全局对象列表里
      • selectOverLappedSeqFiles(unseqFile)
        • 具体流程:将与该unseqFile乱序文件有Overlap的并且还未被此次合并任务文件选择器选中的顺序文件的索引放入tmpSelectedSeqFiles列表里。具体判断是否有Overlap方法:依次遍历获取乱序文件的每个设备ChunkGroup,判断所有还未被此次合并任务选中的顺序文件的该设备ChunkGroup是否有与乱序的ChunkGroup重叠,有的话则选中此顺序文件。
        • 具体判断是否有Overlap方法:
          • 遍历每个乱序文件里的每个ChunkGroup
            • 遍历每个候选顺序文件,获取unseqStartTime, unseqEndTime, seqStartTime, seqEndTime
              • 若unseqEndTime<seqStartTime && 该乱序文件没有一个overlapped顺序文件,则选中该顺序文件,后面没有overlap顺序文件.
              • 若该顺序文件isNotClosed,则选中该顺序文件,因为不知道它是否有重叠
              • 若unseqEndTime<=seqEndTime,则选中该顺序文件,后续没有overlap顺序文件
              • 若unseqStartTime<=seqEndTime,则选中该顺序文件,后续可能还有overlap顺序文件