...
StorageGroupProsessor → VirtualStorageGroupProsessor 虚拟存储组
每个虚拟存储组启动定时任务:
- 倒序遍历时间分区
- CompactionManager.doCompactionSchedule(TsFileManagement management,long 分区号)
合并任务管理器CompactionTaskManager
...
MaxSeriesMergeFileSelector
...
合并任务的恢复
在IOTDB-Server重启后,每个StorageGroup会执行顺序空间和乱序空间内的合并恢复和跨空间的合并恢复。
...
InitCompaction()方法:往合并任务管理器CompactionTaskManager的执行线程池taskExecutionPool里提交一个跨空间合并恢复线程CompactionRecoverTask并异步执行,执行完后就会回调submitTimedCompactionTask()方法定时执行以下操作:方法以定时执行合并任务。
合并任务的定时执行
当server启动后,每个虚拟存储组首先会执行顺序空间和乱序空间内的合并恢复和跨空间的合并恢复,执行完后就会回调submitTimedCompactionTask()方法以定时执行合并任务,具体操作如下:
(1) 从该虚拟存储组下的每个时间分区里依次使用合并任务调度器CompactionSchedule根据合并策略去选择一批批待合并文件,并为每批文件创建一个合并任务线程放进CompactionTaskManager里的线程等待队列里
(2) 从等待队列里获取一个合并线程并执行