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 2019/11/26 10:21:02 UTC
[incubator-iotdb] 01/01: remove digest
This is an automated email from the ASF dual-hosted git repository.
qiaojialin pushed a commit to branch refine_digest
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
commit fc2fb425595135cea15697cd53c7257f971b3c00
Author: qiaojialin <64...@qq.com>
AuthorDate: Tue Nov 26 18:20:37 2019 +0800
remove digest
---
.../resourceRelated/UnseqResourceMergeReader.java | 8 +-
.../apache/iotdb/db/tools/TsFileSketchTool.java | 4 +-
.../iotdb/tsfile/file/header/package-info.java | 2 +-
.../tsfile/file/metadata/ChunkGroupMetaData.java | 53 -------
.../iotdb/tsfile/file/metadata/ChunkMetaData.java | 56 +-------
.../tsfile/file/metadata/TsDeviceMetadata.java | 58 --------
.../file/metadata/statistics/BinaryStatistics.java | 2 +-
.../file/metadata/statistics/DoubleStatistics.java | 2 +-
.../file/metadata/statistics/Statistics.java | 159 +++++----------------
.../iotdb/tsfile/read/TsFileSequenceReader.java | 21 +--
...gestForFilter.java => StatisticsForFilter.java} | 8 +-
.../iotdb/tsfile/read/filter/basic/Filter.java | 10 +-
.../tsfile/read/filter/operator/AndFilter.java | 6 +-
.../iotdb/tsfile/read/filter/operator/Eq.java | 12 +-
.../iotdb/tsfile/read/filter/operator/Gt.java | 10 +-
.../iotdb/tsfile/read/filter/operator/GtEq.java | 10 +-
.../iotdb/tsfile/read/filter/operator/Lt.java | 10 +-
.../iotdb/tsfile/read/filter/operator/LtEq.java | 10 +-
.../iotdb/tsfile/read/filter/operator/NotEq.java | 12 +-
.../tsfile/read/filter/operator/NotFilter.java | 6 +-
.../tsfile/read/filter/operator/OrFilter.java | 6 +-
.../read/reader/chunk/ChunkReaderWithFilter.java | 6 +-
.../reader/series/FileSeriesReaderWithFilter.java | 14 +-
.../tool/upgrade/TsfileUpgradeToolV0_8_0.java | 4 +-
.../iotdb/tsfile/utils/ReadWriteIOUtils.java | 2 +
.../iotdb/tsfile/write/writer/TsFileIOWriter.java | 6 +-
.../file/metadata/ChunkGroupMetaDataTest.java | 52 -------
.../tsfile/file/metadata/ChunkMetaDataTest.java | 114 ---------------
.../tsfile/file/metadata/TsDeviceMetadataTest.java | 64 ---------
.../tsfile/file/metadata/utils/TestHelper.java | 107 +-------------
.../iotdb/tsfile/file/metadata/utils/Utils.java | 14 +-
.../iotdb/tsfile/read/filter/DigestFilterTest.java | 78 +++++-----
32 files changed, 167 insertions(+), 759 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/query/reader/resourceRelated/UnseqResourceMergeReader.java b/server/src/main/java/org/apache/iotdb/db/query/reader/resourceRelated/UnseqResourceMergeReader.java
index 6566770..f28dc35 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/reader/resourceRelated/UnseqResourceMergeReader.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/reader/resourceRelated/UnseqResourceMergeReader.java
@@ -39,7 +39,7 @@ import org.apache.iotdb.tsfile.file.metadata.statistics.Statistics;
import org.apache.iotdb.tsfile.read.TsFileSequenceReader;
import org.apache.iotdb.tsfile.read.common.Path;
import org.apache.iotdb.tsfile.read.controller.ChunkLoaderImpl;
-import org.apache.iotdb.tsfile.read.filter.DigestForFilter;
+import org.apache.iotdb.tsfile.read.filter.StatisticsForFilter;
import org.apache.iotdb.tsfile.read.filter.basic.Filter;
/**
@@ -100,15 +100,15 @@ public class UnseqResourceMergeReader extends PriorityMergeReader {
if (filter != null) {
ByteBuffer minValue = null;
ByteBuffer maxValue = null;
- ByteBuffer[] statistics = chunkMetaData.getDigest().getStatistics();
+ ByteBuffer[] statistics = chunkMetaData.getStatistics().getStatisticBuffers();
if (statistics != null) {
minValue = statistics[Statistics.StatisticType.min_value.ordinal()]; // note still CAN be null
maxValue = statistics[Statistics.StatisticType.max_value.ordinal()]; // note still CAN be null
}
- DigestForFilter digest = new DigestForFilter(chunkMetaData.getStartTime(),
+ StatisticsForFilter statisticsForFilter = new StatisticsForFilter(chunkMetaData.getStartTime(),
chunkMetaData.getEndTime(), minValue, maxValue, chunkMetaData.getTsDataType());
- if (!filter.satisfy(digest)) {
+ if (!filter.satisfy(statisticsForFilter)) {
continue;
}
}
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 f6dc850..08ef921 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
@@ -110,7 +110,7 @@ public class TsFileSketchTool {
+ chunkMetaData.getEndTime() + "], tsDataType:" + chunkMetaData.getTsDataType()
+ ", \n" + String.format("%20s", "") + " \t" + statisticByteBufferToString(
chunkMetaData.getTsDataType(),
- chunkMetaData.getDigest()));
+ chunkMetaData.getStatistics()));
printlnBoth(pw, String.format("%20s", "") + "|\t\t[marker] 1");
printlnBoth(pw, String.format("%20s", "") + "|\t\t[ChunkHeader]");
Chunk chunk = reader.readMemChunk(chunkMetaData);
@@ -220,7 +220,7 @@ public class TsFileSketchTool {
}
private static String statisticByteBufferToString(TSDataType tsDataType, Statistics tsDigest) {
- ByteBuffer[] statistics = tsDigest.getStatistics();
+ ByteBuffer[] statistics = tsDigest.getStatisticBuffers();
if (statistics == null) {
return "TsDigest:[]";
}
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
index fa36f3c..19c11bc 100644
--- 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
@@ -22,7 +22,7 @@ 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 digest information.
+ * 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.
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 178b12e..41b2b5c 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
@@ -91,38 +91,6 @@ public class ChunkGroupMetaData {
}
/**
- * deserialize from InputStream.
- *
- * @param inputStream inputStream
- * @return ChunkGroupMetaData object
- * @throws IOException IOException
- */
- public static ChunkGroupMetaData deserializeFrom(InputStream inputStream) throws IOException {
- ChunkGroupMetaData chunkGroupMetaData = new ChunkGroupMetaData();
-
- chunkGroupMetaData.deviceID = ReadWriteIOUtils.readString(inputStream);
- chunkGroupMetaData.startOffsetOfChunkGroup = ReadWriteIOUtils.readLong(inputStream);
- chunkGroupMetaData.endOffsetOfChunkGroup = ReadWriteIOUtils.readLong(inputStream);
- chunkGroupMetaData.version = ReadWriteIOUtils.readLong(inputStream);
-
- int size = ReadWriteIOUtils.readInt(inputStream);
- chunkGroupMetaData.serializedSize = Integer.BYTES
- + chunkGroupMetaData.deviceID.getBytes(TSFileConfig.STRING_CHARSET).length
- + Integer.BYTES + Long.BYTES + Long.BYTES + Long.BYTES;
-
- List<ChunkMetaData> chunkMetaDataList = new ArrayList<>();
-
- for (int i = 0; i < size; i++) {
- ChunkMetaData metaData = ChunkMetaData.deserializeFrom(inputStream);
- chunkMetaDataList.add(metaData);
- chunkGroupMetaData.serializedSize += metaData.getSerializedSize();
- }
- chunkGroupMetaData.chunkMetaDataList = chunkMetaDataList;
-
- return chunkGroupMetaData;
- }
-
- /**
* deserialize from ByteBuffer.
*
* @param buffer ByteBuffer
@@ -231,25 +199,4 @@ public class ChunkGroupMetaData {
return byteLen;
}
- /**
- * serialize to ByteBuffer.
- *
- * @param buffer ByteBuffer
- * @return byte length
- * @throws IOException IOException
- */
- public int serializeTo(ByteBuffer buffer) throws IOException {
- int byteLen = 0;
-
- byteLen += ReadWriteIOUtils.write(deviceID, buffer);
- byteLen += ReadWriteIOUtils.write(startOffsetOfChunkGroup, buffer);
- byteLen += ReadWriteIOUtils.write(endOffsetOfChunkGroup, buffer);
- byteLen += ReadWriteIOUtils.write(version, buffer);
-
- byteLen += ReadWriteIOUtils.write(chunkMetaDataList.size(), buffer);
- for (ChunkMetaData chunkMetaData : chunkMetaDataList) {
- byteLen += chunkMetaData.serializeTo(buffer);
- }
- return byteLen;
- }
}
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 0015a45..f9822ec 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
@@ -90,30 +90,6 @@ public class ChunkMetaData {
this.endTime = endTime;
}
- /**
- * deserialize from InputStream.
- *
- * @param inputStream InputStream
- * @return ChunkMetaData object
- * @throws IOException IOException
- */
- public static ChunkMetaData deserializeFrom(InputStream inputStream) throws IOException {
- ChunkMetaData chunkMetaData = new ChunkMetaData();
-
- chunkMetaData.measurementUid = ReadWriteIOUtils.readString(inputStream);
-
- chunkMetaData.offsetOfChunkHeader = ReadWriteIOUtils.readLong(inputStream);
-
- chunkMetaData.numOfPoints = ReadWriteIOUtils.readLong(inputStream);
- chunkMetaData.startTime = ReadWriteIOUtils.readLong(inputStream);
- chunkMetaData.endTime = ReadWriteIOUtils.readLong(inputStream);
-
- chunkMetaData.tsDataType = ReadWriteIOUtils.readDataType(inputStream);
-
- chunkMetaData.valuesStatistics = Statistics.deserializeFrom(inputStream, chunkMetaData.tsDataType);
-
- return chunkMetaData;
- }
/**
* deserialize from ByteBuffer.
@@ -146,7 +122,7 @@ public class ChunkMetaData {
4 * Long.BYTES + // 4 long: offsetOfChunkHeader, numOfPoints, startTime, endTime
TSDataType.getSerializedSize() + // TSDataType
(valuesStatistics == null ? Statistics.getNullDigestSize()
- : valuesStatistics.getDigestSerializedSize()));
+ : valuesStatistics.getStatisticsSerializedSize()));
serializedSize += measurementUid.getBytes(TSFileConfig.STRING_CHARSET).length; // measurementUid
return serializedSize;
}
@@ -177,12 +153,12 @@ public class ChunkMetaData {
return measurementUid;
}
- public Statistics getDigest() {
+ public Statistics getStatistics() {
return valuesStatistics;
}
- public void setDigest(Statistics digest) {
- this.valuesStatistics = digest;
+ public void setStatistics(Statistics statistics) {
+ this.valuesStatistics = statistics;
}
@@ -235,30 +211,6 @@ public class ChunkMetaData {
return byteLen;
}
- /**
- * serialize to ByteBuffer.
- *
- * @param buffer ByteBuffer
- * @return length
- */
- public int serializeTo(ByteBuffer buffer) {
- int byteLen = 0;
-
- byteLen += ReadWriteIOUtils.write(measurementUid, buffer);
- byteLen += ReadWriteIOUtils.write(offsetOfChunkHeader, buffer);
- byteLen += ReadWriteIOUtils.write(numOfPoints, buffer);
- byteLen += ReadWriteIOUtils.write(startTime, buffer);
- byteLen += ReadWriteIOUtils.write(endTime, buffer);
- byteLen += ReadWriteIOUtils.write(tsDataType, buffer);
-
- if (valuesStatistics == null) {
- byteLen += Statistics.serializeNullTo(buffer);
- } else {
- byteLen += valuesStatistics.serializeTo(buffer);
- }
- return byteLen;
- }
-
public long getVersion() {
return version;
}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/TsDeviceMetadata.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/TsDeviceMetadata.java
index 26034de..27babba 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/TsDeviceMetadata.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/TsDeviceMetadata.java
@@ -56,30 +56,6 @@ public class TsDeviceMetadata {
// allowed to clair an empty TsDeviceMetadata whose fields will be assigned later.
}
- /**
- * deserialize from the inputstream.
- *
- * @param inputStream -input stream to deserialize
- * @return -device meta data
- */
- public static TsDeviceMetadata deserializeFrom(InputStream inputStream) throws IOException {
- TsDeviceMetadata deviceMetadata = new TsDeviceMetadata();
-
- deviceMetadata.startTime = ReadWriteIOUtils.readLong(inputStream);
- deviceMetadata.endTime = ReadWriteIOUtils.readLong(inputStream);
-
- int size = ReadWriteIOUtils.readInt(inputStream);
- if (size > 0) {
- List<ChunkGroupMetaData> chunkGroupMetaDataList = new ArrayList<>();
- for (int i = 0; i < size; i++) {
- chunkGroupMetaDataList.add(ChunkGroupMetaData.deserializeFrom(inputStream));
- }
- deviceMetadata.chunkGroupMetadataList = chunkGroupMetaDataList;
- }
-
- deviceMetadata.reCalculateSerializedSize();
- return deviceMetadata;
- }
/**
* deserialize from the given buffer.
@@ -120,17 +96,6 @@ public class TsDeviceMetadata {
}
/**
- * set the ChunkGroupMetadataList and recalculate serialized size.
- *
- * @param chunkGroupMetadataList -use to set the ChunkGroupMetadataList and recalculate serialized
- * size
- */
- public void setChunkGroupMetadataList(List<ChunkGroupMetaData> chunkGroupMetadataList) {
- this.chunkGroupMetadataList = chunkGroupMetadataList;
- reCalculateSerializedSize();
- }
-
- /**
* add chunk group metadata to chunkGroups. THREAD NOT SAFE
*
* @param chunkGroup - chunk group metadata to add
@@ -187,29 +152,6 @@ public class TsDeviceMetadata {
return byteLen;
}
- /**
- * get the byte length of the given buffer.
- *
- * @param buffer -buffer to determine the byte length
- * @return -byte length
- */
- public int serializeTo(ByteBuffer buffer) throws IOException {
- int byteLen = 0;
-
- byteLen += ReadWriteIOUtils.write(startTime, buffer);
- byteLen += ReadWriteIOUtils.write(endTime, buffer);
-
- if (chunkGroupMetadataList == null) {
- byteLen += ReadWriteIOUtils.write(0, buffer);
- } else {
- byteLen += ReadWriteIOUtils.write(chunkGroupMetadataList.size(), buffer);
- for (ChunkGroupMetaData chunkGroupMetaData : chunkGroupMetadataList) {
- byteLen += chunkGroupMetaData.serializeTo(buffer);
- }
- }
-
- return byteLen;
- }
@Override
public String toString() {
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/BinaryStatistics.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/BinaryStatistics.java
index 64dc577..3974c23 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/BinaryStatistics.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/BinaryStatistics.java
@@ -204,7 +204,7 @@ public class BinaryStatistics extends Statistics<Binary> {
}
@Override
- void deserialize(ByteBuffer byteBuffer) throws IOException {
+ void deserialize(ByteBuffer byteBuffer) {
this.min = new Binary(
ReadWriteIOUtils.readByteBufferWithSelfDescriptionLength(byteBuffer).array());
this.max = new Binary(
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/DoubleStatistics.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/DoubleStatistics.java
index 250aaac..ecd3911 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/DoubleStatistics.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/DoubleStatistics.java
@@ -202,7 +202,7 @@ public class DoubleStatistics extends Statistics<Double> {
}
@Override
- void deserialize(ByteBuffer byteBuffer) throws IOException {
+ void deserialize(ByteBuffer byteBuffer) {
this.min = ReadWriteIOUtils.readDouble(byteBuffer);
this.max = ReadWriteIOUtils.readDouble(byteBuffer);
this.first = ReadWriteIOUtils.readDouble(byteBuffer);
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/Statistics.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/Statistics.java
index c7d5230..86eb31e 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/Statistics.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/statistics/Statistics.java
@@ -24,9 +24,6 @@ import java.io.OutputStream;
import java.math.BigDecimal;
import java.nio.ByteBuffer;
import java.util.Arrays;
-
-import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
-import org.apache.iotdb.tsfile.encoding.common.EndianType;
import org.apache.iotdb.tsfile.exception.write.UnknownColumnTypeException;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.read.reader.TsFileInput;
@@ -37,7 +34,7 @@ import org.slf4j.LoggerFactory;
/**
* This class is used for recording statistic information of each measurement in a delta file. While
- * writing processing, the processor records the digest information. Statistics includes maximum,
+ * writing processing, the processor records the statistics information. Statistics includes maximum,
* minimum and null value count up to version 0.0.1.<br> Each data type extends this Statistic as
* super class.<br>
*
@@ -51,7 +48,7 @@ public abstract class Statistics<T> {
*/
protected boolean isEmpty = true;
- private ByteBuffer[] statistics;
+ private ByteBuffer[] buffers;
/**
* size of valid values in statistics. Note that some values in statistics can be null and thus
@@ -59,7 +56,7 @@ public abstract class Statistics<T> {
*/
private int validSizeOfArray = 0;
- private int digestSerializedSize = Integer.BYTES; // initialize for number of statistics
+ private int statisticsSerializedSize = Integer.BYTES; // initialize for number of statistics
/**
* static method providing statistic instance for respective data type.
@@ -142,7 +139,7 @@ public abstract class Statistics<T> {
public abstract ByteBuffer getSumBytebuffer();
/**
- * merge parameter to this statistic. Including
+ * merge parameter to this statistic
*
* @param stats input statistics
* @throws StatisticsClassException cannot merge statistics
@@ -322,66 +319,6 @@ public abstract class Statistics<T> {
return ReadWriteIOUtils.write(0, outputStream);
}
- public static int serializeNullTo(ByteBuffer buffer) {
- return ReadWriteIOUtils.write(0, buffer);
- }
-
- /**
- * use given input stream to deserialize.
- *
- * @param inputStream -given input stream
- * @return -an instance of TsDigest
- */
- public static Statistics deserializeFrom(InputStream inputStream, TSDataType dataType) throws IOException {
- Statistics digest = getStatsByType(dataType);
- int size = ReadWriteIOUtils.readInt(inputStream);
- digest.validSizeOfArray = size;
- digest.digestSerializedSize = Integer.BYTES;
- if (size > 0) {
- digest.statistics = new ByteBuffer[StatisticType.getTotalTypeNum()];
- ByteBuffer value;
- // check if it's an old version of TsFile
- String key = "";
- if (TSFileDescriptor.getInstance().getConfig().getEndian().equals(EndianType.LITTLE_ENDIAN.toString())) {
- for (int i = 0; i < size; i++) {
- key = ReadWriteIOUtils.readString(inputStream);
- value = ReadWriteIOUtils.readByteBufferWithSelfDescriptionLength(inputStream);
- short n;
- switch (key) {
- case "min_value":
- n = 0;
- break;
- case "max_value":
- n = 1;
- break;
- case "first":
- n = 2;
- break;
- case "last":
- n = 3;
- break;
- case "sum":
- n = 4;
- break;
- default:
- n = -1;
- }
- digest.statistics[n] = value;
- digest.digestSerializedSize += Short.BYTES + Integer.BYTES + value.remaining();
- }
- }
- else {
- for (int i = 0; i < size; i++) {
- short n = ReadWriteIOUtils.readShort(inputStream);
- value = ReadWriteIOUtils.readByteBufferWithSelfDescriptionLength(inputStream);
- digest.statistics[n] = value;
- digest.digestSerializedSize += Short.BYTES + Integer.BYTES + value.remaining();
- }
- }
- } // else left digest.statistics as null
- return digest;
- }
-
/**
* use given buffer to deserialize.
*
@@ -389,12 +326,12 @@ public abstract class Statistics<T> {
* @return -an instance of TsDigest
*/
public static Statistics deserializeFrom(ByteBuffer buffer, TSDataType dataType) {
- Statistics digest = getStatsByType(dataType);
+ Statistics statistics = getStatsByType(dataType);
int size = ReadWriteIOUtils.readInt(buffer);
- digest.validSizeOfArray = size;
- digest.digestSerializedSize = Integer.BYTES;
+ statistics.validSizeOfArray = size;
+ statistics.statisticsSerializedSize = Integer.BYTES;
if (size > 0) {
- digest.statistics = new ByteBuffer[StatisticType.getTotalTypeNum()];
+ statistics.buffers = new ByteBuffer[StatisticType.getTotalTypeNum()];
ByteBuffer value;
// check if it's old version of TsFile
buffer.mark();
@@ -425,8 +362,8 @@ public abstract class Statistics<T> {
default:
n = -1;
}
- digest.statistics[n] = value;
- digest.digestSerializedSize += Short.BYTES + Integer.BYTES + value.remaining();
+ statistics.buffers[n] = value;
+ statistics.statisticsSerializedSize += Short.BYTES + Integer.BYTES + value.remaining();
}
}
else {
@@ -434,23 +371,23 @@ public abstract class Statistics<T> {
for (int i = 0; i < size; i++) {
short n = ReadWriteIOUtils.readShort(buffer);
value = ReadWriteIOUtils.readByteBufferWithSelfDescriptionLength(buffer);
- digest.statistics[n] = value;
- digest.digestSerializedSize += Short.BYTES + Integer.BYTES + value.remaining();
+ statistics.buffers[n] = value;
+ statistics.statisticsSerializedSize += Short.BYTES + Integer.BYTES + value.remaining();
}
}
- } // else left digest.statistics as null
+ } // else left statistics as null
- return digest;
+ return statistics;
}
private void reCalculate() {
validSizeOfArray = 0;
- digestSerializedSize = Integer.BYTES;
- if (statistics != null) {
- for (ByteBuffer value : statistics) {
+ statisticsSerializedSize = Integer.BYTES;
+ if (buffers != null) {
+ for (ByteBuffer value : buffers) {
if (value != null) {
// StatisticType serialized value, byteBuffer.capacity and byteBuffer.array
- digestSerializedSize += Short.BYTES + Integer.BYTES + value.remaining();
+ statisticsSerializedSize += Short.BYTES + Integer.BYTES + value.remaining();
validSizeOfArray++;
}
}
@@ -460,23 +397,23 @@ public abstract class Statistics<T> {
/**
* get statistics of the current object.
*/
- public ByteBuffer[] getStatistics() {
- return statistics; //TODO unmodifiable
+ public ByteBuffer[] getStatisticBuffers() {
+ return buffers; //TODO unmodifiable
}
- public void setStatistics(ByteBuffer[] statistics) throws IOException {
- if (statistics != null && statistics.length != StatisticType.getTotalTypeNum()) {
+ public void setStatisticBuffers(ByteBuffer[] buffers) throws IOException {
+ if (buffers != null && buffers.length != StatisticType.getTotalTypeNum()) {
throw new IOException(String.format(
"The length of array of statistics doesn't equal StatisticType.getTotalTypeNum() %d",
StatisticType.getTotalTypeNum()));
}
- this.statistics = statistics;
+ this.buffers = buffers;
reCalculate(); // DO NOT REMOVE THIS
}
@Override
public String toString() {
- return statistics != null ? Arrays.toString(statistics) : "";
+ return buffers != null ? Arrays.toString(buffers) : "";
}
/**
@@ -491,32 +428,10 @@ public abstract class Statistics<T> {
byteLen += ReadWriteIOUtils.write(0, outputStream);
} else {
byteLen += ReadWriteIOUtils.write(validSizeOfArray, outputStream);
- for (int i = 0; i < statistics.length; i++) {
- if (statistics[i] != null) {
+ for (int i = 0; i < buffers.length; i++) {
+ if (buffers[i] != null) {
byteLen += ReadWriteIOUtils.write((short) i, outputStream);
- byteLen += ReadWriteIOUtils.write(statistics[i], outputStream);
- }
- }
- }
- return byteLen;
- }
-
- /**
- * use given buffer to serialize.
- *
- * @param buffer -given buffer
- * @return -byte length
- */
- public int serializeTo(ByteBuffer buffer) {
- int byteLen = 0;
- if (validSizeOfArray == 0) {
- byteLen += ReadWriteIOUtils.write(0, buffer);
- } else {
- byteLen += ReadWriteIOUtils.write(validSizeOfArray, buffer);
- for (int i = 0; i < statistics.length; i++) {
- if (statistics[i] != null) {
- byteLen += ReadWriteIOUtils.write((short) i, buffer);
- byteLen += ReadWriteIOUtils.write(statistics[i], buffer);
+ byteLen += ReadWriteIOUtils.write(buffers[i], outputStream);
}
}
}
@@ -528,8 +443,8 @@ public abstract class Statistics<T> {
*
* @return -serializedSize
*/
- public int getDigestSerializedSize() {
- return digestSerializedSize;
+ public int getStatisticsSerializedSize() {
+ return statisticsSerializedSize;
}
@Override
@@ -540,20 +455,20 @@ public abstract class Statistics<T> {
if (o == null || getClass() != o.getClass()) {
return false;
}
- Statistics digest = (Statistics) o;
- if (digestSerializedSize != digest.digestSerializedSize || validSizeOfArray != digest.validSizeOfArray
- || ((statistics == null) ^ (digest.statistics == null))) {
+ Statistics statistics = (Statistics) o;
+ if (statisticsSerializedSize != statistics.statisticsSerializedSize || validSizeOfArray != statistics.validSizeOfArray
+ || ((this.buffers == null) ^ (statistics.buffers == null))) {
return false;
}
- if (statistics != null) {
- for (int i = 0; i < statistics.length; i++) {
- if ((statistics[i] == null) ^ (digest.statistics[i] == null)) {
+ if (this.buffers != null) {
+ for (int i = 0; i < this.buffers.length; i++) {
+ if ((this.buffers[i] == null) ^ (statistics.buffers[i] == null)) {
// one is null and the other is not null
return false;
}
- if (statistics[i] != null) {
- if (!statistics[i].equals(digest.statistics[i])) {
+ if (this.buffers[i] != null) {
+ if (!this.buffers[i].equals(statistics.buffers[i])) {
return false;
}
}
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 7fcce1f..c8990eb 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
@@ -285,23 +285,6 @@ public class TsFileSequenceReader implements AutoCloseable {
}
/**
- * @return get the position after the last chunk group in the file
- */
- public long getPositionOfFirstDeviceMetaIndex() throws IOException {
- TsFileMetaData metaData = readFileMetadata();
- Optional<Long> data = metaData.getDeviceMap().values().stream()
- .map(TsDeviceMetadataIndex::getOffset)
- .min(Comparator.comparing(Long::valueOf));
- if (data.isPresent()) {
- return data.get();
- } else {
- //no real data
- return TSFileConfig.MAGIC_STRING.getBytes().length + TSFileConfig.VERSION_NUMBER
- .getBytes().length;
- }
- }
-
- /**
* this function does not modify the position of the file reader.
*/
public TsDeviceMetadata readTsDeviceMetaData(TsDeviceMetadataIndex index) throws IOException {
@@ -673,8 +656,8 @@ public class TsFileSequenceReader implements AutoCloseable {
statisticsArray[Statistics.StatisticType.sum_value.ordinal()] = ByteBuffer
.wrap(chunkStatistics.getSumBytes());
Statistics tsDigest = Statistics.getStatsByType(dataType);
- tsDigest.setStatistics(statisticsArray);
- currentChunk.setDigest(tsDigest);
+ tsDigest.setStatisticBuffers(statisticsArray);
+ currentChunk.setStatistics(tsDigest);
chunks.add(currentChunk);
numOfPoints = 0;
chunkCnt++;
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/DigestForFilter.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/StatisticsForFilter.java
similarity index 94%
rename from tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/DigestForFilter.java
rename to tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/StatisticsForFilter.java
index e4921d6..0b35569 100755
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/DigestForFilter.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/StatisticsForFilter.java
@@ -25,9 +25,9 @@ import org.apache.iotdb.tsfile.utils.Binary;
import org.apache.iotdb.tsfile.utils.BytesUtils;
/**
- * class to construct digest.
+ * class to construct statistics.
*/
-public class DigestForFilter {
+public class StatisticsForFilter {
private ByteBuffer minValue;
private ByteBuffer maxValue;
@@ -44,7 +44,7 @@ public class DigestForFilter {
* @param maxValue MUST be ByteBuffer
* @param type time series data type
*/
- public DigestForFilter(long minTime, long maxTime, ByteBuffer minValue, ByteBuffer maxValue,
+ public StatisticsForFilter(long minTime, long maxTime, ByteBuffer minValue, ByteBuffer maxValue,
TSDataType type) {
this.minTime = minTime;
this.maxTime = maxTime;
@@ -62,7 +62,7 @@ public class DigestForFilter {
* @param maxValue MUST be byte[]
* @param type time series data type
*/
- public DigestForFilter(long minTime, long maxTime, byte[] minValue, byte[] maxValue,
+ public StatisticsForFilter(long minTime, long maxTime, byte[] minValue, byte[] maxValue,
TSDataType type) {
this.minTime = minTime;
this.maxTime = maxTime;
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/basic/Filter.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/basic/Filter.java
index a37ccd2..a3b8081 100755
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/basic/Filter.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/basic/Filter.java
@@ -18,7 +18,7 @@
*/
package org.apache.iotdb.tsfile.read.filter.basic;
-import org.apache.iotdb.tsfile.read.filter.DigestForFilter;
+import org.apache.iotdb.tsfile.read.filter.StatisticsForFilter;
/**
* Filter is a top level filter abstraction.
@@ -27,12 +27,12 @@ import org.apache.iotdb.tsfile.read.filter.DigestForFilter;
public interface Filter {
/**
- * To examine whether the digest is satisfied with the filter.
+ * To examine whether the statistics is satisfied with the filter.
*
- * @param digest
- * digest with min time, max time, min value, max value.
+ * @param statistics
+ * statistics with min time, max time, min value, max value.
*/
- boolean satisfy(DigestForFilter digest);
+ boolean satisfy(StatisticsForFilter statistics);
/**
* To examine whether the single point(with time and value) is satisfied with the filter.
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/AndFilter.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/AndFilter.java
index 8b6e5db..ca0b490 100755
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/AndFilter.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/AndFilter.java
@@ -18,7 +18,7 @@
*/
package org.apache.iotdb.tsfile.read.filter.operator;
-import org.apache.iotdb.tsfile.read.filter.DigestForFilter;
+import org.apache.iotdb.tsfile.read.filter.StatisticsForFilter;
import org.apache.iotdb.tsfile.read.filter.basic.BinaryFilter;
import org.apache.iotdb.tsfile.read.filter.basic.Filter;
@@ -34,8 +34,8 @@ public class AndFilter extends BinaryFilter {
}
@Override
- public boolean satisfy(DigestForFilter digest) {
- return left.satisfy(digest) && right.satisfy(digest);
+ public boolean satisfy(StatisticsForFilter statistics) {
+ return left.satisfy(statistics) && right.satisfy(statistics);
}
@Override
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/Eq.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/Eq.java
index 21cce69..7694fab 100755
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/Eq.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/Eq.java
@@ -18,7 +18,7 @@
*/
package org.apache.iotdb.tsfile.read.filter.operator;
-import org.apache.iotdb.tsfile.read.filter.DigestForFilter;
+import org.apache.iotdb.tsfile.read.filter.StatisticsForFilter;
import org.apache.iotdb.tsfile.read.filter.basic.Filter;
import org.apache.iotdb.tsfile.read.filter.basic.UnaryFilter;
import org.apache.iotdb.tsfile.read.filter.factory.FilterType;
@@ -37,15 +37,15 @@ public class Eq<T extends Comparable<T>> extends UnaryFilter<T> {
}
@Override
- public boolean satisfy(DigestForFilter digest) {
+ public boolean satisfy(StatisticsForFilter statistics) {
if (filterType == FilterType.TIME_FILTER) {
- return ((Long) value) >= digest.getMinTime() && ((Long) value) <= digest.getMaxTime();
+ return ((Long) value) >= statistics.getMinTime() && ((Long) value) <= statistics.getMaxTime();
} else {
- if (digest.isMinValueNull() || digest.isMaxValueNull()) {
+ if (statistics.isMinValueNull() || statistics.isMaxValueNull()) {
return true;
}
- return value.compareTo(digest.getMinValue()) >= 0
- && value.compareTo(digest.getMaxValue()) <= 0;
+ return value.compareTo(statistics.getMinValue()) >= 0
+ && value.compareTo(statistics.getMaxValue()) <= 0;
}
}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/Gt.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/Gt.java
index 7e7ff63..e1057b9 100755
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/Gt.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/Gt.java
@@ -18,7 +18,7 @@
*/
package org.apache.iotdb.tsfile.read.filter.operator;
-import org.apache.iotdb.tsfile.read.filter.DigestForFilter;
+import org.apache.iotdb.tsfile.read.filter.StatisticsForFilter;
import org.apache.iotdb.tsfile.read.filter.basic.Filter;
import org.apache.iotdb.tsfile.read.filter.basic.UnaryFilter;
import org.apache.iotdb.tsfile.read.filter.factory.FilterType;
@@ -37,14 +37,14 @@ public class Gt<T extends Comparable<T>> extends UnaryFilter<T> {
}
@Override
- public boolean satisfy(DigestForFilter digest) {
+ public boolean satisfy(StatisticsForFilter statistics) {
if (filterType == FilterType.TIME_FILTER) {
- return ((Long) value) < digest.getMaxTime();
+ return ((Long) value) < statistics.getMaxTime();
} else {
- if (digest.isMaxValueNull()) {
+ if (statistics.isMaxValueNull()) {
return true;
}
- return value.compareTo(digest.getMaxValue()) < 0;
+ return value.compareTo(statistics.getMaxValue()) < 0;
}
}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/GtEq.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/GtEq.java
index 7a63c4f..30feaf6 100755
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/GtEq.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/GtEq.java
@@ -18,7 +18,7 @@
*/
package org.apache.iotdb.tsfile.read.filter.operator;
-import org.apache.iotdb.tsfile.read.filter.DigestForFilter;
+import org.apache.iotdb.tsfile.read.filter.StatisticsForFilter;
import org.apache.iotdb.tsfile.read.filter.basic.Filter;
import org.apache.iotdb.tsfile.read.filter.basic.UnaryFilter;
import org.apache.iotdb.tsfile.read.filter.factory.FilterType;
@@ -37,14 +37,14 @@ public class GtEq<T extends Comparable<T>> extends UnaryFilter<T> {
}
@Override
- public boolean satisfy(DigestForFilter digest) {
+ public boolean satisfy(StatisticsForFilter statistics) {
if (filterType == FilterType.TIME_FILTER) {
- return ((Long) value) <= digest.getMaxTime();
+ return ((Long) value) <= statistics.getMaxTime();
} else {
- if (digest.isMaxValueNull()) {
+ if (statistics.isMaxValueNull()) {
return true;
}
- return value.compareTo(digest.getMaxValue()) <= 0;
+ return value.compareTo(statistics.getMaxValue()) <= 0;
}
}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/Lt.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/Lt.java
index 3954935..a68c0fa 100755
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/Lt.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/Lt.java
@@ -18,7 +18,7 @@
*/
package org.apache.iotdb.tsfile.read.filter.operator;
-import org.apache.iotdb.tsfile.read.filter.DigestForFilter;
+import org.apache.iotdb.tsfile.read.filter.StatisticsForFilter;
import org.apache.iotdb.tsfile.read.filter.basic.Filter;
import org.apache.iotdb.tsfile.read.filter.basic.UnaryFilter;
import org.apache.iotdb.tsfile.read.filter.factory.FilterType;
@@ -37,14 +37,14 @@ public class Lt<T extends Comparable<T>> extends UnaryFilter<T> {
}
@Override
- public boolean satisfy(DigestForFilter digest) {
+ public boolean satisfy(StatisticsForFilter statistics) {
if (filterType == FilterType.TIME_FILTER) {
- return ((Long) value) > digest.getMinTime();
+ return ((Long) value) > statistics.getMinTime();
} else {
- if (digest.isMinValueNull()) {
+ if (statistics.isMinValueNull()) {
return true;
}
- return value.compareTo(digest.getMinValue()) > 0;
+ return value.compareTo(statistics.getMinValue()) > 0;
}
}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/LtEq.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/LtEq.java
index 7ca6b12..f9b4686 100755
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/LtEq.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/LtEq.java
@@ -18,7 +18,7 @@
*/
package org.apache.iotdb.tsfile.read.filter.operator;
-import org.apache.iotdb.tsfile.read.filter.DigestForFilter;
+import org.apache.iotdb.tsfile.read.filter.StatisticsForFilter;
import org.apache.iotdb.tsfile.read.filter.basic.Filter;
import org.apache.iotdb.tsfile.read.filter.basic.UnaryFilter;
import org.apache.iotdb.tsfile.read.filter.factory.FilterType;
@@ -37,14 +37,14 @@ public class LtEq<T extends Comparable<T>> extends UnaryFilter<T> {
}
@Override
- public boolean satisfy(DigestForFilter digest) {
+ public boolean satisfy(StatisticsForFilter statistics) {
if (filterType == FilterType.TIME_FILTER) {
- return ((Long) value) >= digest.getMinTime();
+ return ((Long) value) >= statistics.getMinTime();
} else {
- if (digest.isMinValueNull()) {
+ if (statistics.isMinValueNull()) {
return true;
}
- return value.compareTo(digest.getMinValue()) >= 0;
+ return value.compareTo(statistics.getMinValue()) >= 0;
}
}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/NotEq.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/NotEq.java
index 1c0e597..66bce41 100755
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/NotEq.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/NotEq.java
@@ -18,7 +18,7 @@
*/
package org.apache.iotdb.tsfile.read.filter.operator;
-import org.apache.iotdb.tsfile.read.filter.DigestForFilter;
+import org.apache.iotdb.tsfile.read.filter.StatisticsForFilter;
import org.apache.iotdb.tsfile.read.filter.basic.Filter;
import org.apache.iotdb.tsfile.read.filter.basic.UnaryFilter;
import org.apache.iotdb.tsfile.read.filter.factory.FilterType;
@@ -37,15 +37,15 @@ public class NotEq<T extends Comparable<T>> extends UnaryFilter<T> {
}
@Override
- public boolean satisfy(DigestForFilter digest) {
+ public boolean satisfy(StatisticsForFilter statistics) {
if (filterType == FilterType.TIME_FILTER) {
- return !(((Long) value) == digest.getMinTime() && (Long) value == digest.getMaxTime());
+ return !(((Long) value) == statistics.getMinTime() && (Long) value == statistics.getMaxTime());
} else {
- if (digest.isMinValueNull() || digest.isMaxValueNull()) {
+ if (statistics.isMinValueNull() || statistics.isMaxValueNull()) {
return true;
}
- return !(value.compareTo(digest.getMinValue()) == 0
- && value.compareTo(digest.getMaxValue()) == 0);
+ return !(value.compareTo(statistics.getMinValue()) == 0
+ && value.compareTo(statistics.getMaxValue()) == 0);
}
}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/NotFilter.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/NotFilter.java
index 4135c45..101c595 100755
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/NotFilter.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/NotFilter.java
@@ -19,7 +19,7 @@
package org.apache.iotdb.tsfile.read.filter.operator;
import java.io.Serializable;
-import org.apache.iotdb.tsfile.read.filter.DigestForFilter;
+import org.apache.iotdb.tsfile.read.filter.StatisticsForFilter;
import org.apache.iotdb.tsfile.read.filter.basic.Filter;
/**
@@ -35,8 +35,8 @@ public class NotFilter implements Filter, Serializable {
}
@Override
- public boolean satisfy(DigestForFilter digest) {
- return !that.satisfy(digest);
+ public boolean satisfy(StatisticsForFilter statistics) {
+ return !that.satisfy(statistics);
}
@Override
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/OrFilter.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/OrFilter.java
index 0472be8..1e9518a 100755
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/OrFilter.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/filter/operator/OrFilter.java
@@ -19,7 +19,7 @@
package org.apache.iotdb.tsfile.read.filter.operator;
import java.io.Serializable;
-import org.apache.iotdb.tsfile.read.filter.DigestForFilter;
+import org.apache.iotdb.tsfile.read.filter.StatisticsForFilter;
import org.apache.iotdb.tsfile.read.filter.basic.BinaryFilter;
import org.apache.iotdb.tsfile.read.filter.basic.Filter;
@@ -45,8 +45,8 @@ public class OrFilter extends BinaryFilter implements Serializable {
}
@Override
- public boolean satisfy(DigestForFilter digest) {
- return left.satisfy(digest) || right.satisfy(digest);
+ public boolean satisfy(StatisticsForFilter statistics) {
+ return left.satisfy(statistics) || right.satisfy(statistics);
}
@Override
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/chunk/ChunkReaderWithFilter.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/chunk/ChunkReaderWithFilter.java
index 0381628..d1c282e 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/chunk/ChunkReaderWithFilter.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/chunk/ChunkReaderWithFilter.java
@@ -20,7 +20,7 @@ package org.apache.iotdb.tsfile.read.reader.chunk;
import org.apache.iotdb.tsfile.file.header.PageHeader;
import org.apache.iotdb.tsfile.read.common.Chunk;
-import org.apache.iotdb.tsfile.read.filter.DigestForFilter;
+import org.apache.iotdb.tsfile.read.filter.StatisticsForFilter;
import org.apache.iotdb.tsfile.read.filter.basic.Filter;
public class ChunkReaderWithFilter extends ChunkReader {
@@ -37,12 +37,12 @@ public class ChunkReaderWithFilter extends ChunkReader {
if (pageHeader.getMaxTimestamp() < deletedAt) {
return false;
}
- DigestForFilter digest = new DigestForFilter(pageHeader.getMinTimestamp(),
+ StatisticsForFilter statistics = new StatisticsForFilter(pageHeader.getMinTimestamp(),
pageHeader.getMaxTimestamp(),
pageHeader.getStatistics().getMinBytebuffer(),
pageHeader.getStatistics().getMaxBytebuffer(),
chunkHeader.getDataType());
- return filter.satisfy(digest);
+ return filter.satisfy(statistics);
}
}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/series/FileSeriesReaderWithFilter.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/series/FileSeriesReaderWithFilter.java
index ad8968d..147daa1 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/series/FileSeriesReaderWithFilter.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/read/reader/series/FileSeriesReaderWithFilter.java
@@ -22,10 +22,10 @@ import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.List;
import org.apache.iotdb.tsfile.file.metadata.ChunkMetaData;
-import org.apache.iotdb.tsfile.file.metadata.statistics.Statistics;
+import org.apache.iotdb.tsfile.file.metadata.statistics.Statistics.StatisticType;
import org.apache.iotdb.tsfile.read.common.Chunk;
import org.apache.iotdb.tsfile.read.controller.IChunkLoader;
-import org.apache.iotdb.tsfile.read.filter.DigestForFilter;
+import org.apache.iotdb.tsfile.read.filter.StatisticsForFilter;
import org.apache.iotdb.tsfile.read.filter.basic.Filter;
import org.apache.iotdb.tsfile.read.reader.chunk.ChunkReaderWithFilter;
@@ -53,15 +53,15 @@ public class FileSeriesReaderWithFilter extends FileSeriesReader {
protected boolean chunkSatisfied(ChunkMetaData chunkMetaData) {
ByteBuffer minValue = null;
ByteBuffer maxValue = null;
- ByteBuffer[] statistics = chunkMetaData.getDigest().getStatistics();
+ ByteBuffer[] statistics = chunkMetaData.getStatistics().getStatisticBuffers();
if (statistics != null) {
- minValue = statistics[Statistics.StatisticType.min_value.ordinal()]; // note still CAN be null
- maxValue = statistics[Statistics.StatisticType.max_value.ordinal()]; // note still CAN be null
+ minValue = statistics[StatisticType.min_value.ordinal()]; // note still CAN be null
+ maxValue = statistics[StatisticType.max_value.ordinal()]; // note still CAN be null
}
- DigestForFilter digest = new DigestForFilter(chunkMetaData.getStartTime(),
+ StatisticsForFilter statisticsForFilter = new StatisticsForFilter(chunkMetaData.getStartTime(),
chunkMetaData.getEndTime(), minValue, maxValue, chunkMetaData.getTsDataType());
- return filter.satisfy(digest);
+ return filter.satisfy(statisticsForFilter);
}
}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/tool/upgrade/TsfileUpgradeToolV0_8_0.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/tool/upgrade/TsfileUpgradeToolV0_8_0.java
index cdb7436..ae22c0e 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/tool/upgrade/TsfileUpgradeToolV0_8_0.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/tool/upgrade/TsfileUpgradeToolV0_8_0.java
@@ -417,8 +417,8 @@ public class TsfileUpgradeToolV0_8_0 implements AutoCloseable {
statisticsArray[Statistics.StatisticType.sum_value.ordinal()] = ByteBuffer
.wrap(chunkStatistics.getSumBytes());
Statistics tsDigest = Statistics.getStatsByType(dataType);
- tsDigest.setStatistics(statisticsArray);
- currentChunkMetaData.setDigest(tsDigest);
+ tsDigest.setStatisticBuffers(statisticsArray);
+ currentChunkMetaData.setStatistics(tsDigest);
chunkMetaDataList.add(currentChunkMetaData);
numOfPoints = 0;
pageHeadersList.add(pageHeaders);
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/utils/ReadWriteIOUtils.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/utils/ReadWriteIOUtils.java
index 401686d..0405d4e 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/utils/ReadWriteIOUtils.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/utils/ReadWriteIOUtils.java
@@ -571,6 +571,8 @@ public class ReadWriteIOUtils {
/**
* read bytes from byteBuffer, this method makes sure that you can read length bytes or reach to
* the end of the buffer.
+ *
+ * int + buffer -> buffer
*/
public static ByteBuffer readByteBufferWithSelfDescriptionLength(ByteBuffer buffer) {
int byteLength = readInt(buffer);
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 44636c5..0a78cda 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
@@ -217,9 +217,9 @@ public class TsFileIOWriter {
Statistics tsDigest = Statistics.getStatsByType(tsDataType);
- tsDigest.setStatistics(statisticsArray);
+ tsDigest.setStatisticBuffers(statisticsArray);
- currentChunkMetaData.setDigest(tsDigest);
+ currentChunkMetaData.setStatistics(tsDigest);
return header.getSerializedSize();
}
@@ -232,7 +232,7 @@ public class TsFileIOWriter {
currentChunkMetaData = new ChunkMetaData(chunkHeader.getMeasurementID(),
chunkHeader.getDataType(), out.getPosition(), chunkMetadata.getStartTime(),
chunkMetadata.getEndTime());
- currentChunkMetaData.setDigest(chunkMetadata.getDigest());
+ currentChunkMetaData.setStatistics(chunkMetadata.getStatistics());
chunkHeader.serializeTo(out.wrapAsStream());
out.write(chunk.getData());
endChunk(chunkMetadata.getNumOfPoints());
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/ChunkGroupMetaDataTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/ChunkGroupMetaDataTest.java
index afa93fb..8b4e0b9 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/ChunkGroupMetaDataTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/ChunkGroupMetaDataTest.java
@@ -104,56 +104,4 @@ public class ChunkGroupMetaDataTest {
reader.close();
}
- @Test
- public void testWriteIntoFile() {
- // serialize metadata to a file
- ChunkGroupMetaData metaData = TestHelper.createSimpleChunkGroupMetaData();
- serialized(metaData);
- ChunkGroupMetaData readMetaData = deSerialized();
- serialized(readMetaData);
- }
-
- private ChunkGroupMetaData deSerialized() {
- FileInputStream fis = null;
- ChunkGroupMetaData metaData = null;
- try {
- fis = new FileInputStream(new File(PATH));
- metaData = ChunkGroupMetaData.deserializeFrom(fis);
- return metaData;
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if (fis != null) {
- try {
- fis.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- return metaData;
- }
-
- private void serialized(ChunkGroupMetaData metaData) {
- File file = new File(PATH);
- if (file.exists()) {
- file.delete();
- }
- FileOutputStream fos = null;
- try {
- fos = new FileOutputStream(file);
- metaData.serializeTo(fos);
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if (fos != null) {
- try {
- fos.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
-
}
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/ChunkMetaDataTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/ChunkMetaDataTest.java
deleted file mode 100644
index a9c6140..0000000
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/ChunkMetaDataTest.java
+++ /dev/null
@@ -1,114 +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.metadata;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
-import org.apache.iotdb.tsfile.file.metadata.utils.TestHelper;
-import org.apache.iotdb.tsfile.file.metadata.utils.Utils;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-public class ChunkMetaDataTest {
-
- public static final String MEASUREMENT_UID = "sensor231";
- public static final long FILE_OFFSET = 2313424242L;
- public static final long NUM_OF_POINTS = 123456L;
- public static final long START_TIME = 523372036854775806L;
- public static final long END_TIME = 523372036854775806L;
- public static final TSDataType DATA_TYPE = TSDataType.INT64;
- final String PATH = "target/outputTimeSeriesChunk.tsfile";
-
- @Before
- public void setUp() {
- }
-
- @After
- public void tearDown() {
- File file = new File(PATH);
- if (file.exists()) {
- file.delete();
- }
- }
-
- @Test
- public void testWriteIntoFile() {
- ChunkMetaData metaData = TestHelper.createSimpleTimeSeriesChunkMetaData();
- serialized(metaData);
- ChunkMetaData readMetaData = deSerialized();
- Utils.isTimeSeriesChunkMetadataEqual(metaData, readMetaData);
- serialized(readMetaData);
- }
-
- @Test
- public void testWriteIntoFile2() throws IOException {
- ChunkMetaData metaData = TestHelper.createNotCompleteSimpleTimeSeriesChunkMetaData();
- serialized(metaData);
- ChunkMetaData readMetaData = deSerialized();
- Utils.isTimeSeriesChunkMetadataEqual(metaData, readMetaData);
- serialized(readMetaData);
- }
-
- private ChunkMetaData deSerialized() {
- FileInputStream fis = null;
- ChunkMetaData metaData = null;
- try {
- fis = new FileInputStream(new File(PATH));
- metaData = ChunkMetaData.deserializeFrom(fis);
- return metaData;
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if (fis != null) {
- try {
- fis.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- return metaData;
- }
-
- private void serialized(ChunkMetaData metaData) {
- File file = new File(PATH);
- if (file.exists()) {
- file.delete();
- }
- FileOutputStream fos = null;
- try {
- fos = new FileOutputStream(file);
- metaData.serializeTo(fos);
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if (fos != null) {
- try {
- fos.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
-}
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/TsDeviceMetadataTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/TsDeviceMetadataTest.java
deleted file mode 100644
index 19539e2..0000000
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/TsDeviceMetadataTest.java
+++ /dev/null
@@ -1,64 +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.metadata;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import org.apache.iotdb.tsfile.file.metadata.utils.TestHelper;
-import org.apache.iotdb.tsfile.file.metadata.utils.Utils;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-public class TsDeviceMetadataTest {
-
- public static final long START_TIME = 523372036854775806L;
- public static final long END_TIME = 523372036854775806L;
- final String PATH = "target/outputDevice.tsfile";
-
- @Before
- public void setUp() {
- }
-
- @After
- public void tearDown() {
- File file = new File(PATH);
- if (file.exists()) {
- file.delete();
- }
- }
-
- @Test
- public void testWriteIntoFile() throws IOException {
- TsDeviceMetadata metaData = TestHelper.createSimpleDeviceMetaData();
- File file = new File(PATH);
- if (file.exists()) {
- file.delete();
- }
- FileOutputStream fos = new FileOutputStream(file);
- metaData.serializeTo(fos);
- fos.close();
-
- FileInputStream fis = new FileInputStream(new File(PATH));
- Utils.isTsDeviceMetadataEqual(metaData, TsDeviceMetadata.deserializeFrom(fis));
- fis.close();
- }
-}
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/utils/TestHelper.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/utils/TestHelper.java
index afba538..20218ba 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/utils/TestHelper.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/utils/TestHelper.java
@@ -18,38 +18,21 @@
*/
package org.apache.iotdb.tsfile.file.metadata.utils;
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.util.ArrayList;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import org.apache.iotdb.tsfile.file.header.PageHeader;
import org.apache.iotdb.tsfile.file.header.PageHeaderTest;
-import org.apache.iotdb.tsfile.file.metadata.ChunkGroupMetaData;
-import org.apache.iotdb.tsfile.file.metadata.ChunkGroupMetaDataTest;
-import org.apache.iotdb.tsfile.file.metadata.ChunkMetaData;
-import org.apache.iotdb.tsfile.file.metadata.ChunkMetaDataTest;
import org.apache.iotdb.tsfile.file.metadata.TimeSeriesMetadataTest;
-import org.apache.iotdb.tsfile.file.metadata.TsDeviceMetadata;
import org.apache.iotdb.tsfile.file.metadata.TsDeviceMetadataIndex;
-import org.apache.iotdb.tsfile.file.metadata.TsDeviceMetadataTest;
import org.apache.iotdb.tsfile.file.metadata.TsFileMetaData;
import org.apache.iotdb.tsfile.file.metadata.TsFileMetaDataTest;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
import org.apache.iotdb.tsfile.file.metadata.statistics.Statistics;
-import org.apache.iotdb.tsfile.utils.BytesUtils;
import org.apache.iotdb.tsfile.write.schema.MeasurementSchema;
public class TestHelper {
- private static final String MAX_VALUE = "321";
- private static final String MIN_VALUE = "123";
- private static final String SUM_VALUE = "321123";
- private static final String FIRST_VALUE = "1";
- private static final String LAST_VALUE = "222";
-
public static TsFileMetaData createSimpleFileMetaData() {
TsFileMetaData metaData = new TsFileMetaData(generateDeviceIndexMetadataMap(), new HashMap<>());
metaData.addMeasurementSchema(TestHelper.createSimpleMeasurementSchema());
@@ -58,7 +41,7 @@ public class TestHelper {
return metaData;
}
- public static Map<String, TsDeviceMetadataIndex> generateDeviceIndexMetadataMap() {
+ private static Map<String, TsDeviceMetadataIndex> generateDeviceIndexMetadataMap() {
Map<String, TsDeviceMetadataIndex> indexMap = new HashMap<>();
for (int i = 0; i < 5; i++) {
indexMap.put("device_" + i, createSimpleDeviceIndexMetadata());
@@ -66,15 +49,7 @@ public class TestHelper {
return indexMap;
}
- public static Map<String, TsDeviceMetadata> generateDeviceMetadataMap() {
- Map<String, TsDeviceMetadata> deviceMetadataMap = new HashMap<>();
- for (int i = 0; i < 5; i++) {
- deviceMetadataMap.put("device_" + i, createSimpleDeviceMetaData());
- }
- return deviceMetadataMap;
- }
-
- public static TsDeviceMetadataIndex createSimpleDeviceIndexMetadata() {
+ private static TsDeviceMetadataIndex createSimpleDeviceIndexMetadata() {
TsDeviceMetadataIndex index = new TsDeviceMetadataIndex();
index.setOffset(0);
index.setLen(10);
@@ -83,90 +58,12 @@ public class TestHelper {
return index;
}
- public static TsDeviceMetadata createSimpleDeviceMetaData() {
- TsDeviceMetadata metaData = new TsDeviceMetadata();
- metaData.setStartTime(TsDeviceMetadataTest.START_TIME);
- metaData.setEndTime(TsDeviceMetadataTest.END_TIME);
- metaData.addChunkGroupMetaData(TestHelper.createSimpleChunkGroupMetaData());
- metaData.addChunkGroupMetaData(TestHelper.createSimpleChunkGroupMetaData());
- return metaData;
- }
-
- public static ChunkGroupMetaData createEmptySeriesChunkGroupMetaData() {
- return new ChunkGroupMetaData("d1", new ArrayList<>(), 0);
- }
-
- public static ChunkGroupMetaData createSimpleChunkGroupMetaData() {
- ChunkGroupMetaData metaData = new ChunkGroupMetaData(ChunkGroupMetaDataTest.DELTA_OBJECT_UID,
- new ArrayList<>(), 0);
- metaData.addTimeSeriesChunkMetaData(TestHelper.createSimpleTimeSeriesChunkMetaData());
- metaData.addTimeSeriesChunkMetaData(TestHelper.createSimpleTimeSeriesChunkMetaData());
- return metaData;
- }
-
- public static ChunkMetaData createSimpleTimeSeriesChunkMetaData() {
- ChunkMetaData metaData = new ChunkMetaData(ChunkMetaDataTest.MEASUREMENT_UID,
- ChunkMetaDataTest.DATA_TYPE,
- ChunkMetaDataTest.FILE_OFFSET, ChunkMetaDataTest.START_TIME, ChunkMetaDataTest.END_TIME// ,
- // ChunkMetaDataTest.ENCODING_TYPE
- );
- metaData.setNumOfPoints(ChunkMetaDataTest.NUM_OF_POINTS);
- metaData.setDigest(Statistics.getStatsByType(ChunkMetaDataTest.DATA_TYPE));
- return metaData;
- }
-
- public static ChunkMetaData createNotCompleteSimpleTimeSeriesChunkMetaData() throws IOException {
- ChunkMetaData metaData = new ChunkMetaData(ChunkMetaDataTest.MEASUREMENT_UID,
- ChunkMetaDataTest.DATA_TYPE,
- ChunkMetaDataTest.FILE_OFFSET, ChunkMetaDataTest.START_TIME, ChunkMetaDataTest.END_TIME
- );
- metaData.setNumOfPoints(ChunkMetaDataTest.NUM_OF_POINTS);
- metaData.setDigest(createNotCompleteSimpleTsDigest(ChunkMetaDataTest.DATA_TYPE));
- return metaData;
- }
-
public static MeasurementSchema createSimpleMeasurementSchema() {
return new MeasurementSchema(TimeSeriesMetadataTest.measurementUID,
TSDataType.INT64,
TSEncoding.RLE);
}
- public static Statistics createSimpleTsDigest(TSDataType dataType) throws IOException {
- Statistics digest = Statistics.getStatsByType(dataType);
- ByteBuffer[] statisticsArray = new ByteBuffer[Statistics.StatisticType.getTotalTypeNum()];
- statisticsArray[Statistics.StatisticType.min_value.ordinal()] = ByteBuffer
- .wrap(BytesUtils.stringToBytes(MIN_VALUE));
- statisticsArray[Statistics.StatisticType.max_value.ordinal()] = ByteBuffer
- .wrap(BytesUtils.stringToBytes(MAX_VALUE));
- statisticsArray[Statistics.StatisticType.first_value.ordinal()] = ByteBuffer
- .wrap(BytesUtils.stringToBytes(FIRST_VALUE));
- statisticsArray[Statistics.StatisticType.last_value.ordinal()] = ByteBuffer
- .wrap(BytesUtils.stringToBytes(LAST_VALUE));
- statisticsArray[Statistics.StatisticType.sum_value.ordinal()] = ByteBuffer
- .wrap(BytesUtils.stringToBytes(SUM_VALUE));
- digest.setStatistics(statisticsArray);
- return digest;
- }
-
- public static Statistics createNotCompleteSimpleTsDigest(TSDataType dataType) throws IOException {
- Statistics digest = Statistics.getStatsByType(dataType);
- ByteBuffer[] statisticsArray = new ByteBuffer[Statistics.StatisticType.getTotalTypeNum()];
- statisticsArray[Statistics.StatisticType.first_value.ordinal()] = ByteBuffer
- .wrap(BytesUtils.stringToBytes(FIRST_VALUE));
- statisticsArray[Statistics.StatisticType.last_value.ordinal()] = ByteBuffer
- .wrap(BytesUtils.stringToBytes(LAST_VALUE));
- statisticsArray[Statistics.StatisticType.sum_value.ordinal()] = ByteBuffer
- .wrap(BytesUtils.stringToBytes(SUM_VALUE));
- digest.setStatistics(statisticsArray);
- return digest;
- }
-
- public static List<String> getJSONArray() {
- List<String> jsonMetaData = new ArrayList<String>();
- jsonMetaData.add("fsdfsfsd");
- jsonMetaData.add("424fd");
- return jsonMetaData;
- }
public static PageHeader createSimplePageHeader() {
Statistics<?> statistics = Statistics.getStatsByType(PageHeaderTest.DATA_TYPE);
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/utils/Utils.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/utils/Utils.java
index e59d541..52afc3c 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/utils/Utils.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/file/metadata/utils/Utils.java
@@ -71,13 +71,13 @@ public class Utils {
}
}
- public static void isTwoTsDigestEqual(Statistics digestA, Statistics digestB, String name) {
- if ((digestA == null) ^ (digestB == null)) {
+ public static void isTwoTsDigestEqual(Statistics statisticsA, Statistics statisticsB, String name) {
+ if ((statisticsA == null) ^ (statisticsB == null)) {
System.out.println("error");
fail(String.format("one of %s is null", name));
}
- if (digestA != null) {
- Assert.assertEquals(digestA, digestB);
+ if (statisticsA != null) {
+ Assert.assertEquals(statisticsA, statisticsB);
}
}
@@ -118,9 +118,9 @@ public class Utils {
assertTrue(metadata1.getNumOfPoints() == metadata2.getNumOfPoints());
assertTrue(metadata1.getStartTime() == metadata2.getStartTime());
assertTrue(metadata1.getEndTime() == metadata2.getEndTime());
- assertNotNull(metadata1.getDigest());
- assertNotNull(metadata2.getDigest());
- Utils.isTwoTsDigestEqual(metadata1.getDigest(), metadata2.getDigest(), "TsDigest");
+ assertNotNull(metadata1.getStatistics());
+ assertNotNull(metadata2.getStatistics());
+ Utils.isTwoTsDigestEqual(metadata1.getStatistics(), metadata2.getStatistics(), "TsDigest");
}
}
diff --git a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/filter/DigestFilterTest.java b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/filter/DigestFilterTest.java
index 68b0f0e..5fb05ff 100644
--- a/tsfile/src/test/java/org/apache/iotdb/tsfile/read/filter/DigestFilterTest.java
+++ b/tsfile/src/test/java/org/apache/iotdb/tsfile/read/filter/DigestFilterTest.java
@@ -28,89 +28,89 @@ import org.junit.Test;
public class DigestFilterTest {
- private DigestForFilter digest1 = new DigestForFilter(1L, 100L, BytesUtils.intToBytes(1),
+ private StatisticsForFilter statistics1 = new StatisticsForFilter(1L, 100L, BytesUtils.intToBytes(1),
BytesUtils.intToBytes(100), TSDataType.INT32);
- private DigestForFilter digest2 = new DigestForFilter(101L, 200L, BytesUtils.intToBytes(101),
+ private StatisticsForFilter statistics2 = new StatisticsForFilter(101L, 200L, BytesUtils.intToBytes(101),
BytesUtils.intToBytes(200), TSDataType.INT32);
- private DigestForFilter digest3 = new DigestForFilter(101L, 200L, (ByteBuffer) null, null,
+ private StatisticsForFilter statistics3 = new StatisticsForFilter(101L, 200L, (ByteBuffer) null, null,
TSDataType.INT32);
@Test
public void testEq() {
Filter timeEq = TimeFilter.eq(10L);
- Assert.assertTrue(timeEq.satisfy(digest1));
- Assert.assertFalse(timeEq.satisfy(digest2));
- Assert.assertFalse(timeEq.satisfy(digest3));
+ Assert.assertTrue(timeEq.satisfy(statistics1));
+ Assert.assertFalse(timeEq.satisfy(statistics2));
+ Assert.assertFalse(timeEq.satisfy(statistics3));
Filter valueEq = ValueFilter.eq(100);
- Assert.assertTrue(valueEq.satisfy(digest1));
- Assert.assertFalse(valueEq.satisfy(digest2));
- Assert.assertTrue(valueEq.satisfy(digest3));
+ Assert.assertTrue(valueEq.satisfy(statistics1));
+ Assert.assertFalse(valueEq.satisfy(statistics2));
+ Assert.assertTrue(valueEq.satisfy(statistics3));
}
@Test
public void testGt() {
Filter timeGt = TimeFilter.gt(100L);
- Assert.assertFalse(timeGt.satisfy(digest1));
- Assert.assertTrue(timeGt.satisfy(digest2));
- Assert.assertTrue(timeGt.satisfy(digest3));
+ Assert.assertFalse(timeGt.satisfy(statistics1));
+ Assert.assertTrue(timeGt.satisfy(statistics2));
+ Assert.assertTrue(timeGt.satisfy(statistics3));
Filter valueGt = ValueFilter.gt(100);
- Assert.assertFalse(valueGt.satisfy(digest1));
- Assert.assertTrue(valueGt.satisfy(digest2));
- Assert.assertTrue(valueGt.satisfy(digest3));
+ Assert.assertFalse(valueGt.satisfy(statistics1));
+ Assert.assertTrue(valueGt.satisfy(statistics2));
+ Assert.assertTrue(valueGt.satisfy(statistics3));
}
@Test
public void testGtEq() {
Filter timeGtEq = TimeFilter.gtEq(100L);
- Assert.assertTrue(timeGtEq.satisfy(digest1));
- Assert.assertTrue(timeGtEq.satisfy(digest2));
- Assert.assertTrue(timeGtEq.satisfy(digest3));
+ Assert.assertTrue(timeGtEq.satisfy(statistics1));
+ Assert.assertTrue(timeGtEq.satisfy(statistics2));
+ Assert.assertTrue(timeGtEq.satisfy(statistics3));
Filter valueGtEq = ValueFilter.gtEq(100);
- Assert.assertTrue(valueGtEq.satisfy(digest1));
- Assert.assertTrue(valueGtEq.satisfy(digest3));
- Assert.assertTrue(valueGtEq.satisfy(digest3));
+ Assert.assertTrue(valueGtEq.satisfy(statistics1));
+ Assert.assertTrue(valueGtEq.satisfy(statistics3));
+ Assert.assertTrue(valueGtEq.satisfy(statistics3));
}
@Test
public void testLt() {
Filter timeLt = TimeFilter.lt(101L);
- Assert.assertTrue(timeLt.satisfy(digest1));
- Assert.assertFalse(timeLt.satisfy(digest2));
- Assert.assertFalse(timeLt.satisfy(digest3));
+ Assert.assertTrue(timeLt.satisfy(statistics1));
+ Assert.assertFalse(timeLt.satisfy(statistics2));
+ Assert.assertFalse(timeLt.satisfy(statistics3));
Filter valueLt = ValueFilter.lt(101);
- Assert.assertTrue(valueLt.satisfy(digest1));
- Assert.assertFalse(valueLt.satisfy(digest2));
- Assert.assertTrue(valueLt.satisfy(digest3));
+ Assert.assertTrue(valueLt.satisfy(statistics1));
+ Assert.assertFalse(valueLt.satisfy(statistics2));
+ Assert.assertTrue(valueLt.satisfy(statistics3));
}
@Test
public void testLtEq() {
Filter timeLtEq = TimeFilter.ltEq(101L);
- Assert.assertTrue(timeLtEq.satisfy(digest1));
- Assert.assertTrue(timeLtEq.satisfy(digest2));
- Assert.assertTrue(timeLtEq.satisfy(digest3));
+ Assert.assertTrue(timeLtEq.satisfy(statistics1));
+ Assert.assertTrue(timeLtEq.satisfy(statistics2));
+ Assert.assertTrue(timeLtEq.satisfy(statistics3));
Filter valueLtEq = ValueFilter.ltEq(101);
- Assert.assertTrue(valueLtEq.satisfy(digest1));
- Assert.assertTrue(valueLtEq.satisfy(digest2));
- Assert.assertTrue(valueLtEq.satisfy(digest3));
+ Assert.assertTrue(valueLtEq.satisfy(statistics1));
+ Assert.assertTrue(valueLtEq.satisfy(statistics2));
+ Assert.assertTrue(valueLtEq.satisfy(statistics3));
}
@Test
public void testAndOr() {
Filter andFilter = FilterFactory.and(TimeFilter.gt(10L), ValueFilter.lt(50));
- Assert.assertTrue(andFilter.satisfy(digest1));
- Assert.assertFalse(andFilter.satisfy(digest2));
- Assert.assertTrue(andFilter.satisfy(digest3));
+ Assert.assertTrue(andFilter.satisfy(statistics1));
+ Assert.assertFalse(andFilter.satisfy(statistics2));
+ Assert.assertTrue(andFilter.satisfy(statistics3));
Filter orFilter = FilterFactory.or(andFilter, TimeFilter.eq(200L));
- Assert.assertTrue(orFilter.satisfy(digest1));
- Assert.assertTrue(orFilter.satisfy(digest2));
- Assert.assertTrue(orFilter.satisfy(digest3));
+ Assert.assertTrue(orFilter.satisfy(statistics1));
+ Assert.assertTrue(orFilter.satisfy(statistics2));
+ Assert.assertTrue(orFilter.satisfy(statistics3));
}
}