THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
- 获取 SeqTsFileList和UnseqTsFileList 中的所有设备 deviceSet中的所有设备和传感器 deviceSensorsMap(Map<Device, List<Sensor>>)
- for device in deviceSet, sensors in deviceSensorsMap
- 为 sensors 构建一个 bitMap,记录是否被合并,默认全部为 false
- for seqFile in SeqTsFileList
- 新建一个临时 seqFile, 并建立 RestorableFileWriter writer
- 对于 seqFile 新建 ChunkMetadataListIterator
- 从 ChunkMetadataListIterator 中迭代获取该设备的 sensorList 及其对应的 List<ChunkMetadata> sensorChunkMetadataList(每次返回 max_degree_of_index_node 个 sensor),对于每一个迭代
- for sensor, sensorChunkMetadataList:
- 如果 sensorChunkMetadataList 不为空
- 根据 算法1 将该 sensor 的 Chunk 与对应的 unseqReader 中的数据进行合并
- 将该 sensor 在 bitMap 上的位置为 true
- 如果 sensorChunkMetadataList 不为空
- for sensor, sensorChunkMetadataList:
- 如果当前的 seqFile 是最后一个 seqFile:
- 将该 device 下在 bitMap 中记录未合并的 sensor 对应的 unseqReader 的数据写入这个 seqFile 的临时文件中
算法1
输入:sensor, sensorChunkMetadataList, unseqReader
...