You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2020/06/20 08:56:47 UTC

[incubator-iotdb] 01/01: change construct

This is an automated email from the ASF dual-hosted git repository.

qiaojialin pushed a commit to branch construct_timeseriesmetadata
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git

commit febe16fb882cddb3ae0b3e14d544b0f853943db6
Author: qiaojialin <64...@qq.com>
AuthorDate: Sat Jun 20 16:57:08 2020 +0800

    change construct
---
 .../tsfile/file/metadata/TimeseriesMetadata.java    | 21 +++++++++++++++------
 .../iotdb/tsfile/write/writer/TsFileIOWriter.java   | 14 ++++++--------
 2 files changed, 21 insertions(+), 14 deletions(-)

diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/TimeseriesMetadata.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/TimeseriesMetadata.java
index 4893563..754d48b 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/TimeseriesMetadata.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/TimeseriesMetadata.java
@@ -35,7 +35,7 @@ public class TimeseriesMetadata implements Accountable {
   private int chunkMetaDataListDataSize;
 
   private String measurementId;
-  private TSDataType tsDataType;
+  private TSDataType dataType;
 
   private Statistics<?> statistics;
 
@@ -49,11 +49,20 @@ public class TimeseriesMetadata implements Accountable {
   public TimeseriesMetadata() {
   }
 
+  public TimeseriesMetadata(long startOffsetOfChunkMetaDataList, int chunkMetaDataListDataSize,
+      String measurementId, TSDataType dataType, Statistics statistics) {
+    this.startOffsetOfChunkMetaDataList = startOffsetOfChunkMetaDataList;
+    this.chunkMetaDataListDataSize = chunkMetaDataListDataSize;
+    this.measurementId = measurementId;
+    this.dataType = dataType;
+    this.statistics = statistics;
+  }
+
   public TimeseriesMetadata(TimeseriesMetadata timeseriesMetadata) {
     this.startOffsetOfChunkMetaDataList = timeseriesMetadata.startOffsetOfChunkMetaDataList;
     this.chunkMetaDataListDataSize = timeseriesMetadata.chunkMetaDataListDataSize;
     this.measurementId = timeseriesMetadata.measurementId;
-    this.tsDataType = timeseriesMetadata.tsDataType;
+    this.dataType = timeseriesMetadata.dataType;
     this.statistics = timeseriesMetadata.statistics;
     this.modified = timeseriesMetadata.modified;
   }
@@ -64,7 +73,7 @@ public class TimeseriesMetadata implements Accountable {
     timeseriesMetaData.setTSDataType(ReadWriteIOUtils.readDataType(buffer));
     timeseriesMetaData.setOffsetOfChunkMetaDataList(ReadWriteIOUtils.readLong(buffer));
     timeseriesMetaData.setDataSizeOfChunkMetaDataList(ReadWriteIOUtils.readInt(buffer));
-    timeseriesMetaData.setStatistics(Statistics.deserialize(buffer, timeseriesMetaData.tsDataType));
+    timeseriesMetaData.setStatistics(Statistics.deserialize(buffer, timeseriesMetaData.dataType));
     return timeseriesMetaData;
   }
 
@@ -78,7 +87,7 @@ public class TimeseriesMetadata implements Accountable {
   public int serializeTo(OutputStream outputStream) throws IOException {
     int byteLen = 0;
     byteLen += ReadWriteIOUtils.write(measurementId, outputStream);
-    byteLen += ReadWriteIOUtils.write(tsDataType, outputStream);
+    byteLen += ReadWriteIOUtils.write(dataType, outputStream);
     byteLen += ReadWriteIOUtils.write(startOffsetOfChunkMetaDataList, outputStream);
     byteLen += ReadWriteIOUtils.write(chunkMetaDataListDataSize, outputStream);
     byteLen += statistics.serialize(outputStream);
@@ -110,11 +119,11 @@ public class TimeseriesMetadata implements Accountable {
   }
 
   public TSDataType getTSDataType() {
-    return tsDataType;
+    return dataType;
   }
 
   public void setTSDataType(TSDataType tsDataType) {
-    this.tsDataType = tsDataType;
+    this.dataType = tsDataType;
   }
 
   public Statistics getStatistics() {
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 31e1146..edbf006 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
@@ -291,24 +291,22 @@ public class TsFileIOWriter {
     for (Map.Entry<Path, List<ChunkMetadata>> entry : chunkMetadataListMap.entrySet()) {
       Path path = entry.getKey();
       String device = path.getDevice();
+
       // create TimeseriesMetaData
-      TimeseriesMetadata timeseriesMetaData = new TimeseriesMetadata();
-      timeseriesMetaData.setMeasurementId(path.getMeasurement());
       TSDataType dataType = entry.getValue().get(0).getDataType();
-      timeseriesMetaData.setTSDataType(dataType);
-      timeseriesMetaData.setOffsetOfChunkMetaDataList(out.getPosition());
-
+      long offsetOfChunkMetadataList = out.getPosition();
       Statistics seriesStatistics = Statistics.getStatsByType(dataType);
+
       int chunkMetadataListLength = 0;
       // flush chunkMetadataList one by one
       for (ChunkMetadata chunkMetadata : entry.getValue()) {
         chunkMetadataListLength += chunkMetadata.serializeTo(out.wrapAsStream());
         seriesStatistics.mergeStatistics(chunkMetadata.getStatistics());
       }
-      timeseriesMetaData.setStatistics(seriesStatistics);
-      timeseriesMetaData.setDataSizeOfChunkMetaDataList(chunkMetadataListLength);
+      TimeseriesMetadata timeseriesMetadata = new TimeseriesMetadata(offsetOfChunkMetadataList,
+          chunkMetadataListLength, path.getMeasurement(), dataType, seriesStatistics);
       deviceTimeseriesMetadataMap.computeIfAbsent(device, k -> new ArrayList<>())
-          .add(timeseriesMetaData);
+          .add(timeseriesMetadata);
     }
 
     // construct TsFileMetadata and return