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/12/02 08:04:28 UTC
[iotdb] 04/11: next is to delete Edian type
This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch NewTsFile
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 6b8a0608187ca96c8a8df481cbcd836c32f7a3c2
Author: JackieTien97 <Ja...@foxmail.com>
AuthorDate: Thu Nov 26 09:50:13 2020 +0800
next is to delete Edian type
---
.../apache/iotdb/tsfile/TsFileSequenceRead.java | 5 ++-
.../apache/iotdb/db/tools/TsFileSketchTool.java | 11 +------
.../tsfile/encoding/encoder/PlainEncoder.java | 1 +
.../file/{footer => header}/ChunkGroupHeader.java | 2 +-
.../iotdb/tsfile/file/header/package-info.java | 30 ------------------
.../iotdb/tsfile/file/metadata/ChunkMetadata.java | 22 +++++++------
.../tsfile/file/metadata/TimeseriesMetadata.java | 23 ++++++++++++--
.../tsfile/file/metadata/enums/TSEncoding.java | 36 ----------------------
.../iotdb/tsfile/read/TsFileSequenceReader.java | 9 ++----
.../tsfile/write/schema/MeasurementSchema.java | 2 +-
.../iotdb/tsfile/write/writer/TsFileIOWriter.java | 22 +++++++------
.../tsfile/read/TsFileSequenceReaderTest.java | 5 ++-
.../iotdb/tsfile/write/TsFileIOWriterTest.java | 19 ++++++------
13 files changed, 66 insertions(+), 121 deletions(-)
diff --git a/example/tsfile/src/main/java/org/apache/iotdb/tsfile/TsFileSequenceRead.java b/example/tsfile/src/main/java/org/apache/iotdb/tsfile/TsFileSequenceRead.java
index 818ac3b..f837b4b 100644
--- a/example/tsfile/src/main/java/org/apache/iotdb/tsfile/TsFileSequenceRead.java
+++ b/example/tsfile/src/main/java/org/apache/iotdb/tsfile/TsFileSequenceRead.java
@@ -26,7 +26,7 @@ import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
import org.apache.iotdb.tsfile.encoding.decoder.Decoder;
import org.apache.iotdb.tsfile.file.MetaMarker;
-import org.apache.iotdb.tsfile.file.footer.ChunkGroupHeader;
+import org.apache.iotdb.tsfile.file.header.ChunkGroupHeader;
import org.apache.iotdb.tsfile.file.header.ChunkHeader;
import org.apache.iotdb.tsfile.file.header.PageHeader;
import org.apache.iotdb.tsfile.file.metadata.ChunkMetadata;
@@ -55,8 +55,7 @@ public class TsFileSequenceRead {
// first SeriesChunks (headers and data) in one ChunkGroup, then the CHUNK_GROUP_FOOTER
// Because we do not know how many chunks a ChunkGroup may have, we should read one byte (the marker) ahead and
// judge accordingly.
- reader.position((long) TSFileConfig.MAGIC_STRING.getBytes().length + TSFileConfig.VERSION_NUMBER_V2
- .getBytes().length);
+ reader.position((long) TSFileConfig.MAGIC_STRING.getBytes().length + 1);
System.out.println("[Chunk Group]");
System.out.println("position: " + reader.position());
byte marker;
diff --git a/server/src/main/java/org/apache/iotdb/db/tools/TsFileSketchTool.java b/server/src/main/java/org/apache/iotdb/db/tools/TsFileSketchTool.java
index ca1b26c..779fb56 100644
--- a/server/src/main/java/org/apache/iotdb/db/tools/TsFileSketchTool.java
+++ b/server/src/main/java/org/apache/iotdb/db/tools/TsFileSketchTool.java
@@ -28,7 +28,7 @@ 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.file.footer.ChunkGroupHeader;
+import org.apache.iotdb.tsfile.file.header.ChunkGroupHeader;
import org.apache.iotdb.tsfile.file.metadata.ChunkGroupMetadata;
import org.apache.iotdb.tsfile.file.metadata.ChunkMetadata;
import org.apache.iotdb.tsfile.file.metadata.MetadataIndexEntry;
@@ -109,10 +109,6 @@ public class TsFileSketchTool {
printlnBoth(pw, String.format("%20s", "") + "|\t\t[marker] 0");
printlnBoth(pw,
String.format("%20s", "") + "|\t\t[deviceID] " + chunkGroupHeader.getDeviceID());
- printlnBoth(pw,
- String.format("%20s", "") + "|\t\t[dataSize] " + chunkGroupHeader.getDataSize());
- printlnBoth(pw, String.format("%20s", "") + "|\t\t[num of chunks] " + chunkGroupHeader
- .getNumberOfChunks());
printlnBoth(pw, str1.toString() + "\t[Chunk Group] of "
+ chunkGroupMetadata.getDevice() + " ends");
// versionInfo begins if there is a versionInfo
@@ -166,11 +162,6 @@ public class TsFileSketchTool {
printlnBoth(pw,
String.format("%20s", "") + "|\t\t" + tsFileMetaData.getMetadataIndex().getChildren()
.size() + " key&TsMetadataIndex");
- printlnBoth(pw,
- String.format("%20s", "") + "|\t\t[totalChunkNum] " + tsFileMetaData.getTotalChunkNum());
- printlnBoth(pw,
- String.format("%20s", "") + "|\t\t[invalidChunkNum] " + tsFileMetaData
- .getInvalidChunkNum());
// bloom filter
BloomFilter bloomFilter = tsFileMetaData.getBloomFilter();
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/encoding/encoder/PlainEncoder.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/encoding/encoder/PlainEncoder.java
index d98d9c2..d30bcc8 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/encoding/encoder/PlainEncoder.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/encoding/encoder/PlainEncoder.java
@@ -23,6 +23,7 @@ import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.math.BigDecimal;
+import org.apache.iotdb.tsfile.utils.ReadWriteForEncodingUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/footer/ChunkGroupHeader.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/header/ChunkGroupHeader.java
similarity index 98%
rename from tsfile/src/main/java/org/apache/iotdb/tsfile/file/footer/ChunkGroupHeader.java
rename to tsfile/src/main/java/org/apache/iotdb/tsfile/file/header/ChunkGroupHeader.java
index 66afbd8..4b0a424 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/footer/ChunkGroupHeader.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/header/ChunkGroupHeader.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.iotdb.tsfile.file.footer;
+package org.apache.iotdb.tsfile.file.header;
import java.io.IOException;
import java.io.InputStream;
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/header/package-info.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/header/package-info.java
deleted file mode 100644
index 9c1701a..0000000
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/header/package-info.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.tsfile.file.header;
-
-/**
- * CHUNK_GROUP_FOOTER and CHUNK_HEADER are used for parsing file.
- *
- * ChunkGroupMetadata and ChunkMetadata are used for locating the positions of
- * ChunkGroup (footer) and chunk (header),filtering data quickly, and thereby
- * they have statistics information.
- *
- * However, because Page has only the header structure, therefore, PageHeader
- * has the both two functions.
- */
\ No newline at end of file
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/ChunkMetadata.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/ChunkMetadata.java
index 6f494b3..083c9e1 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/ChunkMetadata.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/ChunkMetadata.java
@@ -142,10 +142,12 @@ public class ChunkMetadata implements Accountable {
* @return length
* @throws IOException IOException
*/
- public int serializeTo(OutputStream outputStream) throws IOException {
+ public int serializeTo(OutputStream outputStream, boolean serializeStatistic) throws IOException {
int byteLen = 0;
byteLen += ReadWriteIOUtils.write(offsetOfChunkHeader, outputStream);
- byteLen += statistics.serialize(outputStream);
+ if (serializeStatistic) {
+ byteLen += statistics.serialize(outputStream);
+ }
return byteLen;
}
@@ -153,19 +155,19 @@ public class ChunkMetadata implements Accountable {
* deserialize from ByteBuffer.
*
* @param buffer ByteBuffer
- * @param measurementUid measurementUid of this chunk metadata
- * @param tsDataType data type of this chunk metadata
* @return ChunkMetaData object
*/
- public static ChunkMetadata deserializeFrom(ByteBuffer buffer, String measurementUid,
- TSDataType tsDataType) {
+ public static ChunkMetadata deserializeFrom(ByteBuffer buffer, TimeseriesMetadata timeseriesMetadata) {
ChunkMetadata chunkMetaData = new ChunkMetadata();
- chunkMetaData.measurementUid = measurementUid;
- chunkMetaData.tsDataType = tsDataType;
+ chunkMetaData.measurementUid = timeseriesMetadata.getMeasurementId();
+ chunkMetaData.tsDataType = timeseriesMetadata.getTSDataType();
chunkMetaData.offsetOfChunkHeader = ReadWriteIOUtils.readLong(buffer);
- chunkMetaData.statistics = Statistics.deserialize(buffer, chunkMetaData.tsDataType);
-
+ if (timeseriesMetadata.getTimeSeriesMetadataType() != 0) {
+ chunkMetaData.statistics = Statistics.deserialize(buffer, chunkMetaData.tsDataType);
+ } else {
+ chunkMetaData.statistics = timeseriesMetadata.getStatistics();
+ }
return chunkMetaData;
}
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 6188e1d..99b89e0 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
@@ -32,6 +32,12 @@ import org.apache.iotdb.tsfile.utils.ReadWriteIOUtils;
public class TimeseriesMetadata implements Accountable {
+ /**
+ * 0 means this time series has only one chunk, no need to save the statistic again in chunk metadata
+ * 1 means this time series has more than one chunk, should save the statistic again in chunk metadata
+ */
+ private byte timeSeriesMetadataType;
+
private long startOffsetOfChunkMetaDataList;
private int chunkMetaDataListDataSize;
@@ -53,8 +59,10 @@ public class TimeseriesMetadata implements Accountable {
public TimeseriesMetadata() {
}
- public TimeseriesMetadata(long startOffsetOfChunkMetaDataList, int chunkMetaDataListDataSize,
- String measurementId, TSDataType dataType, Statistics statistics) {
+ public TimeseriesMetadata(byte timeSeriesMetadataType, long startOffsetOfChunkMetaDataList,
+ int chunkMetaDataListDataSize, String measurementId, TSDataType dataType,
+ Statistics statistics) {
+ this.timeSeriesMetadataType = timeSeriesMetadataType;
this.startOffsetOfChunkMetaDataList = startOffsetOfChunkMetaDataList;
this.chunkMetaDataListDataSize = chunkMetaDataListDataSize;
this.measurementId = measurementId;
@@ -63,6 +71,7 @@ public class TimeseriesMetadata implements Accountable {
}
public TimeseriesMetadata(TimeseriesMetadata timeseriesMetadata) {
+ this.timeSeriesMetadataType = timeseriesMetadata.timeSeriesMetadataType;
this.startOffsetOfChunkMetaDataList = timeseriesMetadata.startOffsetOfChunkMetaDataList;
this.chunkMetaDataListDataSize = timeseriesMetadata.chunkMetaDataListDataSize;
this.measurementId = timeseriesMetadata.measurementId;
@@ -73,6 +82,7 @@ public class TimeseriesMetadata implements Accountable {
public static TimeseriesMetadata deserializeFrom(ByteBuffer buffer) {
TimeseriesMetadata timeseriesMetaData = new TimeseriesMetadata();
+ timeseriesMetaData.setTimeSeriesMetadataType(ReadWriteIOUtils.readByte(buffer));
timeseriesMetaData.setMeasurementId(ReadWriteIOUtils.readString(buffer));
timeseriesMetaData.setTSDataType(ReadWriteIOUtils.readDataType(buffer));
timeseriesMetaData.setOffsetOfChunkMetaDataList(ReadWriteIOUtils.readLong(buffer));
@@ -91,6 +101,7 @@ public class TimeseriesMetadata implements Accountable {
*/
public int serializeTo(OutputStream outputStream) throws IOException {
int byteLen = 0;
+ byteLen += ReadWriteIOUtils.write(timeSeriesMetadataType, outputStream);
byteLen += ReadWriteIOUtils.write(measurementId, outputStream);
byteLen += ReadWriteIOUtils.write(dataType, outputStream);
byteLen += ReadWriteIOUtils.write(startOffsetOfChunkMetaDataList, outputStream);
@@ -100,6 +111,14 @@ public class TimeseriesMetadata implements Accountable {
return byteLen;
}
+ public byte getTimeSeriesMetadataType() {
+ return timeSeriesMetadataType;
+ }
+
+ public void setTimeSeriesMetadataType(byte timeSeriesMetadataType) {
+ this.timeSeriesMetadataType = timeSeriesMetadataType;
+ }
+
public long getOffsetOfChunkMetaDataList() {
return startOffsetOfChunkMetaDataList;
}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/enums/TSEncoding.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/enums/TSEncoding.java
index 9232fb9..0d2a5ea 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/enums/TSEncoding.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/enums/TSEncoding.java
@@ -54,42 +54,6 @@ public enum TSEncoding {
}
}
- private static TSEncoding getTsEncoding(byte encoding) {
- if (encoding < 0 || 8 < encoding) {
- throw new IllegalArgumentException("Invalid input: " + encoding);
- }
- switch (encoding) {
- case 1:
- return PLAIN_DICTIONARY;
- case 2:
- return RLE;
- case 3:
- return DIFF;
- case 4:
- return TS_2DIFF;
- case 5:
- return BITMAP;
- case 6:
- return GORILLA_V1;
- case 7:
- return REGULAR;
- case 8:
- return GORILLA;
- default:
- return PLAIN;
- }
- }
-
- /**
- * give an byte to return a encoding type.
- *
- * @param encoding byte number
- * @return encoding type
- */
- public static TSEncoding byteToEnum(byte encoding) {
- return getTsEncoding(encoding);
- }
-
public static int getSerializedSize() {
return Byte.BYTES;
}
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 16e2b71..fd3e50a 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
@@ -39,7 +39,7 @@ import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
import org.apache.iotdb.tsfile.compress.IUnCompressor;
import org.apache.iotdb.tsfile.file.MetaMarker;
-import org.apache.iotdb.tsfile.file.footer.ChunkGroupHeader;
+import org.apache.iotdb.tsfile.file.header.ChunkGroupHeader;
import org.apache.iotdb.tsfile.file.header.ChunkHeader;
import org.apache.iotdb.tsfile.file.header.PageHeader;
import org.apache.iotdb.tsfile.file.metadata.ChunkGroupMetadata;
@@ -513,8 +513,7 @@ public class TsFileSequenceReader implements AutoCloseable {
curSize += timeseriesMetadataMap.get(index).getDataSizeOfChunkMetaDataList();
}
ChunkMetadata chunkMetadata = ChunkMetadata
- .deserializeFrom(buffer, timeseriesMetadataMap.get(index).getMeasurementId(),
- timeseriesMetadataMap.get(index).getTSDataType());
+ .deserializeFrom(buffer, timeseriesMetadataMap.get(index));
seriesMetadata.computeIfAbsent(chunkMetadata.getMeasurementUid(), key -> new ArrayList<>())
.add(chunkMetadata);
}
@@ -1041,9 +1040,7 @@ public class TsFileSequenceReader implements AutoCloseable {
ByteBuffer buffer = readData(startOffsetOfChunkMetadataList, dataSizeOfChunkMetadataList);
while (buffer.hasRemaining()) {
- chunkMetadataList.add(ChunkMetadata
- .deserializeFrom(buffer, timeseriesMetaData.getMeasurementId(),
- timeseriesMetaData.getTSDataType()));
+ chunkMetadataList.add(ChunkMetadata.deserializeFrom(buffer, timeseriesMetaData));
}
VersionUtils.applyVersion(chunkMetadataList, versionInfo);
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/MeasurementSchema.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/MeasurementSchema.java
index 4ec4a23..18127d2 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/MeasurementSchema.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/write/schema/MeasurementSchema.java
@@ -174,7 +174,7 @@ public class MeasurementSchema implements Comparable<MeasurementSchema>, Seriali
}
public TSEncoding getEncodingType() {
- return TSEncoding.byteToEnum(encoding);
+ return TSEncoding.deserialize(encoding);
}
public TSDataType getType() {
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 3c83308..c7eefe0 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
@@ -30,7 +30,7 @@ import java.util.TreeMap;
import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
import org.apache.iotdb.tsfile.file.MetaMarker;
-import org.apache.iotdb.tsfile.file.footer.ChunkGroupHeader;
+import org.apache.iotdb.tsfile.file.header.ChunkGroupHeader;
import org.apache.iotdb.tsfile.file.header.ChunkHeader;
import org.apache.iotdb.tsfile.file.metadata.ChunkGroupMetadata;
import org.apache.iotdb.tsfile.file.metadata.ChunkMetadata;
@@ -84,7 +84,7 @@ public class TsFileIOWriter {
private long markedPosition;
private String currentChunkGroupDeviceId;
protected List<Pair<Long, Long>> versionInfo = new ArrayList<>();
-
+
// for upgrade tool
Map<String, List<TimeseriesMetadata>> deviceTimeseriesMetadataMap;
@@ -153,7 +153,8 @@ public class TsFileIOWriter {
if (currentChunkGroupDeviceId == null || chunkMetadataList.isEmpty()) {
return;
}
- chunkGroupMetadataList.add(new ChunkGroupMetadata(currentChunkGroupDeviceId, chunkMetadataList));
+ chunkGroupMetadataList
+ .add(new ChunkGroupMetadata(currentChunkGroupDeviceId, chunkMetadataList));
currentChunkGroupDeviceId = null;
chunkMetadataList = null;
out.flush();
@@ -162,11 +163,11 @@ public class TsFileIOWriter {
/**
* start a {@linkplain ChunkMetadata ChunkMetaData}.
*
- * @param measurementSchema - schema of this time series
+ * @param measurementSchema - schema of this time series
* @param compressionCodecName - compression name of this time series
- * @param tsDataType - data type
- * @param statistics - Chunk statistics
- * @param dataSize - the serialized size of all pages
+ * @param tsDataType - data type
+ * @param statistics - Chunk statistics
+ * @param dataSize - the serialized size of all pages
* @throws IOException if I/O error occurs
*/
public void startFlushChunk(MeasurementSchema measurementSchema,
@@ -285,15 +286,18 @@ public class TsFileIOWriter {
Statistics seriesStatistics = Statistics.getStatsByType(dataType);
int chunkMetadataListLength = 0;
+ boolean serializeStatistic = (entry.getValue().size() > 1);
// flush chunkMetadataList one by one
for (ChunkMetadata chunkMetadata : entry.getValue()) {
if (!chunkMetadata.getDataType().equals(dataType)) {
continue;
}
- chunkMetadataListLength += chunkMetadata.serializeTo(out.wrapAsStream());
+ chunkMetadataListLength += chunkMetadata
+ .serializeTo(out.wrapAsStream(), serializeStatistic);
seriesStatistics.mergeStatistics(chunkMetadata.getStatistics());
}
- TimeseriesMetadata timeseriesMetadata = new TimeseriesMetadata(offsetOfChunkMetadataList,
+ TimeseriesMetadata timeseriesMetadata = new TimeseriesMetadata(
+ serializeStatistic ? (byte) 1 : (byte) 0, offsetOfChunkMetadataList,
chunkMetadataListLength, path.getMeasurement(), dataType, seriesStatistics);
deviceTimeseriesMetadataMap.computeIfAbsent(device, k -> new ArrayList<>())
.add(timeseriesMetadata);
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TsFileSequenceReaderTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TsFileSequenceReaderTest.java
index 97a7a33..bb86168 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TsFileSequenceReaderTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/TsFileSequenceReaderTest.java
@@ -30,7 +30,7 @@ import java.util.Set;
import java.util.stream.Collectors;
import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
import org.apache.iotdb.tsfile.file.MetaMarker;
-import org.apache.iotdb.tsfile.file.footer.ChunkGroupHeader;
+import org.apache.iotdb.tsfile.file.header.ChunkGroupHeader;
import org.apache.iotdb.tsfile.file.header.ChunkHeader;
import org.apache.iotdb.tsfile.file.header.PageHeader;
import org.apache.iotdb.tsfile.file.metadata.ChunkMetadata;
@@ -64,8 +64,7 @@ public class TsFileSequenceReaderTest {
@Test
public void testReadTsFileSequently() throws IOException {
TsFileSequenceReader reader = new TsFileSequenceReader(FILE_PATH);
- reader.position(TSFileConfig.MAGIC_STRING.getBytes().length + TSFileConfig.VERSION_NUMBER_V2
- .getBytes().length);
+ reader.position(TSFileConfig.MAGIC_STRING.getBytes().length + 1);
Map<String, List<Pair<Long, Long>>> deviceChunkGroupMetadataOffsets = new HashMap<>();
long startOffset = reader.position();
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/TsFileIOWriterTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/TsFileIOWriterTest.java
index a5bb8e6..61e4786 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/write/TsFileIOWriterTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/write/TsFileIOWriterTest.java
@@ -23,7 +23,7 @@ import java.io.IOException;
import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
import org.apache.iotdb.tsfile.constant.TestConstant;
import org.apache.iotdb.tsfile.file.MetaMarker;
-import org.apache.iotdb.tsfile.file.footer.ChunkGroupHeader;
+import org.apache.iotdb.tsfile.file.footer.ChunkGroupFooter;
import org.apache.iotdb.tsfile.file.header.ChunkHeader;
import org.apache.iotdb.tsfile.file.metadata.TimeSeriesMetadataTest;
import org.apache.iotdb.tsfile.file.metadata.TsFileMetadata;
@@ -84,21 +84,20 @@ public class TsFileIOWriterTest {
// magic_string
Assert.assertEquals(TSFileConfig.MAGIC_STRING, reader.readHeadMagic());
- Assert.assertEquals(TSFileConfig.VERSION_NUMBER_V2, reader.readVersionNumber());
+ Assert.assertEquals(TSFileConfig.VERSION_NUMBER, reader.readVersionNumber());
Assert.assertEquals(TSFileConfig.MAGIC_STRING, reader.readTailMagic());
- // chunk group header
- Assert.assertEquals(MetaMarker.CHUNK_GROUP_HEADER, reader.readMarker());
- ChunkGroupHeader chunkGroupHeader = reader.readChunkGroupFooter();
- Assert.assertEquals(deviceId, chunkGroupHeader.getDeviceID());
-
// chunk header
- reader.position(TSFileConfig.MAGIC_STRING.getBytes().length + TSFileConfig.VERSION_NUMBER_V2
+ reader.position(TSFileConfig.MAGIC_STRING.getBytes().length + TSFileConfig.VERSION_NUMBER
.getBytes().length);
- Assert.assertEquals(MetaMarker.ONLY_ONE_PAGE_CHUNK_HEADER, reader.readMarker());
- ChunkHeader header = reader.readChunkHeader(MetaMarker.ONLY_ONE_PAGE_CHUNK_HEADER);
+ Assert.assertEquals(MetaMarker.CHUNK_HEADER, reader.readMarker());
+ ChunkHeader header = reader.readChunkHeader();
Assert.assertEquals(TimeSeriesMetadataTest.measurementUID, header.getMeasurementID());
+ // chunk group footer
+ Assert.assertEquals(MetaMarker.CHUNK_GROUP_FOOTER, reader.readMarker());
+ ChunkGroupFooter footer = reader.readChunkGroupFooter();
+ Assert.assertEquals(deviceId, footer.getDeviceID());
// separator
Assert.assertEquals(MetaMarker.VERSION, reader.readMarker());