This is an automated email from the ASF dual-hosted git repository. jackietien pushed a commit to branch TYQuery in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit bfa823bbbed5ae114a8074e3c97876330f8cc831 Author: JackieTien97 <[email protected]> AuthorDate: Fri Mar 12 11:13:22 2021 +0800 format code --- .../iotdb/db/engine/merge/task/MergeFileTask.java | 18 +++++++++--------- .../db/engine/storagegroup/TsFileResource.java | 3 ++- .../db/query/executor/fill/LastPointReader.java | 11 +++++++---- .../chunk/metadata/MemChunkMetadataLoader.java | 10 +++++----- .../org/apache/iotdb/db/utils/FileLoaderUtils.java | 3 ++- .../java/org/apache/iotdb/db/utils/QueryUtils.java | 2 +- .../db/writelog/recover/UnseqTsFileRecoverTest.java | 5 +++-- .../iotdb/tsfile/read/TsFileSequenceReader.java | 21 ++++++++++++--------- .../iotdb/tsfile/write/writer/TsFileIOWriter.java | 4 ++-- ...MeasurementChunkMetadataListMapIteratorTest.java | 7 ++++--- 10 files changed, 47 insertions(+), 37 deletions(-) diff --git a/server/src/main/java/org/apache/iotdb/db/engine/merge/task/MergeFileTask.java b/server/src/main/java/org/apache/iotdb/db/engine/merge/task/MergeFileTask.java index 1f60fa1..96364a8 100644 --- a/server/src/main/java/org/apache/iotdb/db/engine/merge/task/MergeFileTask.java +++ b/server/src/main/java/org/apache/iotdb/db/engine/merge/task/MergeFileTask.java @@ -174,16 +174,16 @@ class MergeFileTask { newFileWriter.close(); try (TsFileSequenceReader newFileReader = new TsFileSequenceReader(newFileWriter.getFile().getPath())) { - Map<String, List<IChunkMetadata>> chunkMetadataListInChunkGroups = + Map<String, List<ChunkMetadata>> chunkMetadataListInChunkGroups = newFileWriter.getDeviceChunkMetadataMap(); if (logger.isDebugEnabled()) { logger.debug( "{} find {} merged chunk groups", taskName, chunkMetadataListInChunkGroups.size()); } - for (Map.Entry<String, List<IChunkMetadata>> entry : + for (Map.Entry<String, List<ChunkMetadata>> entry : chunkMetadataListInChunkGroups.entrySet()) { String deviceId = entry.getKey(); - List<IChunkMetadata> chunkMetadataList = entry.getValue(); + List<ChunkMetadata> chunkMetadataList = entry.getValue(); writeMergedChunkGroup(chunkMetadataList, deviceId, newFileReader, oldFileWriter); if (Thread.interrupted()) { @@ -211,7 +211,7 @@ class MergeFileTask { private void updateStartTimeAndEndTime(TsFileResource seqFile, TsFileIOWriter fileWriter) { // TODO change to get one timeseries block each time - for (Entry<String, List<IChunkMetadata>> deviceChunkMetadataEntry : + for (Entry<String, List<ChunkMetadata>> deviceChunkMetadataEntry : fileWriter.getDeviceChunkMetadataMap().entrySet()) { String device = deviceChunkMetadataEntry.getKey(); for (IChunkMetadata chunkMetadata : deviceChunkMetadataEntry.getValue()) { @@ -264,16 +264,16 @@ class MergeFileTask { } private void writeMergedChunkGroup( - List<IChunkMetadata> chunkMetadataList, + List<ChunkMetadata> chunkMetadataList, String device, TsFileSequenceReader reader, TsFileIOWriter fileWriter) throws IOException { fileWriter.startChunkGroup(device); - for (IChunkMetadata chunkMetaData : chunkMetadataList) { - Chunk chunk = reader.readMemChunk((ChunkMetadata) chunkMetaData); - fileWriter.writeChunk(chunk, (ChunkMetadata) chunkMetaData); - context.incTotalPointWritten(((ChunkMetadata) chunkMetaData).getNumOfPoints()); + for (ChunkMetadata chunkMetaData : chunkMetadataList) { + Chunk chunk = reader.readMemChunk(chunkMetaData); + fileWriter.writeChunk(chunk, chunkMetaData); + context.incTotalPointWritten(chunkMetaData.getNumOfPoints()); } fileWriter.endChunkGroup(); } diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResource.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResource.java index 4447255..6d4f58b 100644 --- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResource.java +++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileResource.java @@ -33,6 +33,7 @@ import org.apache.iotdb.db.utils.FilePathUtils; import org.apache.iotdb.db.utils.TestOnly; import org.apache.iotdb.tsfile.common.constant.TsFileConstant; import org.apache.iotdb.tsfile.file.metadata.ChunkMetadata; +import org.apache.iotdb.tsfile.file.metadata.IChunkMetadata; import org.apache.iotdb.tsfile.file.metadata.TimeseriesMetadata; import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; import org.apache.iotdb.tsfile.file.metadata.statistics.Statistics; @@ -330,7 +331,7 @@ public class TsFileResource { return fsFactory.getFile(file + RESOURCE_SUFFIX).exists(); } - public List<ChunkMetadata> getChunkMetadataList() { + public List<IChunkMetadata> getChunkMetadataList() { return new ArrayList<>(chunkMetadataList); } diff --git a/server/src/main/java/org/apache/iotdb/db/query/executor/fill/LastPointReader.java b/server/src/main/java/org/apache/iotdb/db/query/executor/fill/LastPointReader.java index dada7da..49522f6 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/executor/fill/LastPointReader.java +++ b/server/src/main/java/org/apache/iotdb/db/query/executor/fill/LastPointReader.java @@ -24,6 +24,7 @@ import org.apache.iotdb.db.metadata.PartialPath; import org.apache.iotdb.db.query.context.QueryContext; import org.apache.iotdb.db.utils.FileLoaderUtils; import org.apache.iotdb.tsfile.file.metadata.ChunkMetadata; +import org.apache.iotdb.tsfile.file.metadata.IChunkMetadata; import org.apache.iotdb.tsfile.file.metadata.TimeseriesMetadata; import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; import org.apache.iotdb.tsfile.file.metadata.statistics.Statistics; @@ -113,9 +114,9 @@ public class LastPointReader { timeseriesMetadata.getStatistics().getLastValue(), dataType); } else { - List<ChunkMetadata> seqChunkMetadataList = timeseriesMetadata.loadChunkMetadataList(); + List<IChunkMetadata> seqChunkMetadataList = timeseriesMetadata.loadChunkMetadataList(); for (int i = seqChunkMetadataList.size() - 1; i >= 0; i--) { - lastPoint = getChunkLastPoint(seqChunkMetadataList.get(i)); + lastPoint = getChunkLastPoint((ChunkMetadata) seqChunkMetadataList.get(i)); // last point of this sequence chunk is valid, quit the loop if (lastPoint.getValue() != null) { return lastPoint; @@ -203,7 +204,7 @@ public class LastPointReader { return unseqTsFilesSet; } - private PriorityQueue<ChunkMetadata> sortUnseqChunkMetadatasByEndtime() throws IOException { + private PriorityQueue<ChunkMetadata> sortUnseqChunkMetadatasByEndtime() { PriorityQueue<ChunkMetadata> chunkMetadataList = new PriorityQueue<>( (o1, o2) -> { @@ -223,7 +224,9 @@ public class LastPointReader { }); for (TimeseriesMetadata timeseriesMetadata : unseqTimeseriesMetadataList) { if (timeseriesMetadata != null) { - chunkMetadataList.addAll(timeseriesMetadata.loadChunkMetadataList()); + for (IChunkMetadata chunkMetadata : timeseriesMetadata.getChunkMetadataList()) { + chunkMetadataList.add((ChunkMetadata) chunkMetadata); + } } } return chunkMetadataList; diff --git a/server/src/main/java/org/apache/iotdb/db/query/reader/chunk/metadata/MemChunkMetadataLoader.java b/server/src/main/java/org/apache/iotdb/db/query/reader/chunk/metadata/MemChunkMetadataLoader.java index 0d7b1d5..8a22d0b 100644 --- a/server/src/main/java/org/apache/iotdb/db/query/reader/chunk/metadata/MemChunkMetadataLoader.java +++ b/server/src/main/java/org/apache/iotdb/db/query/reader/chunk/metadata/MemChunkMetadataLoader.java @@ -22,8 +22,8 @@ import org.apache.iotdb.db.engine.querycontext.ReadOnlyMemChunk; import org.apache.iotdb.db.engine.storagegroup.TsFileResource; import org.apache.iotdb.db.metadata.PartialPath; import org.apache.iotdb.db.query.context.QueryContext; -import org.apache.iotdb.tsfile.file.metadata.ChunkMetadata; -import org.apache.iotdb.tsfile.file.metadata.TimeseriesMetadata; +import org.apache.iotdb.tsfile.file.metadata.IChunkMetadata; +import org.apache.iotdb.tsfile.file.metadata.ITimeSeriesMetadata; import org.apache.iotdb.tsfile.read.controller.IChunkMetadataLoader; import org.apache.iotdb.tsfile.read.filter.basic.Filter; @@ -45,8 +45,8 @@ public class MemChunkMetadataLoader implements IChunkMetadataLoader { } @Override - public List<ChunkMetadata> loadChunkMetadataList(TimeseriesMetadata timeseriesMetadata) { - List<ChunkMetadata> chunkMetadataList = resource.getChunkMetadataList(); + public List<IChunkMetadata> loadChunkMetadataList(ITimeSeriesMetadata timeseriesMetadata) { + List<IChunkMetadata> chunkMetadataList = resource.getChunkMetadataList(); DiskChunkMetadataLoader.setDiskChunkLoader(chunkMetadataList, resource, seriesPath, context); @@ -68,7 +68,7 @@ public class MemChunkMetadataLoader implements IChunkMetadataLoader { chunkMetaData.getStartTime(), chunkMetaData.getEndTime())) || chunkMetaData.getStartTime() > chunkMetaData.getEndTime()); - for (ChunkMetadata metadata : chunkMetadataList) { + for (IChunkMetadata metadata : chunkMetadataList) { metadata.setVersion(resource.getVersion()); } return chunkMetadataList; diff --git a/server/src/main/java/org/apache/iotdb/db/utils/FileLoaderUtils.java b/server/src/main/java/org/apache/iotdb/db/utils/FileLoaderUtils.java index 0a87b75..050de31 100644 --- a/server/src/main/java/org/apache/iotdb/db/utils/FileLoaderUtils.java +++ b/server/src/main/java/org/apache/iotdb/db/utils/FileLoaderUtils.java @@ -44,6 +44,7 @@ import org.apache.iotdb.tsfile.read.reader.chunk.ChunkReader; import org.apache.iotdb.tsfile.read.reader.chunk.VectorChunkReader; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import java.util.Map.Entry; import java.util.Set; @@ -184,6 +185,6 @@ public class FileLoaderUtils { public static List<IChunkMetadata> getChunkMetadataList(Path path, String filePath) throws IOException { TsFileSequenceReader tsFileReader = FileReaderManager.getInstance().get(filePath, true); - return tsFileReader.getChunkMetadataList(path); + return new ArrayList<>(tsFileReader.getChunkMetadataList(path)); } } diff --git a/server/src/main/java/org/apache/iotdb/db/utils/QueryUtils.java b/server/src/main/java/org/apache/iotdb/db/utils/QueryUtils.java index b958b93..4e07b2a 100644 --- a/server/src/main/java/org/apache/iotdb/db/utils/QueryUtils.java +++ b/server/src/main/java/org/apache/iotdb/db/utils/QueryUtils.java @@ -46,7 +46,7 @@ public class QueryUtils { */ @SuppressWarnings("squid:S3776") // Suppress high Cognitive Complexity warning public static void modifyChunkMetaData( - List<IChunkMetadata> chunkMetaData, List<Modification> modifications) { + List<? extends IChunkMetadata> chunkMetaData, List<Modification> modifications) { for (int metaIndex = 0; metaIndex < chunkMetaData.size(); metaIndex++) { IChunkMetadata metaData = chunkMetaData.get(metaIndex); for (Modification modification : modifications) { diff --git a/server/src/test/java/org/apache/iotdb/db/writelog/recover/UnseqTsFileRecoverTest.java b/server/src/test/java/org/apache/iotdb/db/writelog/recover/UnseqTsFileRecoverTest.java index 92dec08..77f7940 100644 --- a/server/src/test/java/org/apache/iotdb/db/writelog/recover/UnseqTsFileRecoverTest.java +++ b/server/src/test/java/org/apache/iotdb/db/writelog/recover/UnseqTsFileRecoverTest.java @@ -40,6 +40,7 @@ import org.apache.iotdb.db.writelog.node.WriteLogNode; import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor; import org.apache.iotdb.tsfile.exception.write.WriteProcessException; import org.apache.iotdb.tsfile.file.metadata.ChunkMetadata; +import org.apache.iotdb.tsfile.file.metadata.IChunkMetadata; import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType; import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding; import org.apache.iotdb.tsfile.read.TimeValuePair; @@ -258,8 +259,8 @@ public class UnseqTsFileRecoverTest { PriorityMergeReader unSeqMergeReader = new PriorityMergeReader(); int priorityValue = 1; - for (ChunkMetadata chunkMetaData : metadataQuerier.getChunkMetaDataList(path)) { - Chunk chunk = chunkLoader.loadChunk(chunkMetaData); + for (IChunkMetadata chunkMetaData : metadataQuerier.getChunkMetaDataList(path)) { + Chunk chunk = chunkLoader.loadChunk((ChunkMetadata) chunkMetaData); ChunkReader chunkReader = new ChunkReader(chunk, null); unSeqMergeReader.addReader(new ChunkDataIterator(chunkReader), priorityValue++); } diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java index 85a8144..a538f22 100644 --- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java +++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/TsFileSequenceReader.java @@ -1260,7 +1260,7 @@ public class TsFileSequenceReader implements AutoCloseable { return maxPlanIndex; } - public Iterator<Map<String, List<IChunkMetadata>>> getMeasurementChunkMetadataListMapIterator( + public Iterator<Map<String, List<ChunkMetadata>>> getMeasurementChunkMetadataListMapIterator( String device) throws IOException { readFileMetadata(); @@ -1269,7 +1269,7 @@ public class TsFileSequenceReader implements AutoCloseable { getMetadataAndEndOffset(metadataIndexNode, device, true, true); if (metadataIndexPair == null) { - return new Iterator<Map<String, List<IChunkMetadata>>>() { + return new Iterator<Map<String, List<ChunkMetadata>>>() { @Override public boolean hasNext() { @@ -1277,7 +1277,7 @@ public class TsFileSequenceReader implements AutoCloseable { } @Override - public Map<String, List<IChunkMetadata>> next() { + public Map<String, List<ChunkMetadata>> next() { throw new NoSuchElementException(); } }; @@ -1287,7 +1287,7 @@ public class TsFileSequenceReader implements AutoCloseable { ByteBuffer buffer = readData(metadataIndexPair.left.getOffset(), metadataIndexPair.right); collectEachLeafMeasurementNodeOffsetRange(buffer, queue); - return new Iterator<Map<String, List<IChunkMetadata>>>() { + return new Iterator<Map<String, List<ChunkMetadata>>>() { @Override public boolean hasNext() { @@ -1295,12 +1295,12 @@ public class TsFileSequenceReader implements AutoCloseable { } @Override - public Map<String, List<IChunkMetadata>> next() { + public Map<String, List<ChunkMetadata>> next() { if (!hasNext()) { throw new NoSuchElementException(); } Pair<Long, Long> startEndPair = queue.remove(); - Map<String, List<IChunkMetadata>> measurementChunkMetadataList = new HashMap<>(); + Map<String, List<ChunkMetadata>> measurementChunkMetadataList = new HashMap<>(); try { List<TimeseriesMetadata> timeseriesMetadataList = new ArrayList<>(); ByteBuffer nextBuffer = readData(startEndPair.left, startEndPair.right); @@ -1308,9 +1308,12 @@ public class TsFileSequenceReader implements AutoCloseable { timeseriesMetadataList.add(TimeseriesMetadata.deserializeFrom(nextBuffer, true)); } for (TimeseriesMetadata timeseriesMetadata : timeseriesMetadataList) { - measurementChunkMetadataList - .computeIfAbsent(timeseriesMetadata.getMeasurementId(), m -> new ArrayList<>()) - .addAll(timeseriesMetadata.getChunkMetadataList()); + List<ChunkMetadata> list = + measurementChunkMetadataList.computeIfAbsent( + timeseriesMetadata.getMeasurementId(), m -> new ArrayList<>()); + for (IChunkMetadata chunkMetadata : timeseriesMetadata.getChunkMetadataList()) { + list.add((ChunkMetadata) chunkMetadata); + } } return measurementChunkMetadataList; } catch (IOException e) { diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java index dd0cd4a..7c977a1 100644 --- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java +++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/writer/TsFileIOWriter.java @@ -342,8 +342,8 @@ public class TsFileIOWriter { } // device -> ChunkMetadataList - public Map<String, List<IChunkMetadata>> getDeviceChunkMetadataMap() { - Map<String, List<IChunkMetadata>> deviceChunkMetadataMap = new HashMap<>(); + public Map<String, List<ChunkMetadata>> getDeviceChunkMetadataMap() { + Map<String, List<ChunkMetadata>> deviceChunkMetadataMap = new HashMap<>(); for (ChunkGroupMetadata chunkGroupMetadata : chunkGroupMetadataList) { deviceChunkMetadataMap diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/MeasurementChunkMetadataListMapIteratorTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/MeasurementChunkMetadataListMapIteratorTest.java index e2d27aa..c7afdf2 100644 --- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/MeasurementChunkMetadataListMapIteratorTest.java +++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/MeasurementChunkMetadataListMapIteratorTest.java @@ -21,6 +21,7 @@ package org.apache.iotdb.tsfile.read; import org.apache.iotdb.tsfile.common.conf.TSFileConfig; import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor; +import org.apache.iotdb.tsfile.file.metadata.ChunkMetadata; import org.apache.iotdb.tsfile.file.metadata.IChunkMetadata; import org.apache.iotdb.tsfile.read.common.Path; import org.apache.iotdb.tsfile.utils.FileGenerator; @@ -121,11 +122,11 @@ public class MeasurementChunkMetadataListMapIteratorTest { expectedDeviceMeasurementChunkMetadataListMap.get(device); Map<String, List<IChunkMetadata>> actual = new HashMap<>(); - Iterator<Map<String, List<IChunkMetadata>>> iterator = + Iterator<Map<String, List<ChunkMetadata>>> iterator = fileReader.getMeasurementChunkMetadataListMapIterator(device); while (iterator.hasNext()) { - Map<String, List<IChunkMetadata>> next = iterator.next(); - for (Entry<String, List<IChunkMetadata>> entry : next.entrySet()) { + Map<String, List<ChunkMetadata>> next = iterator.next(); + for (Entry<String, List<ChunkMetadata>> entry : next.entrySet()) { actual.computeIfAbsent(entry.getKey(), m -> new ArrayList<>()).addAll(entry.getValue()); } }
