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