This is an automated email from the ASF dual-hosted git repository.
ejttianyu pushed a commit to branch hitter_compaction_mto_master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/hitter_compaction_mto_master
by this push:
new 3106d47 add hitter config
3106d47 is described below
commit 3106d476c8885fe365713abba984080c864694ed
Author: EJTTianyu <[email protected]>
AuthorDate: Wed Apr 28 17:47:30 2021 +0800
add hitter config
---
.../assembly/resources/conf/iotdb-engine.properties | 20 ++++++++++++++++++++
.../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 13 ++++++++++++-
.../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 21 +++++++++++++++++++++
3 files changed, 53 insertions(+), 1 deletion(-)
diff --git a/server/src/assembly/resources/conf/iotdb-engine.properties
b/server/src/assembly/resources/conf/iotdb-engine.properties
index cf4da38..425fbbb 100644
--- a/server/src/assembly/resources/conf/iotdb-engine.properties
+++ b/server/src/assembly/resources/conf/iotdb-engine.properties
@@ -456,6 +456,26 @@ timestamp_precision=ms
# query_timeout_threshold=60000
####################
+### Hitter Merge Configurations
+####################
+
+# Query hitter strategy
+# Datatype: QueryHitterStrategy
+# query_hitter_strategy=DEFAULT_STRATEGY
+
+# Max query paths hitter contains
+# Datatype: int
+# max_hitter_num=5000
+
+# Size ratio of the hitter level merge
+# Datatype: int
+# size_ratio=2
+
+# Counter ratio of the query hitter
+# Datatype: int
+# counter_ratio=2
+
+####################
### Metadata Cache Configuration
####################
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
index bd3ea59..4beb02d 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
@@ -319,12 +319,15 @@ public class IoTDBConfig {
/** Query hitter strategy */
private QueryHitterStrategy queryHitterStrategy =
QueryHitterStrategy.DEFAULT_STRATEGY;
- /** max query path hitter contains */
+ /** max query paths hitter contains */
private int maxHitterNum = 5000;
/** size ratio of the hitter level merge */
private int sizeRatio = 2;
+ /** Counter ratio of the query hitter */
+ private int counterRatio = 2;
+
/**
* Works when the compaction_strategy is LEVEL_COMPACTION. Whether to merge
unseq files into seq
* files or not.
@@ -1501,6 +1504,14 @@ public class IoTDBConfig {
this.sizeRatio = sizeRatio;
}
+ public int getCounterRatio() {
+ return counterRatio;
+ }
+
+ public void setCounterRatio(int counterRatio) {
+ this.counterRatio = counterRatio;
+ }
+
public boolean isEnableUnseqCompaction() {
return enableUnseqCompaction;
}
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 988f865..7b59d4c 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
@@ -20,6 +20,7 @@ package org.apache.iotdb.db.conf;
import org.apache.iotdb.db.conf.directories.DirectoryManager;
import org.apache.iotdb.db.engine.compaction.CompactionStrategy;
+import org.apache.iotdb.db.engine.compaction.heavyhitter.QueryHitterStrategy;
import org.apache.iotdb.db.exception.query.QueryProcessException;
import org.apache.iotdb.db.utils.FilePathUtils;
import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
@@ -342,6 +343,26 @@ public class IoTDBDescriptor {
"unseq_file_num_in_each_level",
Integer.toString(conf.getUnseqFileNumInEachLevel()))));
+ conf.setQueryHitterStrategy(
+ QueryHitterStrategy.valueOf(
+ properties.getProperty("query_hitter_strategy",
+ conf.getQueryHitterStrategy().toString())));
+
+ conf.setMaxHitterNum(
+ Integer.parseInt(
+ properties.getProperty("max_hitter_num",
+ Integer.toString(conf.getMaxHitterNum()))));
+
+ conf.setSizeRatio(
+ Integer.parseInt(
+ properties.getProperty("size_ratio",
+ Integer.toString(conf.getSizeRatio()))));
+
+ conf.setCounterRatio(
+ Integer.parseInt(
+ properties.getProperty("counter_ratio",
+ Integer.toString(conf.getCounterRatio()))));
+
conf.setQueryTimeoutThreshold(
Integer.parseInt(
properties.getProperty(