未验证 提交 7c3d432f 编写于 作者: zhanglingzhe0820's avatar zhanglingzhe0820 提交者: GitHub

fix_unseq_compaction_loss_data_bug (#3256)

fix_unseq_compaction_loss_data_bug
上级 b303d332
......@@ -195,6 +195,16 @@ public class MergeMultiChunkTask {
mergeLogger.logTSEnd();
}
private String getMaxSensor(List<PartialPath> sensors) {
String maxSensor = sensors.get(0).getMeasurement();
for (int i = 1; i < sensors.size(); i++) {
if (maxSensor.compareTo(sensors.get(i).getMeasurement()) < 0) {
maxSensor = sensors.get(i).getMeasurement();
}
}
return maxSensor;
}
private void pathsMergeOneFile(int seqFileIdx, IPointReader[] unseqReaders) throws IOException {
TsFileResource currTsFile = resource.getSeqFiles().get(seqFileIdx);
String deviceId = currMergingPaths.get(0).getDevice();
......@@ -238,7 +248,7 @@ public class MergeMultiChunkTask {
return;
}
String lastSensor = currMergingPaths.get(currMergingPaths.size() - 1).getMeasurement();
String lastSensor = getMaxSensor(currMergingPaths);
String currSensor = null;
Map<String, List<ChunkMetadata>> measurementChunkMetadataListMap = new TreeMap<>();
// find all sensor to merge in order, if exceed, then break
......@@ -455,7 +465,6 @@ public class MergeMultiChunkTask {
IChunkWriter chunkWriter,
TsFileResource currFile)
throws IOException {
int unclosedChunkPoint = lastUnclosedChunkPoint;
boolean chunkModified =
(currMeta.getDeleteIntervalList() != null && !currMeta.getDeleteIntervalList().isEmpty());
......
......@@ -215,12 +215,15 @@ public class MergeTaskTest extends MergeTest {
null,
null,
true);
long count = 0L;
while (tsFilesReader.hasNextBatch()) {
BatchData batchData = tsFilesReader.nextBatch();
for (int i = 0; i < batchData.length(); i++) {
assertEquals(batchData.getTimeByIndex(i) + 20000.0, batchData.getDoubleByIndex(i), 0.001);
for (int t = 0; t < batchData.length(); t++) {
assertEquals(batchData.getTimeByIndex(t) + 20000.0, batchData.getDoubleByIndex(t), 0.001);
count++;
}
}
assertEquals(100, count);
tsFilesReader.close();
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册