You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ji...@apache.org on 2019/01/20 02:59:34 UTC
[incubator-iotdb] branch delete_dev2 updated: fix tsfile
This is an automated email from the ASF dual-hosted git repository.
jiangtian pushed a commit to branch delete_dev2
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
The following commit(s) were added to refs/heads/delete_dev2 by this push:
new 1bf0ddf fix tsfile
1bf0ddf is described below
commit 1bf0ddf03bcb72db19194bd66dfa85320e4ef579
Author: 江天 <jt...@163.com>
AuthorDate: Sun Jan 20 10:58:56 2019 +0800
fix tsfile
---
.../tsfile/file/metadata/ChunkGroupMetaData.java | 19 ++++++++++++++++++-
.../iotdb/tsfile/write/writer/TsFileIOWriter.java | 10 ++++++----
2 files changed, 24 insertions(+), 5 deletions(-)
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/ChunkGroupMetaData.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/ChunkGroupMetaData.java
index 4521744..8aac6c0 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/ChunkGroupMetaData.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/ChunkGroupMetaData.java
@@ -26,6 +26,7 @@ import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+
import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -56,6 +57,8 @@ public class ChunkGroupMetaData {
chunkMetaDataList = new ArrayList<>();
}
+ private long version;
+
/**
* constructor of ChunkGroupMetaData.
*
@@ -83,6 +86,7 @@ public class ChunkGroupMetaData {
ChunkGroupMetaData chunkGroupMetaData = new ChunkGroupMetaData();
chunkGroupMetaData.deviceID = ReadWriteIOUtils.readString(inputStream);
+ chunkGroupMetaData.version = ReadWriteIOUtils.readLong(inputStream);
int size = ReadWriteIOUtils.readInt(inputStream);
chunkGroupMetaData.serializedSize =
@@ -111,6 +115,7 @@ public class ChunkGroupMetaData {
ChunkGroupMetaData chunkGroupMetaData = new ChunkGroupMetaData();
chunkGroupMetaData.deviceID = (ReadWriteIOUtils.readString(buffer));
+ chunkGroupMetaData.version = ReadWriteIOUtils.readLong(buffer);
int size = ReadWriteIOUtils.readInt(buffer);
@@ -133,7 +138,8 @@ public class ChunkGroupMetaData {
}
void reCalculateSerializedSize() {
- serializedSize = Integer.BYTES + deviceID.length() + Integer.BYTES; // size of chunkMetaDataList
+ serializedSize = Integer.BYTES + Long.BYTES +
+ deviceID.length() + Integer.BYTES; // size of chunkMetaDataList
for (ChunkMetaData chunk : chunkMetaDataList) {
serializedSize += chunk.getSerializedSize();
}
@@ -175,6 +181,7 @@ public class ChunkGroupMetaData {
public int serializeTo(OutputStream outputStream) throws IOException {
int byteLen = 0;
byteLen += ReadWriteIOUtils.write(deviceID, outputStream);
+ byteLen += ReadWriteIOUtils.write(version, outputStream);
byteLen += ReadWriteIOUtils.write(chunkMetaDataList.size(), outputStream);
for (ChunkMetaData chunkMetaData : chunkMetaDataList) {
@@ -195,6 +202,7 @@ public class ChunkGroupMetaData {
int byteLen = 0;
byteLen += ReadWriteIOUtils.write(deviceID, buffer);
+ byteLen += ReadWriteIOUtils.write(version, buffer);
byteLen += ReadWriteIOUtils.write(chunkMetaDataList.size(), buffer);
for (ChunkMetaData chunkMetaData : chunkMetaDataList) {
@@ -205,4 +213,13 @@ public class ChunkGroupMetaData {
return byteLen;
}
+
+ public long getVersion() {
+ return version;
+ }
+
+ public void setVersion(long version) {
+ this.version = version;
+ }
+
}
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 3d3e95f..5da1897 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
@@ -27,6 +27,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
+
import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
import org.apache.iotdb.tsfile.common.constant.StatisticConstant;
import org.apache.iotdb.tsfile.file.MetaMarker;
@@ -143,9 +144,9 @@ public class TsFileIOWriter {
* @throws IOException if I/O error occurs
*/
public int startFlushChunk(MeasurementSchema descriptor, CompressionType compressionCodecName,
- TSDataType tsDataType, TSEncoding encodingType, Statistics<?> statistics, long maxTime,
- long minTime,
- int datasize, int numOfPages) throws IOException {
+ TSDataType tsDataType, TSEncoding encodingType, Statistics<?> statistics, long maxTime,
+ long minTime,
+ int datasize, int numOfPages) throws IOException {
LOG.debug("start series chunk:{}, file position {}", descriptor, out.getPosition());
currentChunkMetaData = new ChunkMetaData(descriptor.getMeasurementId(), tsDataType,
@@ -192,8 +193,9 @@ public class TsFileIOWriter {
*
* @param chunkGroupFooter -use to serialize
*/
- public void endChunkGroup(ChunkGroupFooter chunkGroupFooter) throws IOException {
+ public void endChunkGroup(ChunkGroupFooter chunkGroupFooter, long version) throws IOException {
chunkGroupFooter.serializeTo(out.wrapAsStream());
+ currentChunkGroupMetaData.setVersion(version);
chunkGroupMetaDataList.add(currentChunkGroupMetaData);
LOG.debug("end chunk group:{}", currentChunkGroupMetaData);
currentChunkGroupMetaData = null;