背景

IoTDB 0.11 版本中 TsFile 命名规则为:文件生成时间-文件粒度版本号-层级.tsfile,如 1612144238260-1-0.tsfile

当文件进行层级合并后,层级会+1,1612144238260-1-1.tsfile。可以看出进行了层级合并。

但是当文件被乱序合并后,无法看出是否被合并,不利于排查文件出错是写入造成的还是乱序merge造成的,需要增加一位标记乱序合并次数。


新实现

新命名规则为:文件生成时间-文件粒度版本号-层级-乱序合并次数.tsfile,如顺序文件 1612144238260-1-0-0.tsfile

当此文件与乱序文件合并一次后,修改为:1612144238260-1-0-1.tsfile

又进行一次乱序合并后,变成:1612144238260-1-0-2.tsfile




  • No labels

2 Comments

  1. 我目前的理解:

    • 内存乱序数据flush到磁盘上的level 0层
    • 内存顺序数据flush到磁盘上的level 1层
    • level 0层内部采用tiered merge policy,对应着unseq space compaction
    • level 1→level N (N>1)层采用leveled merge policy,对应着seq space compaction
    • level 0层到level 1层采用leveled merge policy,对应着cross space compaction
  2. “文件粒度版本号”是什么?