This is an automated email from the ASF dual-hosted git repository. hui pushed a commit to branch lmh/FixIntoOperator1.0 in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit e3582f766d0e596c37247ba0e2dff961329c8ba1 Author: Minghui Liu <[email protected]> AuthorDate: Wed Nov 30 19:41:45 2022 +0800 add config --- docs/UserGuide/Reference/Common-Config-Manual.md | 9 +++++++++ docs/zh/UserGuide/Reference/Common-Config-Manual.md | 9 +++++++++ .../src/assembly/resources/conf/iotdb-common.properties | 4 ++++ .../main/java/org/apache/iotdb/db/conf/IoTDBConfig.java | 16 ++++++---------- .../java/org/apache/iotdb/db/conf/IoTDBDescriptor.java | 11 +++++------ .../mpp/execution/fragment/FragmentInstanceManager.java | 2 +- 6 files changed, 34 insertions(+), 17 deletions(-) diff --git a/docs/UserGuide/Reference/Common-Config-Manual.md b/docs/UserGuide/Reference/Common-Config-Manual.md index 504824ccdc..c75c4ac14e 100644 --- a/docs/UserGuide/Reference/Common-Config-Manual.md +++ b/docs/UserGuide/Reference/Common-Config-Manual.md @@ -1384,6 +1384,15 @@ Different configuration parameters take effect in the following three ways: | Default | 10000 | | Effective | hot-load | +* into\_operation\_execution\_thread\_count + +| Name | into\_operation\_execution\_thread\_count | +| :---------: | :------------------------------------------------------------ | +| Description | The number of threads in the thread pool that execute insert-tablet tasks | +| Type | int32 | +| Default | 2 | +| Effective | After restarting system | + ### Continuous Query * continuous\_query\_execution\_thread diff --git a/docs/zh/UserGuide/Reference/Common-Config-Manual.md b/docs/zh/UserGuide/Reference/Common-Config-Manual.md index 3fa5556310..e842f67bef 100644 --- a/docs/zh/UserGuide/Reference/Common-Config-Manual.md +++ b/docs/zh/UserGuide/Reference/Common-Config-Manual.md @@ -1428,6 +1428,15 @@ IoTDB ConfigNode 和 DataNode 的公共配置参数位于 `conf` 目录下。 | 默认值 | 10000 | | 改后生效方式 | 热加载 | +* into\_operation\_execution\_thread\_count + +| 名字 | into\_operation\_execution\_thread\_count | +| :---------: | :---------------------------------------- | +| 描述 | SELECT INTO 中执行写入任务的线程池的线程数 | +| 类型 | int32 | +| 默认值 | 2 | +| 改后生效方式 | 重启服务生效 | + ### 连续查询配置 * continuous\_query\_submit\_thread\_count diff --git a/node-commons/src/assembly/resources/conf/iotdb-common.properties b/node-commons/src/assembly/resources/conf/iotdb-common.properties index 930ab46ba2..b6689c3c1d 100644 --- a/node-commons/src/assembly/resources/conf/iotdb-common.properties +++ b/node-commons/src/assembly/resources/conf/iotdb-common.properties @@ -877,6 +877,10 @@ # Datatype: int # select_into_insert_tablet_plan_row_limit=10000 +# The number of threads in the thread pool that execute insert-tablet tasks +# Datatype: int +# into_operation_execution_thread_count=2 + #################### ### Continuous Query 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 92abf21537..99dcf1b865 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 @@ -685,12 +685,8 @@ public class IoTDBConfig { */ private int selectIntoInsertTabletPlanRowLimit = 10000; - /** - * How many thread will be set up to execute into operation. When <= 0, use max(1, CPU core number - * / 2). - */ - private int intoOperationSubmitThreadCount = - Math.max(1, Runtime.getRuntime().availableProcessors() / 2); + /** The number of threads in the thread pool that execute insert-tablet tasks. */ + private int intoOperationExecutionThreadCount = 2; /** Default TSfile storage is in local file system */ private FSType tsFileStorageFs = FSType.LOCAL; @@ -1909,12 +1905,12 @@ public class IoTDBConfig { return selectIntoInsertTabletPlanRowLimit; } - public int getIntoOperationSubmitThreadCount() { - return intoOperationSubmitThreadCount; + public int getIntoOperationExecutionThreadCount() { + return intoOperationExecutionThreadCount; } - public void setIntoOperationSubmitThreadCount(int intoOperationSubmitThreadCount) { - this.intoOperationSubmitThreadCount = intoOperationSubmitThreadCount; + public void setIntoOperationExecutionThreadCount(int intoOperationExecutionThreadCount) { + this.intoOperationExecutionThreadCount = intoOperationExecutionThreadCount; } public int getCompactionWriteThroughputMbPerSec() { 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 9bab834045..7a25d6d21f 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 @@ -903,14 +903,13 @@ public class IoTDBDescriptor { properties.getProperty( "select_into_insert_tablet_plan_row_limit", String.valueOf(conf.getSelectIntoInsertTabletPlanRowLimit())))); - conf.setIntoOperationSubmitThreadCount( + conf.setIntoOperationExecutionThreadCount( Integer.parseInt( properties.getProperty( - "into_operation_submit_thread_count", - String.valueOf(conf.getIntoOperationSubmitThreadCount())))); - if (conf.getIntoOperationSubmitThreadCount() <= 0) { - conf.setIntoOperationSubmitThreadCount( - Math.max(1, Runtime.getRuntime().availableProcessors() / 2)); + "into_operation_execution_thread_count", + String.valueOf(conf.getIntoOperationExecutionThreadCount())))); + if (conf.getIntoOperationExecutionThreadCount() <= 0) { + conf.setIntoOperationExecutionThreadCount(2); } conf.setExtPipeDir(properties.getProperty("ext_pipe_dir", conf.getExtPipeDir()).trim()); diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/execution/fragment/FragmentInstanceManager.java b/server/src/main/java/org/apache/iotdb/db/mpp/execution/fragment/FragmentInstanceManager.java index 5114d2dcbb..1bc2444bb1 100644 --- a/server/src/main/java/org/apache/iotdb/db/mpp/execution/fragment/FragmentInstanceManager.java +++ b/server/src/main/java/org/apache/iotdb/db/mpp/execution/fragment/FragmentInstanceManager.java @@ -83,7 +83,7 @@ public class FragmentInstanceManager { IoTDBThreadPoolFactory.newFixedThreadPool(4, "instance-notification"); this.intoOperationExecutor = IoTDBThreadPoolFactory.newFixedThreadPool( - IoTDBDescriptor.getInstance().getConfig().getIntoOperationSubmitThreadCount(), + IoTDBDescriptor.getInstance().getConfig().getIntoOperationExecutionThreadCount(), "into-operation-executor"); this.infoCacheTime = new Duration(5, TimeUnit.MINUTES);
