This is an automated email from the ASF dual-hosted git repository.
xiangweiwei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 098093a [IOTDB-2061] Add more comments to env.sh/bat (#4495)
098093a is described below
commit 098093a57decc3441eae2fc7964c8934df6aced8
Author: Xiangwei Wei <[email protected]>
AuthorDate: Mon Nov 29 17:29:57 2021 +0800
[IOTDB-2061] Add more comments to env.sh/bat (#4495)
---
server/src/assembly/resources/conf/iotdb-engine.properties | 7 ++++---
server/src/assembly/resources/conf/iotdb-env.bat | 8 ++++++--
server/src/assembly/resources/conf/iotdb-env.sh | 10 +++++++---
.../src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java | 12 ++++++------
.../main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java | 9 ++++++---
.../org/apache/iotdb/db/query/pool/QueryTaskPoolManager.java | 4 ++--
6 files changed, 31 insertions(+), 19 deletions(-)
diff --git a/server/src/assembly/resources/conf/iotdb-engine.properties
b/server/src/assembly/resources/conf/iotdb-engine.properties
index aad2f9d..bbcbc64 100644
--- a/server/src/assembly/resources/conf/iotdb-engine.properties
+++ b/server/src/assembly/resources/conf/iotdb-engine.properties
@@ -284,6 +284,10 @@ timestamp_precision=ms
# Datatype: int
# concurrent_flush_thread=0
+# How many threads can concurrently query. When <= 0, use CPU core number.
+# Datatype: int
+# concurrent_query_thread=8
+
# whether take over the memory management by IoTDB rather than JVM when
serializing memtable as bytes in memory
# (i.e., whether use ChunkBufferPool), value true, false
# Datatype: boolean
@@ -526,9 +530,6 @@ timestamp_precision=ms
# Datatype: int
# query_timeout_threshold=60000
-# The max number of sub query thread
-# max_concurrent_sub_query_thread=8
-
####################
### Metadata Cache Configuration
####################
diff --git a/server/src/assembly/resources/conf/iotdb-env.bat
b/server/src/assembly/resources/conf/iotdb-env.bat
index 72a1237..c3000f0 100644
--- a/server/src/assembly/resources/conf/iotdb-env.bat
+++ b/server/src/assembly/resources/conf/iotdb-env.bat
@@ -103,9 +103,13 @@ for /f "tokens=1-3" %%j in ('java -version 2^>^&1') do (
@REM maximum direct memory size
set MAX_DIRECT_MEMORY_SIZE=%MAX_HEAP_SIZE%
+@REM threads number that may use direct memory, including query threads(8) +
merge threads(4) + space left for system(4)
+set threads_number=16
+@REM the size of buffer cache pool(IOV_MAX) depends on operating system
+set temp_buffer_pool_size=1024
@REM Max cached buffer size, Note: unit can only be B!
-@REM which equals DIRECT_MEMORY_SIZE / threads number that may use direct
memory / buffer cache size(IOV_MAX) depends on operating system
-set MAX_DIRECT_MEMORY_SIZE=%max_heap_size_in_mb% * 1024 * 1024 / 16 / 1024
+@REM which equals DIRECT_MEMORY_SIZE / threads_number / temp_buffer_pool_size
+set MAX_CACHED_BUFFER_SIZE=%max_heap_size_in_mb% * 1024 * 1024 /
%threads_number% / %temp_buffer_pool_size%
set IOTDB_HEAP_OPTS=-Xmx%MAX_HEAP_SIZE% -Xms%HEAP_NEWSIZE% -Xlog:gc:"..\gc.log"
set IOTDB_HEAP_OPTS=%IOTDB_HEAP_OPTS%
-XX:MaxDirectMemorySize=%MAX_DIRECT_MEMORY_SIZE%
diff --git a/server/src/assembly/resources/conf/iotdb-env.sh
b/server/src/assembly/resources/conf/iotdb-env.sh
index 954c1ee..342ec15 100755
--- a/server/src/assembly/resources/conf/iotdb-env.sh
+++ b/server/src/assembly/resources/conf/iotdb-env.sh
@@ -207,10 +207,14 @@ calculate_heap_sizes
#HEAP_NEWSIZE="2G"
# Maximum direct memory size
MAX_DIRECT_MEMORY_SIZE=${MAX_HEAP_SIZE}
+
+# threads number that may use direct memory, including query threads(8) +
merge threads(4) + space left for system(4)
+threads_number="16"
+# the size of buffer cache pool(IOV_MAX) depends on operating system
+temp_buffer_pool_size="1024"
# Max cached buffer size, Note: unit can only be B!
-# which equals DIRECT_MEMORY_SIZE / threads number that may use direct memory
/ buffer cache size(IOV_MAX) depends on operating system
-MAX_CACHED_BUFFER_SIZE=`expr $max_heap_size_in_mb \* 1024 \* 1024 / 16 / 1024`
-echo $MAX_CACHED_BUFFER_SIZE
+# which equals DIRECT_MEMORY_SIZE / threads_number / temp_buffer_pool_size
+MAX_CACHED_BUFFER_SIZE=`expr $max_heap_size_in_mb \* 1024 \* 1024 /
$threads_number / $temp_buffer_pool_size`
#true or false
#DO NOT FORGET TO MODIFY THE PASSWORD FOR SECURITY (${IOTDB_CONF}/jmx.password
and ${IOTDB_CONF}/jmx.access)
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 0ef9fbe..d234205 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
@@ -252,8 +252,8 @@ public class IoTDBConfig {
/** How many threads can concurrently flush. When <= 0, use CPU core number.
*/
private int concurrentFlushThread =
Runtime.getRuntime().availableProcessors();
- /** How many threads can concurrently query. */
- private int maxConcurrentSubQueryThread = 8;
+ /** How many threads can concurrently query. When <= 0, use CPU core number.
*/
+ private int concurrentQueryThread = 8;
/** How many threads can concurrently evaluate windows. When <= 0, use CPU
core number. */
private int concurrentWindowEvaluationThread =
Runtime.getRuntime().availableProcessors();
@@ -1159,12 +1159,12 @@ public class IoTDBConfig {
this.concurrentFlushThread = concurrentFlushThread;
}
- public int getMaxConcurrentSubQueryThread() {
- return maxConcurrentSubQueryThread;
+ public int getConcurrentQueryThread() {
+ return concurrentQueryThread;
}
- void setMaxConcurrentSubQueryThread(int maxConcurrentSubQueryThread) {
- this.maxConcurrentSubQueryThread = maxConcurrentSubQueryThread;
+ void setConcurrentQueryThread(int concurrentQueryThread) {
+ this.concurrentQueryThread = concurrentQueryThread;
}
public int getConcurrentWindowEvaluationThread() {
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 84f8051..17deb09 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
@@ -440,11 +440,14 @@ public class IoTDBDescriptor {
"index_buffer_size",
Long.toString(conf.getIndexBufferSize()))));
// end: index parameter setting
- conf.setMaxConcurrentSubQueryThread(
+ conf.setConcurrentQueryThread(
Integer.parseInt(
properties.getProperty(
- "max_concurrent_sub_query_thread",
- Integer.toString(conf.getMaxConcurrentSubQueryThread()))));
+ "concurrent_query_thread",
Integer.toString(conf.getConcurrentQueryThread()))));
+
+ if (conf.getConcurrentQueryThread() <= 0) {
+
conf.setConcurrentQueryThread(Runtime.getRuntime().availableProcessors());
+ }
conf.setmManagerCacheSize(
Integer.parseInt(
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 41f662c..62bb89d 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
@@ -35,7 +35,7 @@ public class QueryTaskPoolManager extends AbstractPoolManager
{
int threadCnt =
Math.min(
Runtime.getRuntime().availableProcessors(),
-
IoTDBDescriptor.getInstance().getConfig().getMaxConcurrentSubQueryThread());
+
IoTDBDescriptor.getInstance().getConfig().getConcurrentQueryThread());
pool = IoTDBThreadPoolFactory.newFixedThreadPool(threadCnt,
ThreadName.QUERY_SERVICE.getName());
}
@@ -59,7 +59,7 @@ public class QueryTaskPoolManager extends AbstractPoolManager
{
int threadCnt =
Math.min(
Runtime.getRuntime().availableProcessors(),
-
IoTDBDescriptor.getInstance().getConfig().getMaxConcurrentSubQueryThread());
+
IoTDBDescriptor.getInstance().getConfig().getConcurrentQueryThread());
pool =
IoTDBThreadPoolFactory.newFixedThreadPool(threadCnt,
ThreadName.QUERY_SERVICE.getName());
}