You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ro...@apache.org on 2021/11/25 14:23:25 UTC
[iotdb] branch rel/0.12 updated: [IOTDB-2061] Add max concurrent sub query parameter (#4469)
This is an automated email from the ASF dual-hosted git repository.
rong pushed a commit to branch rel/0.12
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/rel/0.12 by this push:
new 9d89fa8 [IOTDB-2061] Add max concurrent sub query parameter (#4469)
9d89fa8 is described below
commit 9d89fa8c31b2192d77dd94e101774a7a87a367c7
Author: Jialin Qiao <qj...@mails.tsinghua.edu.cn>
AuthorDate: Thu Nov 25 08:22:58 2021 -0600
[IOTDB-2061] Add max concurrent sub query parameter (#4469)
---
server/src/assembly/resources/conf/iotdb-engine.properties | 9 ++++++---
server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java | 10 ++++++++++
.../main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java | 5 +++++
.../org/apache/iotdb/db/query/pool/QueryTaskPoolManager.java | 5 ++++-
4 files changed, 25 insertions(+), 4 deletions(-)
diff --git a/server/src/assembly/resources/conf/iotdb-engine.properties b/server/src/assembly/resources/conf/iotdb-engine.properties
index bf3026d..8ec7f17 100644
--- a/server/src/assembly/resources/conf/iotdb-engine.properties
+++ b/server/src/assembly/resources/conf/iotdb-engine.properties
@@ -357,6 +357,12 @@ timestamp_precision=ms
# the default time period that used in fill query, -1 by default means infinite past time, in ms
# default_fill_interval=-1
+# The max executing time of query. unit: ms
+# query_timeout_threshold=60000
+
+# The max number of sub query thread
+# max_concurrent_sub_query=8
+
####################
### Merge Configurations
####################
@@ -446,9 +452,6 @@ timestamp_precision=ms
# The limit of write throughput merge can reach per second
# merge_write_throughput_mb_per_sec=8
-# The max executing time of query. unit: ms
-# query_timeout_threshold=60000
-
####################
### 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 f5845c5..76f9a67 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
@@ -122,6 +122,8 @@ public class IoTDBConfig {
private volatile int maxQueryDeduplicatedPathNum = 1000;
+ private int maxConcurrentSubQuery = 8;
+
/** Ratio of memory allocated for buffered arrays */
private double bufferedArraysMemoryProportion = 0.6;
@@ -755,6 +757,14 @@ public class IoTDBConfig {
return concurrentWritingTimePartition;
}
+ public int getMaxConcurrentSubQuery() {
+ return maxConcurrentSubQuery;
+ }
+
+ public void setMaxConcurrentSubQuery(int maxConcurrentSubQuery) {
+ this.maxConcurrentSubQuery = maxConcurrentSubQuery;
+ }
+
public int getDefaultFillInterval() {
return defaultFillInterval;
}
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 8df773d..4277cbc 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
@@ -165,6 +165,11 @@ public class IoTDBDescriptor {
Integer.parseInt(
properties.getProperty("rpc_port", Integer.toString(conf.getRpcPort()))));
+ conf.setMaxConcurrentSubQuery(
+ Integer.parseInt(
+ properties.getProperty(
+ "max_concurrent_sub_query", Integer.toString(conf.getMaxConcurrentSubQuery()))));
+
conf.setTimestampPrecision(
properties.getProperty("timestamp_precision", conf.getTimestampPrecision()));
diff --git a/server/src/main/java/org/apache/iotdb/db/query/pool/QueryTaskPoolManager.java b/server/src/main/java/org/apache/iotdb/db/query/pool/QueryTaskPoolManager.java
index 0025ef7..8da36e7 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/pool/QueryTaskPoolManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/pool/QueryTaskPoolManager.java
@@ -32,7 +32,10 @@ public class QueryTaskPoolManager extends AbstractPoolManager {
private static final Logger LOGGER = LoggerFactory.getLogger(QueryTaskPoolManager.class);
private QueryTaskPoolManager() {
- int threadCnt = IoTDBDescriptor.getInstance().getConfig().getConcurrentQueryThread();
+ int threadCnt =
+ Math.min(
+ IoTDBDescriptor.getInstance().getConfig().getMaxConcurrentSubQuery(),
+ IoTDBDescriptor.getInstance().getConfig().getConcurrentQueryThread());
pool = IoTDBThreadPoolFactory.newFixedThreadPool(threadCnt, ThreadName.QUERY_SERVICE.getName());
}