You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by le...@apache.org on 2023/07/09 17:17:49 UTC
[iotdb] 23/46: add config use_Statistics
This is an automated email from the ASF dual-hosted git repository.
leirui pushed a commit to branch research/M4-visualization
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 4dbc88e3f27524c4354d2f828ecb51dabdec66e1
Author: Lei Rui <10...@qq.com>
AuthorDate: Sun Jun 18 16:36:33 2023 +0800
add config use_Statistics
---
server/src/assembly/resources/conf/iotdb-engine.properties | 2 ++
.../main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java | 8 ++++++++
.../iotdb/db/query/reader/series/SeriesAggregateReader.java | 10 ++++++++++
.../java/org/apache/iotdb/tsfile/common/conf/TSFileConfig.java | 10 ++++++++++
.../org/apache/iotdb/tsfile/common/conf/TSFileDescriptor.java | 3 +++
5 files changed, 33 insertions(+)
diff --git a/server/src/assembly/resources/conf/iotdb-engine.properties b/server/src/assembly/resources/conf/iotdb-engine.properties
index 31cfbba9fb5..28ca06a1e62 100644
--- a/server/src/assembly/resources/conf/iotdb-engine.properties
+++ b/server/src/assembly/resources/conf/iotdb-engine.properties
@@ -606,6 +606,8 @@ enable_unseq_compaction=false
### Configurations for tsfile-format
####################
+use_Statistics=true
+
use_ChunkIndex=true
use_Mad=false
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
index ba2b9667c79..04da72c848a 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
@@ -896,6 +896,14 @@ public class IoTDBDescriptor {
}
private void loadTsFileProps(Properties properties) {
+ TSFileDescriptor.getInstance()
+ .getConfig()
+ .setUseStatistics(
+ Boolean.parseBoolean(
+ properties.getProperty(
+ "use_Statistics",
+ Boolean.toString(
+ TSFileDescriptor.getInstance().getConfig().isUseStatistics()))));
TSFileDescriptor.getInstance()
.getConfig()
.setUseChunkIndex(
diff --git a/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesAggregateReader.java b/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesAggregateReader.java
index 5f30838bf16..0e7b84f710a 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesAggregateReader.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/reader/series/SeriesAggregateReader.java
@@ -24,6 +24,7 @@ import org.apache.iotdb.db.metadata.PartialPath;
import org.apache.iotdb.db.query.context.QueryContext;
import org.apache.iotdb.db.query.filter.TsFileFilter;
import org.apache.iotdb.db.utils.TestOnly;
+import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import org.apache.iotdb.tsfile.file.metadata.statistics.Statistics;
import org.apache.iotdb.tsfile.read.common.BatchData;
@@ -96,6 +97,9 @@ public class SeriesAggregateReader implements IAggregateReader {
@Override
public boolean canUseCurrentFileStatistics() throws IOException {
+ if (!TSFileDescriptor.getInstance().getConfig().isUseStatistics()) {
+ return false;
+ }
Statistics fileStatistics = currentFileStatistics();
return !seriesReader.isFileOverlapped()
&& containedByTimeFilter(fileStatistics)
@@ -119,6 +123,9 @@ public class SeriesAggregateReader implements IAggregateReader {
@Override
public boolean canUseCurrentChunkStatistics() throws IOException {
+ if (!TSFileDescriptor.getInstance().getConfig().isUseStatistics()) {
+ return false;
+ }
Statistics chunkStatistics = currentChunkStatistics();
return !seriesReader.isChunkOverlapped()
&& containedByTimeFilter(chunkStatistics)
@@ -142,6 +149,9 @@ public class SeriesAggregateReader implements IAggregateReader {
@Override
public boolean canUseCurrentPageStatistics() throws IOException {
+ if (!TSFileDescriptor.getInstance().getConfig().isUseStatistics()) {
+ return false;
+ }
Statistics currentPageStatistics = currentPageStatistics();
if (currentPageStatistics == null) {
return false;
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileConfig.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileConfig.java
index b7ba5a57d53..65cc33c8c6e 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileConfig.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileConfig.java
@@ -27,6 +27,8 @@ import java.nio.charset.Charset;
/** TSFileConfig is a configure class. Every variables is public and has default value. */
public class TSFileConfig implements Serializable {
+ private boolean useStatistics = true;
+
private boolean useChunkIndex = true;
private boolean useMad = false;
@@ -151,6 +153,14 @@ public class TSFileConfig implements Serializable {
public TSFileConfig() {}
+ public boolean isUseStatistics() {
+ return useStatistics;
+ }
+
+ public void setUseStatistics(boolean useStatistics) {
+ this.useStatistics = useStatistics;
+ }
+
public boolean isUseChunkIndex() {
return useChunkIndex;
}
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileDescriptor.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileDescriptor.java
index 403b40b606e..c287ad85d57 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileDescriptor.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/common/conf/TSFileDescriptor.java
@@ -105,6 +105,9 @@ public class TSFileDescriptor {
Properties properties = new Properties();
try {
properties.load(inputStream);
+ conf.setUseStatistics(
+ Boolean.parseBoolean(
+ properties.getProperty("use_Statistics", Boolean.toString(conf.isUseStatistics()))));
conf.setUseChunkIndex(
Boolean.parseBoolean(
properties.getProperty("use_ChunkIndex", Boolean.toString(conf.isUseChunkIndex()))));