You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2020/06/29 05:38:08 UTC
[incubator-iotdb] branch hot_compaction updated: fix vm file merge
bug
This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch hot_compaction
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
The following commit(s) were added to refs/heads/hot_compaction by this push:
new 9934b36 fix vm file merge bug
new 5b94dc2 Merge pull request #1432 from zhanglingzhe0820/fix_vm_merge_bug
9934b36 is described below
commit 9934b3605d635211d302f573cc0ce9af2c4a9810
Author: 张凌哲 <zh...@bytedance.com>
AuthorDate: Mon Jun 29 11:43:21 2020 +0800
fix vm file merge bug
---
.../main/java/org/apache/iotdb/db/engine/flush/VmMergeTask.java | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/flush/VmMergeTask.java b/server/src/main/java/org/apache/iotdb/db/engine/flush/VmMergeTask.java
index d03bdca..3b333e1 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/flush/VmMergeTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/flush/VmMergeTask.java
@@ -28,6 +28,7 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
+import java.util.TreeMap;
import org.apache.iotdb.tsfile.file.metadata.ChunkMetadata;
import org.apache.iotdb.tsfile.read.TimeValuePair;
import org.apache.iotdb.tsfile.read.TsFileSequenceReader;
@@ -98,7 +99,7 @@ public class VmMergeTask {
for (String measurementId : deviceMeasurementMap.get(deviceId).keySet()) {
MeasurementSchema measurementSchema = deviceMeasurementMap.get(deviceId)
.get(measurementId);
- List<TimeValuePair> timeValuePairs = new ArrayList<>();
+ Map<Long, TimeValuePair> timeValuePairMap = new TreeMap<>();
for (RestorableTsFileIOWriter vmWriter : vmWriters) {
TsFileSequenceReader reader = tsFileSequenceReaderMap
.computeIfAbsent(vmWriter.getFile().getAbsolutePath(),
@@ -127,15 +128,15 @@ public class VmMergeTask {
IPointReader iPointReader = new BatchDataIterator(
chunkReader.nextPageData());
while (iPointReader.hasNextTimeValuePair()) {
- timeValuePairs.add(iPointReader.nextTimeValuePair());
+ TimeValuePair timeValuePair = iPointReader.nextTimeValuePair();
+ timeValuePairMap.put(timeValuePair.getTimestamp(), timeValuePair);
}
}
}
}
- timeValuePairs.sort((o1, o2) -> (int) (o1.getTimestamp() - o2.getTimestamp()));
IChunkWriter chunkWriter = new ChunkWriterImpl(
deviceMeasurementMap.get(deviceId).get(measurementId));
- for (TimeValuePair timeValuePair : timeValuePairs) {
+ for (TimeValuePair timeValuePair : timeValuePairMap.values()) {
writeTimeValuePair(timeValuePair, chunkWriter);
}
chunkWriter.writeToFileWriter(writer);