You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by yo...@apache.org on 2023/01/12 04:27:18 UTC

[iotdb] branch Move-ConfigNodeConfig-into-CommonConfig updated (1611727710 -> 388a412f32)

This is an automated email from the ASF dual-hosted git repository.

yongzao pushed a change to branch Move-ConfigNodeConfig-into-CommonConfig
in repository https://gitbox.apache.org/repos/asf/iotdb.git


    from 1611727710 Merge branch 'master' into Move-ConfigNodeConfig-into-CommonConfig
     new dffad5f7c7 stash
     new 388a412f32 stash

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../iotdb/confignode/conf/ConfigNodeConfig.java    |   61 +-
 .../confignode/conf/ConfigNodeDescriptor.java      |  400 +----
 .../confignode/conf/ConfigNodeRemoveCheck.java     |    2 +-
 .../confignode/conf/ConfigNodeStartupCheck.java    |    4 +-
 .../confignode/conf/SystemPropertiesUtils.java     |    2 +-
 .../statemachine/ConfigNodeRegionStateMachine.java |    2 +-
 .../iotdb/confignode/manager/ConsensusManager.java |    2 +-
 integration-test/import-control.xml                |    2 +-
 .../apache/iotdb/db/it/IoTDBRecoverUnclosedIT.java |    2 +-
 .../db/integration/sync/IoTDBSyncReceiverIT.java   |    2 +-
 .../sync/IoTDBSyncReceiverLoaderIT.java            |    2 +-
 .../resources/conf/iotdb-common.properties         |   16 +-
 .../apache/iotdb/commons/conf/CommonConfig.java    | 1529 ++++++++++++++++++-
 .../iotdb/commons/conf/CommonDescriptor.java       | 1602 ++++++++++++++++++--
 .../org/apache/iotdb/commons/utils/AuthUtils.java  |   12 +-
 .../utils/datastructure/TVListSortAlgorithm.java   |    2 +-
 .../org/apache/iotdb/commons/wal}/WALMode.java     |    2 +-
 .../rocksdb/RSchemaReadWriteHandler.java           |    2 +-
 .../resources/conf/iotdb-datanode.properties       |    4 +-
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 1172 +++-----------
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  | 1520 ++++---------------
 .../org/apache/iotdb/db/conf/IoTDBStartCheck.java  |   25 +-
 .../iotdb/db/conf/adapter/CompressionRatio.java    |    2 +-
 .../db/conf/directories/DirectoryManager.java      |   16 +-
 .../db/consensus/DataRegionConsensusImpl.java      |    2 +-
 .../db/consensus/SchemaRegionConsensusImpl.java    |    2 +-
 .../org/apache/iotdb/db/engine/StorageEngine.java  |    4 +-
 .../execute/recover/CompactionRecoverTask.java     |    2 +-
 .../execute/utils/log/TsFileIdentifier.java        |    2 +-
 .../apache/iotdb/db/engine/settle/SettleLog.java   |    2 +-
 .../iotdb/db/engine/snapshot/SnapshotLoader.java   |   10 +-
 .../iotdb/db/engine/snapshot/SnapshotTaker.java    |    2 +-
 .../iotdb/db/engine/storagegroup/DataRegion.java   |    2 +-
 .../apache/iotdb/db/engine/upgrade/UpgradeLog.java |    3 +-
 .../iotdb/db/metadata/idtable/IDTableManager.java  |    2 +-
 .../iotdb/db/mpp/common/DataNodeEndPoints.java     |    8 +-
 .../execution/exchange/MPPDataExchangeService.java |    4 +-
 .../plan/node/load/LoadSingleTsFileNode.java       |    4 +-
 .../scheduler/AbstractFragInsStateTracker.java     |    4 +-
 .../scheduler/FragmentInstanceDispatcherImpl.java  |    4 +-
 .../scheduler/load/LoadTsFileDispatcherImpl.java   |    4 +-
 .../iotdb/db/rescon/PrimitiveArrayManager.java     |    2 +-
 .../java/org/apache/iotdb/db/service/DataNode.java |   22 +-
 .../db/service/DataNodeInternalRPCService.java     |    4 +-
 .../iotdb/db/service/InfluxDBRPCService.java       |    4 +-
 .../org/apache/iotdb/db/service/RPCService.java    |    8 +-
 .../db/service/TemporaryQueryDataFileService.java  |    2 +-
 .../iotdb/db/service/metrics/SystemMetrics.java    |    2 +-
 .../org/apache/iotdb/db/utils/OpenFileNumUtil.java |    2 +-
 .../java/org/apache/iotdb/db/wal/WALManager.java   |    2 +-
 .../apache/iotdb/db/wal/buffer/WALInfoEntry.java   |    2 +-
 .../db/conf/adapter/CompressionRatioTest.java      |    3 +-
 .../db/engine/compaction/TsFileIdentifierUT.java   |    4 +-
 .../recover/SizeTieredCompactionRecoverTest.java   |    2 +-
 .../db/engine/snapshot/IoTDBSnapshotTest.java      |   22 +-
 .../iotdb/db/engine/storagegroup/TTLTest.java      |    2 +-
 .../db/mpp/execution/exchange/SinkHandleTest.java  |   12 +-
 .../mpp/execution/exchange/SourceHandleTest.java   |   15 +-
 .../security/encrypt/MessageDigestEncryptTest.java |    2 +-
 .../DataNodeInternalRPCServiceImplTest.java        |   13 +-
 .../apache/iotdb/db/utils/EnvironmentUtils.java    |   12 +-
 .../org/apache/iotdb/db/wal/DisableWALTest.java    |    2 +-
 .../iotdb/db/wal/node/ConsensusReqReaderTest.java  |    2 +-
 .../org/apache/iotdb/db/wal/node/WALNodeTest.java  |    2 +-
 .../db/wal/recover/WALRecoverManagerTest.java      |    2 +-
 .../iotdb/tsfile/common/conf/TSFileConfig.java     |   33 +-
 .../iotdb/tsfile/common/conf/TSFileDescriptor.java |    2 -
 .../tsfile/file/metadata/enums/TSEncoding.java     |   29 +
 68 files changed, 3601 insertions(+), 3054 deletions(-)
 rename {server/src/main/java/org/apache/iotdb/db => node-commons/src/main/java/org/apache/iotdb/commons}/utils/datastructure/TVListSortAlgorithm.java (94%)
 rename {server/src/main/java/org/apache/iotdb/db/wal/utils => node-commons/src/main/java/org/apache/iotdb/commons/wal}/WALMode.java (96%)


[iotdb] 02/02: stash

Posted by yo...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

yongzao pushed a commit to branch Move-ConfigNodeConfig-into-CommonConfig
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 388a412f32c036d7dc698a44b49116a0d4c6e390
Author: YongzaoDan <53...@qq.com>
AuthorDate: Thu Jan 12 12:27:07 2023 +0800

    stash
---
 .../confignode/conf/ConfigNodeDescriptor.java      |  394 -------
 integration-test/import-control.xml                |    2 +-
 .../apache/iotdb/db/it/IoTDBRecoverUnclosedIT.java |    2 +-
 .../resources/conf/iotdb-common.properties         |    2 +-
 .../apache/iotdb/commons/conf/CommonConfig.java    |  815 +++++++++++++-
 .../iotdb/commons/conf/CommonDescriptor.java       | 1140 +++++++++++++++++++-
 .../org/apache/iotdb/commons/utils/AuthUtils.java  |   12 +-
 .../org/apache/iotdb/commons/wal}/WALMode.java     |    2 +-
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java |  452 +-------
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  |  732 +------------
 .../org/apache/iotdb/db/conf/IoTDBStartCheck.java  |    2 +-
 .../iotdb/db/engine/storagegroup/DataRegion.java   |    2 +-
 .../java/org/apache/iotdb/db/service/DataNode.java |    2 +-
 .../java/org/apache/iotdb/db/wal/WALManager.java   |    2 +-
 .../apache/iotdb/db/wal/buffer/WALInfoEntry.java   |    2 +-
 .../security/encrypt/MessageDigestEncryptTest.java |    2 +-
 .../org/apache/iotdb/db/wal/DisableWALTest.java    |    2 +-
 .../iotdb/db/wal/node/ConsensusReqReaderTest.java  |    2 +-
 .../org/apache/iotdb/db/wal/node/WALNodeTest.java  |    2 +-
 .../db/wal/recover/WALRecoverManagerTest.java      |    2 +-
 .../iotdb/tsfile/common/conf/TSFileConfig.java     |   27 +-
 .../iotdb/tsfile/common/conf/TSFileDescriptor.java |    2 -
 .../tsfile/file/metadata/enums/TSEncoding.java     |   29 +
 23 files changed, 1953 insertions(+), 1678 deletions(-)

diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
index c9b8db9357..57da28b69c 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
@@ -219,400 +219,6 @@ public class ConfigNodeDescriptor {
               "Unknown route_priority_policy: %s, please set to \"LEADER\" or \"GREEDY\"",
               routePriorityPolicy));
     }
-
-    CONF.setProcedureCompletedEvictTTL(
-        Integer.parseInt(
-            properties
-                .getProperty(
-                    "procedure_completed_evict_ttl",
-                    String.valueOf(CONF.getProcedureCompletedEvictTTL()))
-                .trim()));
-
-    CONF.setProcedureCompletedCleanInterval(
-        Integer.parseInt(
-            properties
-                .getProperty(
-                    "procedure_completed_clean_interval",
-                    String.valueOf(CONF.getProcedureCompletedCleanInterval()))
-                .trim()));
-
-    CONF.setProcedureCoreWorkerThreadsCount(
-        Integer.parseInt(
-            properties
-                .getProperty(
-                    "procedure_core_worker_thread_count",
-                    String.valueOf(CONF.getProcedureCoreWorkerThreadsCount()))
-                .trim()));
-
-    loadRatisConsensusConfig(properties);
-    loadCQConfig(properties);
-
-    loadClientManager: self-config -> common-config
-  }
-
-  private void loadRatisConsensusConfig(Properties properties) {
-    CONF.setDataRegionRatisConsensusLogAppenderBufferSize(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "data_region_ratis_log_appender_buffer_size_max",
-                    String.valueOf(CONF.getDataRegionRatisConsensusLogAppenderBufferSize()))
-                .trim()));
-
-    CONF.setConfigNodeRatisConsensusLogAppenderBufferSize(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "config_node_ratis_log_appender_buffer_size_max",
-                    String.valueOf(CONF.getConfigNodeRatisConsensusLogAppenderBufferSize()))
-                .trim()));
-
-    CONF.setSchemaRegionRatisConsensusLogAppenderBufferSize(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "schema_region_ratis_log_appender_buffer_size_max",
-                    String.valueOf(CONF.getSchemaRegionRatisConsensusLogAppenderBufferSize()))
-                .trim()));
-
-    CONF.setDataRegionRatisSnapshotTriggerThreshold(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "data_region_ratis_snapshot_trigger_threshold",
-                    String.valueOf(CONF.getDataRegionRatisSnapshotTriggerThreshold()))
-                .trim()));
-
-    CONF.setConfigNodeRatisSnapshotTriggerThreshold(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "config_node_ratis_snapshot_trigger_threshold",
-                    String.valueOf(CONF.getConfigNodeRatisSnapshotTriggerThreshold()))
-                .trim()));
-
-    CONF.setSchemaRegionRatisSnapshotTriggerThreshold(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "schema_region_ratis_snapshot_trigger_threshold",
-                    String.valueOf(CONF.getSchemaRegionRatisSnapshotTriggerThreshold()))
-                .trim()));
-
-    CONF.setDataRegionRatisLogUnsafeFlushEnable(
-        Boolean.parseBoolean(
-            properties
-                .getProperty(
-                    "data_region_ratis_log_unsafe_flush_enable",
-                    String.valueOf(CONF.isDataRegionRatisLogUnsafeFlushEnable()))
-                .trim()));
-
-    CONF.setConfigNodeRatisLogUnsafeFlushEnable(
-        Boolean.parseBoolean(
-            properties
-                .getProperty(
-                    "config_node_ratis_log_unsafe_flush_enable",
-                    String.valueOf(CONF.isConfigNodeRatisLogUnsafeFlushEnable()))
-                .trim()));
-
-    CONF.setSchemaRegionRatisLogUnsafeFlushEnable(
-        Boolean.parseBoolean(
-            properties
-                .getProperty(
-                    "schema_region_ratis_log_unsafe_flush_enable",
-                    String.valueOf(CONF.isSchemaRegionRatisLogUnsafeFlushEnable()))
-                .trim()));
-
-    CONF.setDataRegionRatisLogSegmentSizeMax(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "data_region_ratis_log_segment_size_max_in_byte",
-                    String.valueOf(CONF.getDataRegionRatisLogSegmentSizeMax()))
-                .trim()));
-
-    CONF.setConfigNodeRatisLogSegmentSizeMax(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "config_node_ratis_log_segment_size_max_in_byte",
-                    String.valueOf(CONF.getConfigNodeRatisLogSegmentSizeMax()))
-                .trim()));
-
-    CONF.setSchemaRegionRatisLogSegmentSizeMax(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "schema_region_ratis_log_segment_size_max_in_byte",
-                    String.valueOf(CONF.getSchemaRegionRatisLogSegmentSizeMax()))
-                .trim()));
-
-    CONF.setConfigNodeSimpleConsensusLogSegmentSizeMax(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "config_node_simple_consensus_log_segment_size_max_in_byte",
-                    String.valueOf(CONF.getConfigNodeSimpleConsensusLogSegmentSizeMax()))
-                .trim()));
-
-    CONF.setDataRegionRatisGrpcFlowControlWindow(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "data_region_ratis_grpc_flow_control_window",
-                    String.valueOf(CONF.getDataRegionRatisGrpcFlowControlWindow()))
-                .trim()));
-
-    CONF.setConfigNodeRatisGrpcFlowControlWindow(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "config_node_ratis_grpc_flow_control_window",
-                    String.valueOf(CONF.getConfigNodeRatisGrpcFlowControlWindow()))
-                .trim()));
-
-    CONF.setSchemaRegionRatisGrpcFlowControlWindow(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "schema_region_ratis_grpc_flow_control_window",
-                    String.valueOf(CONF.getSchemaRegionRatisGrpcFlowControlWindow()))
-                .trim()));
-
-    CONF.setDataRegionRatisRpcLeaderElectionTimeoutMinMs(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "data_region_ratis_rpc_leader_election_timeout_min_ms",
-                    String.valueOf(CONF.getDataRegionRatisRpcLeaderElectionTimeoutMinMs()))
-                .trim()));
-
-    CONF.setConfigNodeRatisRpcLeaderElectionTimeoutMinMs(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "config_node_ratis_rpc_leader_election_timeout_min_ms",
-                    String.valueOf(CONF.getConfigNodeRatisRpcLeaderElectionTimeoutMinMs()))
-                .trim()));
-
-    CONF.setSchemaRegionRatisRpcLeaderElectionTimeoutMinMs(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "schema_region_ratis_rpc_leader_election_timeout_min_ms",
-                    String.valueOf(CONF.getSchemaRegionRatisRpcLeaderElectionTimeoutMinMs()))
-                .trim()));
-
-    CONF.setDataRegionRatisRpcLeaderElectionTimeoutMaxMs(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "data_region_ratis_rpc_leader_election_timeout_max_ms",
-                    String.valueOf(CONF.getDataRegionRatisRpcLeaderElectionTimeoutMaxMs()))
-                .trim()));
-
-    CONF.setConfigNodeRatisRpcLeaderElectionTimeoutMaxMs(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "config_node_ratis_rpc_leader_election_timeout_max_ms",
-                    String.valueOf(CONF.getConfigNodeRatisRpcLeaderElectionTimeoutMaxMs()))
-                .trim()));
-
-    CONF.setSchemaRegionRatisRpcLeaderElectionTimeoutMaxMs(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "schema_region_ratis_rpc_leader_election_timeout_max_ms",
-                    String.valueOf(CONF.getSchemaRegionRatisRpcLeaderElectionTimeoutMaxMs()))
-                .trim()));
-
-    CONF.setConfigNodeRatisRequestTimeoutMs(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "config_node_ratis_request_timeout_ms",
-                    String.valueOf(CONF.getConfigNodeRatisRequestTimeoutMs()))
-                .trim()));
-    CONF.setSchemaRegionRatisRequestTimeoutMs(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "schema_region_ratis_request_timeout_ms",
-                    String.valueOf(CONF.getSchemaRegionRatisRequestTimeoutMs()))
-                .trim()));
-    CONF.setDataRegionRatisRequestTimeoutMs(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "data_region_ratis_request_timeout_ms",
-                    String.valueOf(CONF.getDataRegionRatisRequestTimeoutMs()))
-                .trim()));
-
-    CONF.setConfigNodeRatisMaxRetryAttempts(
-        Integer.parseInt(
-            properties
-                .getProperty(
-                    "config_node_ratis_max_retry_attempts",
-                    String.valueOf(CONF.getConfigNodeRatisMaxRetryAttempts()))
-                .trim()));
-    CONF.setConfigNodeRatisInitialSleepTimeMs(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "config_node_ratis_initial_sleep_time_ms",
-                    String.valueOf(CONF.getConfigNodeRatisInitialSleepTimeMs()))
-                .trim()));
-    CONF.setConfigNodeRatisMaxSleepTimeMs(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "config_node_ratis_max_sleep_time_ms",
-                    String.valueOf(CONF.getConfigNodeRatisMaxSleepTimeMs()))
-                .trim()));
-
-    CONF.setDataRegionRatisMaxRetryAttempts(
-        Integer.parseInt(
-            properties
-                .getProperty(
-                    "data_region_ratis_max_retry_attempts",
-                    String.valueOf(CONF.getDataRegionRatisMaxRetryAttempts()))
-                .trim()));
-    CONF.setDataRegionRatisInitialSleepTimeMs(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "data_region_ratis_initial_sleep_time_ms",
-                    String.valueOf(CONF.getDataRegionRatisInitialSleepTimeMs()))
-                .trim()));
-    CONF.setDataRegionRatisMaxSleepTimeMs(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "data_region_ratis_max_sleep_time_ms",
-                    String.valueOf(CONF.getDataRegionRatisMaxSleepTimeMs()))
-                .trim()));
-
-    CONF.setSchemaRegionRatisMaxRetryAttempts(
-        Integer.parseInt(
-            properties
-                .getProperty(
-                    "schema_region_ratis_max_retry_attempts",
-                    String.valueOf(CONF.getSchemaRegionRatisMaxRetryAttempts()))
-                .trim()));
-    CONF.setSchemaRegionRatisInitialSleepTimeMs(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "schema_region_ratis_initial_sleep_time_ms",
-                    String.valueOf(CONF.getSchemaRegionRatisInitialSleepTimeMs()))
-                .trim()));
-    CONF.setSchemaRegionRatisMaxSleepTimeMs(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "schema_region_ratis_max_sleep_time_ms",
-                    String.valueOf(CONF.getSchemaRegionRatisMaxSleepTimeMs()))
-                .trim()));
-
-    CONF.setConfigNodeRatisPreserveLogsWhenPurge(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "config_node_ratis_preserve_logs_num_when_purge",
-                    String.valueOf(CONF.getConfigNodeRatisPreserveLogsWhenPurge()))
-                .trim()));
-
-    CONF.setSchemaRegionRatisPreserveLogsWhenPurge(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "schema_region_ratis_preserve_logs_num_when_purge",
-                    String.valueOf(CONF.getSchemaRegionRatisPreserveLogsWhenPurge()))
-                .trim()));
-
-    CONF.setDataRegionRatisPreserveLogsWhenPurge(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "data_region_ratis_preserve_logs_num_when_purge",
-                    String.valueOf(CONF.getDataRegionRatisPreserveLogsWhenPurge()))
-                .trim()));
-
-    CONF.setRatisFirstElectionTimeoutMinMs(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "ratis_first_election_timeout_min_ms",
-                    String.valueOf(CONF.getRatisFirstElectionTimeoutMinMs()))
-                .trim()));
-
-    CONF.setRatisFirstElectionTimeoutMaxMs(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "ratis_first_election_timeout_max_ms",
-                    String.valueOf(CONF.getRatisFirstElectionTimeoutMaxMs()))
-                .trim()));
-
-    CONF.setConfigNodeRatisLogMax(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "config_node_ratis_log_max_size",
-                    String.valueOf(CONF.getConfigNodeRatisLogMax()))
-                .trim()));
-
-    CONF.setSchemaRegionRatisLogMax(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "schema_region_ratis_log_max_size",
-                    String.valueOf(CONF.getSchemaRegionRatisLogMax()))
-                .trim()));
-
-    CONF.setDataRegionRatisLogMax(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "data_region_ratis_log_max_size",
-                    String.valueOf(CONF.getDataRegionRatisLogMax()))
-                .trim()));
-  }
-
-  private void loadCQConfig(Properties properties) {
-    int cqSubmitThread =
-        Integer.parseInt(
-            properties
-                .getProperty(
-                    "continuous_query_submit_thread_count",
-                    String.valueOf(CONF.getCqSubmitThread()))
-                .trim());
-    if (cqSubmitThread <= 0) {
-      LOGGER.warn(
-          "continuous_query_submit_thread should be greater than 0, but current value is {}, ignore that and use the default value {}",
-          cqSubmitThread,
-          CONF.getCqSubmitThread());
-      cqSubmitThread = CONF.getCqSubmitThread();
-    }
-    CONF.setCqSubmitThread(cqSubmitThread);
-
-    long cqMinEveryIntervalInMs =
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "continuous_query_min_every_interval_in_ms",
-                    String.valueOf(CONF.getCqMinEveryIntervalInMs()))
-                .trim());
-    if (cqMinEveryIntervalInMs <= 0) {
-      LOGGER.warn(
-          "continuous_query_min_every_interval_in_ms should be greater than 0, but current value is {}, ignore that and use the default value {}",
-          cqMinEveryIntervalInMs,
-          CONF.getCqMinEveryIntervalInMs());
-      cqMinEveryIntervalInMs = CONF.getCqMinEveryIntervalInMs();
-    }
-
-    CONF.setCqMinEveryIntervalInMs(cqMinEveryIntervalInMs);
   }
 
   /**
diff --git a/integration-test/import-control.xml b/integration-test/import-control.xml
index 0465588691..75ec8a9680 100644
--- a/integration-test/import-control.xml
+++ b/integration-test/import-control.xml
@@ -41,7 +41,7 @@
     <allow class="org.apache.iotdb.db.constant.TestConstant" />
     <allow class="org.apache.iotdb.db.tools.watermark.WatermarkDetector" />
     <allow class="org.apache.iotdb.db.utils.MathUtils" />
-    <allow class="org.apache.iotdb.db.wal.utils.WALMode" />
+    <allow class="org.apache.iotdb.commons.wal.WALMode" />
     <allow class="org.fusesource.mqtt.client.QoS" />
     <allow class="org.apache.iotdb.commons.path.PartialPath" />
     <allow pkg="java.text"/>
diff --git a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBRecoverUnclosedIT.java b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBRecoverUnclosedIT.java
index c62618e745..c8aba63655 100644
--- a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBRecoverUnclosedIT.java
+++ b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBRecoverUnclosedIT.java
@@ -21,7 +21,7 @@ package org.apache.iotdb.db.it;
 
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.wal.utils.WALMode;
+import org.apache.iotdb.commons.wal.WALMode;
 import org.apache.iotdb.it.env.EnvFactory;
 import org.apache.iotdb.it.framework.IoTDBTestRunner;
 import org.apache.iotdb.itbase.category.ClusterIT;
diff --git a/node-commons/src/assembly/resources/conf/iotdb-common.properties b/node-commons/src/assembly/resources/conf/iotdb-common.properties
index 031024e011..62b2614250 100644
--- a/node-commons/src/assembly/resources/conf/iotdb-common.properties
+++ b/node-commons/src/assembly/resources/conf/iotdb-common.properties
@@ -774,7 +774,7 @@ cluster_name=defaultCluster
 ####################
 
 # Datatype: boolean
-# watermark_module_opened=false
+# enable_watermark=false
 
 # Datatype: String
 # watermark_secret_key=IoTDB*2019@Beijing
diff --git a/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java b/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
index 40c25dab86..55f06d6871 100644
--- a/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
@@ -24,6 +24,7 @@ import org.apache.iotdb.commons.enums.HandleSystemErrorStrategy;
 import org.apache.iotdb.commons.loadbalance.LeaderDistributionPolicy;
 import org.apache.iotdb.commons.loadbalance.RegionGroupExtensionPolicy;
 import org.apache.iotdb.commons.utils.datastructure.TVListSortAlgorithm;
+import org.apache.iotdb.commons.wal.WALMode;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
 import org.apache.iotdb.tsfile.fileSystem.FSType;
@@ -110,20 +111,64 @@ public class CommonConfig {
   /** Memory Control Configuration */
   // Is the writing mem control for writing enable
   private boolean enableMemControl = true;
-  // TODO:
 
   // Memory allocated for the write process
   private long allocateMemoryForStorageEngine = Runtime.getRuntime().maxMemory() * 3 / 10;
-
   // Memory allocated for the read process
   private long allocateMemoryForRead = Runtime.getRuntime().maxMemory() * 3 / 10;
-
   // Memory allocated for the MTree
   private long allocateMemoryForSchema = Runtime.getRuntime().maxMemory() / 10;
-
   // Memory allocated for the consensus layer
   private long allocateMemoryForConsensus = Runtime.getRuntime().maxMemory() / 10;
 
+  // Whether the schema memory allocation is default config. Used for cluster mode initialization
+  // judgement
+  private boolean isDefaultSchemaMemoryConfig = true;
+  // Memory allocated for schemaRegion
+  private long allocateMemoryForSchemaRegion = allocateMemoryForSchema * 8 / 10;
+  // Memory allocated for SchemaCache
+  private long allocateMemoryForSchemaCache = allocateMemoryForSchema / 10;
+  // Memory allocated for PartitionCache
+  private long allocateMemoryForPartitionCache = 0;
+  // Memory allocated for LastCache
+  private long allocateMemoryForLastCache = allocateMemoryForSchema / 10;
+
+  // The proportion of write memory for memtable
+  private double writeProportionForMemtable = 0.8;
+  // The proportion of write memory for compaction
+  private double compactionProportion = 0.2;
+  // Memory allocated proportion for time partition info
+  private long allocateMemoryForTimePartitionInfo = allocateMemoryForStorageEngine * 50 / 1001;
+
+  // The num of memtable in each database
+  private int concurrentWritingTimePartition = 1;
+  // The default value of primitive array size in array pool
+  private int primitiveArraySize = 64;
+  private double chunkMetadataSizeProportion = 0.1;
+  // Flush proportion for system
+  private double flushProportion = 0.4;
+  // Ratio of memory allocated for buffered arrays
+  private double bufferedArraysMemoryProportion = 0.6;
+  // Reject proportion for system
+  private double rejectProportion = 0.8;
+  // If memory cost of data region increased more than proportion of {@linkplain
+  // CommonConfig#getAllocateMemoryForStorageEngine()}*{@linkplain
+  // CommonConfig#getWriteProportionForMemtable()}, report to system.
+  private double writeMemoryVariationReportProportion = 0.001;
+  // When inserting rejected, waiting period to check system again. Unit: millisecond
+  private int checkPeriodWhenInsertBlocked = 50;
+  // The size of ioTaskQueue
+  private int ioTaskQueueSizeForFlushing = 10;
+  // If true, we will estimate each query's possible memory footprint before executing it and deny
+  // it if its estimated memory exceeds current free memory
+  private boolean enableQueryMemoryEstimation = true;
+
+
+  // Max bytes of each FragmentInstance for DataExchange
+  private long maxBytesPerFragmentInstance = allocateMemoryForDataExchange / queryThreadCount;
+
+
+
   /** Schema Engine Configuration */
   // ThreadPool size for read operation in coordinator
   private int coordinatorReadExecutorSize = 20;
@@ -190,10 +235,24 @@ public class CommonConfig {
 
   // Whether to cache metadata(ChunkMetaData and TsFileMetaData) or not
   private boolean metaDataCacheEnable = true;
-  // TODO:
+
+  // Memory allocated for bloomFilter cache in read process
+  private long allocateMemoryForBloomFilterCache = allocateMemoryForRead / 1001;
+  // Memory allocated for chunk cache in read process
+  private long allocateMemoryForChunkCache = allocateMemoryForRead * 100 / 1001;
+  // Memory allocated for timeSeriesMetaData cache in read process
+  private long allocateMemoryForTimeSeriesMetaDataCache = allocateMemoryForRead * 200 / 1001;
+  // Memory allocated for operators
+  private long allocateMemoryForCoordinator = allocateMemoryForRead * 50 / 1001;
+  // Memory allocated for operators
+  private long allocateMemoryForOperators = allocateMemoryForRead * 200 / 1001;
+  // Memory allocated for operators
+  private long allocateMemoryForDataExchange = allocateMemoryForRead * 200 / 1001;
+  // Memory allocated proportion for timeIndex
+  private long allocateMemoryForTimeIndex = allocateMemoryForRead * 200 / 1001;
 
   // Whether to enable last cache
-  private boolean lastCacheEnable = true;
+  private boolean enableLastCache = true;
 
   private volatile int maxDeduplicatedPathNum = 1000;
 
@@ -203,7 +262,6 @@ public class CommonConfig {
   private int mppDataExchangeMaxPoolSize = 10;
   // Thread keep alive time in ms of mpp data exchange
   private int mppDataExchangeKeepAliveTimeInMs = 1000;
-
   // Maximum execution time of a DriverTask
   private int driverTaskExecutionTimeSliceInMs = 100;
 
@@ -212,6 +270,8 @@ public class CommonConfig {
   // Maximum number of lines in a single TsBlock
   private int maxTsBlockLineNumber = 1000;
 
+  // TODO:
+
   // Time cost(ms) threshold for slow query. Unit: millisecond
   private long slowQueryThreshold = 5000;
   // The max executing time of query in ms. Unit: millisecond
@@ -283,21 +343,59 @@ public class CommonConfig {
   private int upgradeThreadCount = 1;
 
   /** Compaction Configurations */
-  // Enable inner space compaction for sequence files
-  private boolean enableSeqSpaceCompaction = true;
-  // Enable inner space compaction for unsequence files
-  private boolean enableUnseqSpaceCompaction = true;
-  // Compact the unsequence files into the overlapped sequence files
-  private boolean enableCrossSpaceCompaction = true;
+  // TODO: Move from IoTDBConfig
 
   /** Write Ahead Log Configuration */
-  // TODO: Move from IoTDBConfig
+  // Write mode of wal
+  private volatile WALMode walMode = WALMode.ASYNC;
 
-  /** TsFile Configurations */
-  // TODO: Move from IoTDBConfig
+  // Max number of wal nodes, each node corresponds to one wal directory
+  private int maxWalNodesNum = 0;
+
+  // Duration a wal flush operation will wait before calling fsync. Unit: millisecond
+  private volatile long fsyncWalDelayInMs = 3;
+
+  // Buffer size of each wal node. Unit: byte
+  private int walBufferSizeInByte = 16 * 1024 * 1024;
+
+  // Blocking queue capacity of each wal buffer
+  private int walBufferQueueCapacity = 50;
+
+  // Size threshold of each wal file. Unit: byte
+  private volatile long walFileSizeThresholdInByte = 10 * 1024 * 1024L;
+
+  // Minimum ratio of effective information in wal files
+  private volatile double walMinEffectiveInfoRatio = 0.1;
+
+  // MemTable size threshold for triggering MemTable snapshot in wal. When a memTable's size exceeds
+  // this, wal can flush this memtable to disk, otherwise wal will snapshot this memtable in wal.
+  // Unit: byte
+  private volatile long walMemTableSnapshotThreshold = 8 * 1024 * 1024L;
+
+  // MemTable's max snapshot number in wal file
+  private volatile int maxWalMemTableSnapshotNum = 1;
+
+  // The period when outdated wal files are periodically deleted. Unit: millisecond
+  private volatile long deleteWalFilesPeriodInMs = 20 * 1000L;
+
+  // Maximum size of wal buffer used in IoTConsensus. Unit: byte
+  private long iotConsensusThrottleThresholdInByte = 50 * 1024 * 1024 * 1024L;
+
+  // Maximum wait time of write cache in IoTConsensus. Unit: ms
+  private long iotConsensusCacheWindowTimeInMs = 10 * 1000L;
 
   /** Watermark Configuration */
-  // TODO: Move from IoTDBConfig
+  // Switch of watermark function
+  private boolean enableWatermark = false;
+
+  // Secret key for watermark
+  private String watermarkSecretKey = "IoTDB*2019@Beijing";
+
+  // Bit string of watermark
+  private String watermarkBitString = "100101110100";
+
+  // Watermark method and parameters
+  private String watermarkMethod = "GroupBasedLSBMethod(embed_row_cycle=2,embed_lsb_num=5)";
 
   /** Authorization Configuration */
   // The authorizer provider class which extends BasicAuthorizer
@@ -310,21 +408,38 @@ public class CommonConfig {
   private String adminPassword = "root";
 
   // Encryption provider class
-  private String encryptDecryptProvider =
+  private String iotdbServerEncryptDecryptProvider =
       "org.apache.iotdb.commons.security.encrypt.MessageDigestEncrypt";
-
   // Encryption provided class parameter
-  private String encryptDecryptProviderParameter;
+  private String iotdbServerEncryptDecryptProviderParameter;
 
-  // TODO: Move from IoTDBConfig
+  // Cache size of user and role
+  private int authorCacheSize = 100;
+  // Cache expire time of user and role
+  private int authorCacheExpireTime = 30;
 
   /** UDF Configuration */
+  // Used to estimate the memory usage of text fields in a UDF query. It is recommended to set this
+  // value to be slightly larger than the average length of all text records.
+  private int udfInitialByteArrayLengthForMemoryControl = 48;
+
+  // How much memory may be used in ONE UDF query (in MB).
+  // The upper limit is 20% of allocated memory for read.
+  // udfMemoryBudgetInMB = udfReaderMemoryBudgetInMB +
+  // udfTransformerMemoryBudgetInMB + udfCollectorMemoryBudgetInMB
+  private float udfMemoryBudgetInMB = (float) Math.min(30.0f, 0.2 * allocateMemoryForRead);
+
+  private float udfReaderMemoryBudgetInMB = (float) (1.0 / 3 * udfMemoryBudgetInMB);
+
+  private float udfTransformerMemoryBudgetInMB = (float) (1.0 / 3 * udfMemoryBudgetInMB);
+
+  private float udfCollectorMemoryBudgetInMB = (float) (1.0 / 3 * udfMemoryBudgetInMB);
+
   // External lib directory for UDF, stores user-uploaded JAR files
   private String udfDir =
       IoTDBConstant.EXT_FOLDER_NAME + File.separator + IoTDBConstant.UDF_FOLDER_NAME;
   // External temporary lib directory for storing downloaded udf JAR files
   private String udfTemporaryLibDir = udfDir + File.separator + IoTDBConstant.TMP_FOLDER_NAME;
-  // TODO: Move from IoTDBConfig
 
   /** Trigger Configuration */
   // External lib directory for trigger, stores user-uploaded JAR files
@@ -333,21 +448,52 @@ public class CommonConfig {
   // External temporary lib directory for storing downloaded trigger JAR files
   private String triggerTemporaryLibDir =
       triggerDir + File.separator + IoTDBConstant.TMP_FOLDER_NAME;
-  // TODO: Move from IoTDBConfig
+
+  // How many times will we retry to find an instance of stateful trigger
+  private int statefulTriggerRetryNumWhenNotFound = 3;
+
+  // The size of log buffer for every trigger management operation plan. If the size of a trigger
+  // management operation plan is larger than this parameter, the trigger management operation plan
+  // will be rejected by TriggerManager. Unit: byte
+  private int tlogBufferSize = 1024 * 1024;
+
+  // Number of queues per forwarding trigger
+  private int triggerForwardMaxQueueNumber = 8;
+  // The length of one of the queues per forwarding trigger
+  private int triggerForwardMaxSizePerQueue = 2000;
+  // Trigger forwarding data size per batch
+  private int triggerForwardBatchSize = 50;
+  // Trigger HTTP forward pool size
+  private int triggerForwardHTTPPoolSize = 200;
+  // Trigger HTTP forward pool max connection for per route
+  private int triggerForwardHTTPPOOLMaxPerRoute = 20;
+  // Trigger MQTT forward pool size
+  private int triggerForwardMQTTPoolSize = 4;
 
   /** Select-Into Configuration */
-  // TODO: Move from IoTDBConfig
+  // The maximum number of rows can be processed in insert-tablet-plan when executing select-into statements.
+  private int selectIntoInsertTabletPlanRowLimit = 10000;
+  // The number of threads in the thread pool that execute insert-tablet tasks.
+  private int intoOperationExecutionThreadCount = 2;
 
   /** Continuous Query Configuration */
-  // TODO: Move from IoTDBConfig
+  // How many thread will be set up to perform continuous queries. When <= 0, use max(1, CPU core number / 2).
+  private int continuousQueryThreadCount =
+    Math.max(1, Runtime.getRuntime().availableProcessors() / 2);
+
+  // Minimum every interval to perform continuous query.
+  // The every interval of continuous query instances should not be lower than this limit.
+  private long continuousQueryMinEveryIntervalInMs = 1000;
 
   /** PIPE Configuration */
-  // TODO: Move from IoTDBConfig
+  // White list for sync
+  private String ipWhiteList = "127.0.0.1/32";
+  // The maximum number of retries when the sender fails to synchronize files to the receiver
+  private int maxNumberOfSyncFileRetry = 5;
 
   /** RatisConsensus Configuration */
   // RatisConsensus protocol, Max size for a single log append request from leader
   private long configNodeRatisConsensusLogAppenderBufferSize = 4 * 1024 * 1024L;
-
   private long schemaRegionRatisConsensusLogAppenderBufferSize = 4 * 1024 * 1024L;
   private long dataRegionRatisConsensusLogAppenderBufferSize = 4 * 1024 * 1024L;
 
@@ -423,13 +569,29 @@ public class CommonConfig {
       Math.max(Runtime.getRuntime().availableProcessors() / 4, 16);
 
   /** MQTT Broker Configuration */
-  // TODO: Move from IoTDBConfig
+  private boolean enableMqttService = false;
+
+  // The mqtt service binding host
+  private String mqttHost = "127.0.0.1";
+  // The mqtt service binding port
+  private int mqttPort = 1883;
+  // The handler pool size for handing the mqtt messages
+  private int mqttHandlerPoolSize = 1;
+  // The mqtt message payload formatter
+  private String mqttPayloadFormatter = "json";
+  // Max mqtt message size. Unit: byte
+  private int mqttMaxMessageSize = 1048576;
 
   /** REST Service Configuration */
   // TODO: Move from IoTDBConfig
 
   /** InfluxDB RPC Service Configuration */
-  // TODO: Move from IoTDBConfig
+  // Whether enable the influxdb rpc service.
+  // This parameter has no a corresponding field in the iotdb-common.properties
+  private boolean enableInfluxDBRpcService = false;
+
+  /** Port which the influxdb protocol server listens to. */
+  private int influxDBRpcPort = 8086;
 
   /** Internal Configurations(Unconfigurable in .properties file) */
   // NodeStatus
@@ -707,20 +869,21 @@ public class CommonConfig {
     this.openIdProviderUrl = openIdProviderUrl;
   }
 
-  public String getEncryptDecryptProvider() {
-    return encryptDecryptProvider;
+  public String getIotdbServerEncryptDecryptProvider() {
+    return iotdbServerEncryptDecryptProvider;
   }
 
-  public void setEncryptDecryptProvider(String encryptDecryptProvider) {
-    this.encryptDecryptProvider = encryptDecryptProvider;
+  public void setIotdbServerEncryptDecryptProvider(String iotdbServerEncryptDecryptProvider) {
+    this.iotdbServerEncryptDecryptProvider = iotdbServerEncryptDecryptProvider;
   }
 
-  public String getEncryptDecryptProviderParameter() {
-    return encryptDecryptProviderParameter;
+  public String getIotdbServerEncryptDecryptProviderParameter() {
+    return iotdbServerEncryptDecryptProviderParameter;
   }
 
-  public void setEncryptDecryptProviderParameter(String encryptDecryptProviderParameter) {
-    this.encryptDecryptProviderParameter = encryptDecryptProviderParameter;
+  public void setIotdbServerEncryptDecryptProviderParameter(
+      String iotdbServerEncryptDecryptProviderParameter) {
+    this.iotdbServerEncryptDecryptProviderParameter = iotdbServerEncryptDecryptProviderParameter;
   }
 
   public String getAdminName() {
@@ -771,6 +934,118 @@ public class CommonConfig {
     this.triggerTemporaryLibDir = triggerTemporaryLibDir;
   }
 
+  public int getStatefulTriggerRetryNumWhenNotFound() {
+    return statefulTriggerRetryNumWhenNotFound;
+  }
+
+  public void setStatefulTriggerRetryNumWhenNotFound(int statefulTriggerRetryNumWhenNotFound) {
+    this.statefulTriggerRetryNumWhenNotFound = statefulTriggerRetryNumWhenNotFound;
+  }
+
+  public int getTlogBufferSize() {
+    return tlogBufferSize;
+  }
+
+  public void setTlogBufferSize(int tlogBufferSize) {
+    this.tlogBufferSize = tlogBufferSize;
+  }
+
+  public int getTriggerForwardMaxQueueNumber() {
+    return triggerForwardMaxQueueNumber;
+  }
+
+  public void setTriggerForwardMaxQueueNumber(int triggerForwardMaxQueueNumber) {
+    this.triggerForwardMaxQueueNumber = triggerForwardMaxQueueNumber;
+  }
+
+  public int getTriggerForwardMaxSizePerQueue() {
+    return triggerForwardMaxSizePerQueue;
+  }
+
+  public void setTriggerForwardMaxSizePerQueue(int triggerForwardMaxSizePerQueue) {
+    this.triggerForwardMaxSizePerQueue = triggerForwardMaxSizePerQueue;
+  }
+
+  public int getTriggerForwardBatchSize() {
+    return triggerForwardBatchSize;
+  }
+
+  public void setTriggerForwardBatchSize(int triggerForwardBatchSize) {
+    this.triggerForwardBatchSize = triggerForwardBatchSize;
+  }
+
+  public int getTriggerForwardHTTPPoolSize() {
+    return triggerForwardHTTPPoolSize;
+  }
+
+  public void setTriggerForwardHTTPPoolSize(int triggerForwardHTTPPoolSize) {
+    this.triggerForwardHTTPPoolSize = triggerForwardHTTPPoolSize;
+  }
+
+  public int getTriggerForwardHTTPPOOLMaxPerRoute() {
+    return triggerForwardHTTPPOOLMaxPerRoute;
+  }
+
+  public void setTriggerForwardHTTPPOOLMaxPerRoute(int triggerForwardHTTPPOOLMaxPerRoute) {
+    this.triggerForwardHTTPPOOLMaxPerRoute = triggerForwardHTTPPOOLMaxPerRoute;
+  }
+
+  public int getTriggerForwardMQTTPoolSize() {
+    return triggerForwardMQTTPoolSize;
+  }
+
+  public void setTriggerForwardMQTTPoolSize(int triggerForwardMQTTPoolSize) {
+    this.triggerForwardMQTTPoolSize = triggerForwardMQTTPoolSize;
+  }
+
+  public int getSelectIntoInsertTabletPlanRowLimit() {
+    return selectIntoInsertTabletPlanRowLimit;
+  }
+
+  public void setSelectIntoInsertTabletPlanRowLimit(int selectIntoInsertTabletPlanRowLimit) {
+    this.selectIntoInsertTabletPlanRowLimit = selectIntoInsertTabletPlanRowLimit;
+  }
+
+  public int getIntoOperationExecutionThreadCount() {
+    return intoOperationExecutionThreadCount;
+  }
+
+  public void setIntoOperationExecutionThreadCount(int intoOperationExecutionThreadCount) {
+    this.intoOperationExecutionThreadCount = intoOperationExecutionThreadCount;
+  }
+
+  public int getContinuousQueryThreadCount() {
+    return continuousQueryThreadCount;
+  }
+
+  public void setContinuousQueryThreadCount(int continuousQueryThreadCount) {
+    this.continuousQueryThreadCount = continuousQueryThreadCount;
+  }
+
+  public long getContinuousQueryMinEveryIntervalInMs() {
+    return continuousQueryMinEveryIntervalInMs;
+  }
+
+  public void setContinuousQueryMinEveryIntervalInMs(long continuousQueryMinEveryIntervalInMs) {
+    this.continuousQueryMinEveryIntervalInMs = continuousQueryMinEveryIntervalInMs;
+  }
+
+  public String getIpWhiteList() {
+    return ipWhiteList;
+  }
+
+  public void setIpWhiteList(String ipWhiteList) {
+    this.ipWhiteList = ipWhiteList;
+  }
+
+  public int getMaxNumberOfSyncFileRetry() {
+    return maxNumberOfSyncFileRetry;
+  }
+
+  public void setMaxNumberOfSyncFileRetry(int maxNumberOfSyncFileRetry) {
+    this.maxNumberOfSyncFileRetry = maxNumberOfSyncFileRetry;
+  }
+
   public long getConfigNodeRatisConsensusLogAppenderBufferSize() {
     return configNodeRatisConsensusLogAppenderBufferSize;
   }
@@ -1156,6 +1431,54 @@ public class CommonConfig {
     this.procedureCoreWorkerThreadsCount = procedureCoreWorkerThreadsCount;
   }
 
+  public boolean isEnableMqttService() {
+    return enableMqttService;
+  }
+
+  public void setEnableMqttService(boolean enableMqttService) {
+    this.enableMqttService = enableMqttService;
+  }
+
+  public String getMqttHost() {
+    return mqttHost;
+  }
+
+  public void setMqttHost(String mqttHost) {
+    this.mqttHost = mqttHost;
+  }
+
+  public int getMqttPort() {
+    return mqttPort;
+  }
+
+  public void setMqttPort(int mqttPort) {
+    this.mqttPort = mqttPort;
+  }
+
+  public int getMqttHandlerPoolSize() {
+    return mqttHandlerPoolSize;
+  }
+
+  public void setMqttHandlerPoolSize(int mqttHandlerPoolSize) {
+    this.mqttHandlerPoolSize = mqttHandlerPoolSize;
+  }
+
+  public String getMqttPayloadFormatter() {
+    return mqttPayloadFormatter;
+  }
+
+  public void setMqttPayloadFormatter(String mqttPayloadFormatter) {
+    this.mqttPayloadFormatter = mqttPayloadFormatter;
+  }
+
+  public int getMqttMaxMessageSize() {
+    return mqttMaxMessageSize;
+  }
+
+  public void setMqttMaxMessageSize(int mqttMaxMessageSize) {
+    this.mqttMaxMessageSize = mqttMaxMessageSize;
+  }
+
   public NodeStatus getStatus() {
     return status;
   }
@@ -1260,6 +1583,272 @@ public class CommonConfig {
     this.allocateMemoryForConsensus = allocateMemoryForConsensus;
   }
 
+  public boolean isDefaultSchemaMemoryConfig() {
+    return isDefaultSchemaMemoryConfig;
+  }
+
+  public void setDefaultSchemaMemoryConfig(boolean defaultSchemaMemoryConfig) {
+    isDefaultSchemaMemoryConfig = defaultSchemaMemoryConfig;
+  }
+
+  public long getAllocateMemoryForSchemaRegion() {
+    return allocateMemoryForSchemaRegion;
+  }
+
+  public void setAllocateMemoryForSchemaRegion(long allocateMemoryForSchemaRegion) {
+    this.allocateMemoryForSchemaRegion = allocateMemoryForSchemaRegion;
+  }
+
+  public long getAllocateMemoryForSchemaCache() {
+    return allocateMemoryForSchemaCache;
+  }
+
+  public void setAllocateMemoryForSchemaCache(long allocateMemoryForSchemaCache) {
+    this.allocateMemoryForSchemaCache = allocateMemoryForSchemaCache;
+  }
+
+  public long getAllocateMemoryForPartitionCache() {
+    return allocateMemoryForPartitionCache;
+  }
+
+  public void setAllocateMemoryForPartitionCache(long allocateMemoryForPartitionCache) {
+    this.allocateMemoryForPartitionCache = allocateMemoryForPartitionCache;
+  }
+
+  public long getAllocateMemoryForLastCache() {
+    return allocateMemoryForLastCache;
+  }
+
+  public void setAllocateMemoryForLastCache(long allocateMemoryForLastCache) {
+    this.allocateMemoryForLastCache = allocateMemoryForLastCache;
+  }
+
+  public double getWriteProportionForMemtable() {
+    return writeProportionForMemtable;
+  }
+
+  public void setWriteProportionForMemtable(double writeProportionForMemtable) {
+    this.writeProportionForMemtable = writeProportionForMemtable;
+  }
+
+  public double getCompactionProportion() {
+    return compactionProportion;
+  }
+
+  public void setCompactionProportion(double compactionProportion) {
+    this.compactionProportion = compactionProportion;
+  }
+
+  public long getAllocateMemoryForBloomFilterCache() {
+    return allocateMemoryForBloomFilterCache;
+  }
+
+  public void setAllocateMemoryForBloomFilterCache(long allocateMemoryForBloomFilterCache) {
+    this.allocateMemoryForBloomFilterCache = allocateMemoryForBloomFilterCache;
+  }
+
+  public long getAllocateMemoryForTimeSeriesMetaDataCache() {
+    return allocateMemoryForTimeSeriesMetaDataCache;
+  }
+
+  public void setAllocateMemoryForTimeSeriesMetaDataCache(
+      long allocateMemoryForTimeSeriesMetaDataCache) {
+    this.allocateMemoryForTimeSeriesMetaDataCache = allocateMemoryForTimeSeriesMetaDataCache;
+  }
+
+  public long getAllocateMemoryForChunkCache() {
+    return allocateMemoryForChunkCache;
+  }
+
+  public void setAllocateMemoryForChunkCache(long allocateMemoryForChunkCache) {
+    this.allocateMemoryForChunkCache = allocateMemoryForChunkCache;
+  }
+
+  public long getAllocateMemoryForCoordinator() {
+    return allocateMemoryForCoordinator;
+  }
+
+  public void setAllocateMemoryForCoordinator(long allocateMemoryForCoordinator) {
+    this.allocateMemoryForCoordinator = allocateMemoryForCoordinator;
+  }
+
+  public long getAllocateMemoryForOperators() {
+    return allocateMemoryForOperators;
+  }
+
+  public void setAllocateMemoryForOperators(long allocateMemoryForOperators) {
+    this.allocateMemoryForOperators = allocateMemoryForOperators;
+  }
+
+  public long getAllocateMemoryForDataExchange() {
+    return allocateMemoryForDataExchange;
+  }
+
+  public void setAllocateMemoryForDataExchange(long allocateMemoryForDataExchange) {
+    this.allocateMemoryForDataExchange = allocateMemoryForDataExchange;
+  }
+
+  public long getMaxBytesPerFragmentInstance() {
+    return maxBytesPerFragmentInstance;
+  }
+
+  public void setMaxBytesPerFragmentInstance(long maxBytesPerFragmentInstance) {
+    this.maxBytesPerFragmentInstance = maxBytesPerFragmentInstance;
+  }
+
+  public long getAllocateMemoryForTimeIndex() {
+    return allocateMemoryForTimeIndex;
+  }
+
+  public void setAllocateMemoryForTimeIndex(long allocateMemoryForTimeIndex) {
+    this.allocateMemoryForTimeIndex = allocateMemoryForTimeIndex;
+  }
+
+  public long getAllocateMemoryForTimePartitionInfo() {
+    return allocateMemoryForTimePartitionInfo;
+  }
+
+  public void setAllocateMemoryForTimePartitionInfo(long allocateMemoryForTimePartitionInfo) {
+    this.allocateMemoryForTimePartitionInfo = allocateMemoryForTimePartitionInfo;
+  }
+
+  public int getConcurrentWritingTimePartition() {
+    return concurrentWritingTimePartition;
+  }
+
+  public void setConcurrentWritingTimePartition(int concurrentWritingTimePartition) {
+    this.concurrentWritingTimePartition = concurrentWritingTimePartition;
+  }
+
+  public int getPrimitiveArraySize() {
+    return primitiveArraySize;
+  }
+
+  public void setPrimitiveArraySize(int primitiveArraySize) {
+    this.primitiveArraySize = primitiveArraySize;
+  }
+
+  public double getChunkMetadataSizeProportion() {
+    return chunkMetadataSizeProportion;
+  }
+
+  public void setChunkMetadataSizeProportion(double chunkMetadataSizeProportion) {
+    this.chunkMetadataSizeProportion = chunkMetadataSizeProportion;
+  }
+
+  public double getFlushProportion() {
+    return flushProportion;
+  }
+
+  public void setFlushProportion(double flushProportion) {
+    this.flushProportion = flushProportion;
+  }
+
+  public double getBufferedArraysMemoryProportion() {
+    return bufferedArraysMemoryProportion;
+  }
+
+  public void setBufferedArraysMemoryProportion(double bufferedArraysMemoryProportion) {
+    this.bufferedArraysMemoryProportion = bufferedArraysMemoryProportion;
+  }
+
+  public double getRejectProportion() {
+    return rejectProportion;
+  }
+
+  public void setRejectProportion(double rejectProportion) {
+    this.rejectProportion = rejectProportion;
+  }
+
+  public double getWriteMemoryVariationReportProportion() {
+    return writeMemoryVariationReportProportion;
+  }
+
+  public void setWriteMemoryVariationReportProportion(double writeMemoryVariationReportProportion) {
+    this.writeMemoryVariationReportProportion = writeMemoryVariationReportProportion;
+  }
+
+  public int getCheckPeriodWhenInsertBlocked() {
+    return checkPeriodWhenInsertBlocked;
+  }
+
+  public void setCheckPeriodWhenInsertBlocked(int checkPeriodWhenInsertBlocked) {
+    this.checkPeriodWhenInsertBlocked = checkPeriodWhenInsertBlocked;
+  }
+
+  public int getIoTaskQueueSizeForFlushing() {
+    return ioTaskQueueSizeForFlushing;
+  }
+
+  public void setIoTaskQueueSizeForFlushing(int ioTaskQueueSizeForFlushing) {
+    this.ioTaskQueueSizeForFlushing = ioTaskQueueSizeForFlushing;
+  }
+
+  public boolean isEnableQueryMemoryEstimation() {
+    return enableQueryMemoryEstimation;
+  }
+
+  public void setEnableQueryMemoryEstimation(boolean enableQueryMemoryEstimation) {
+    this.enableQueryMemoryEstimation = enableQueryMemoryEstimation;
+  }
+
+  public int getAuthorCacheSize() {
+    return authorCacheSize;
+  }
+
+  public void setAuthorCacheSize(int authorCacheSize) {
+    this.authorCacheSize = authorCacheSize;
+  }
+
+  public int getAuthorCacheExpireTime() {
+    return authorCacheExpireTime;
+  }
+
+  public void setAuthorCacheExpireTime(int authorCacheExpireTime) {
+    this.authorCacheExpireTime = authorCacheExpireTime;
+  }
+
+  public int getUdfInitialByteArrayLengthForMemoryControl() {
+    return udfInitialByteArrayLengthForMemoryControl;
+  }
+
+  public void setUdfInitialByteArrayLengthForMemoryControl(
+      int udfInitialByteArrayLengthForMemoryControl) {
+    this.udfInitialByteArrayLengthForMemoryControl = udfInitialByteArrayLengthForMemoryControl;
+  }
+
+  public float getUdfMemoryBudgetInMB() {
+    return udfMemoryBudgetInMB;
+  }
+
+  public void setUdfMemoryBudgetInMB(float udfMemoryBudgetInMB) {
+    this.udfMemoryBudgetInMB = udfMemoryBudgetInMB;
+  }
+
+  public float getUdfReaderMemoryBudgetInMB() {
+    return udfReaderMemoryBudgetInMB;
+  }
+
+  public void setUdfReaderMemoryBudgetInMB(float udfReaderMemoryBudgetInMB) {
+    this.udfReaderMemoryBudgetInMB = udfReaderMemoryBudgetInMB;
+  }
+
+  public float getUdfTransformerMemoryBudgetInMB() {
+    return udfTransformerMemoryBudgetInMB;
+  }
+
+  public void setUdfTransformerMemoryBudgetInMB(float udfTransformerMemoryBudgetInMB) {
+    this.udfTransformerMemoryBudgetInMB = udfTransformerMemoryBudgetInMB;
+  }
+
+  public float getUdfCollectorMemoryBudgetInMB() {
+    return udfCollectorMemoryBudgetInMB;
+  }
+
+  public void setUdfCollectorMemoryBudgetInMB(float udfCollectorMemoryBudgetInMB) {
+    this.udfCollectorMemoryBudgetInMB = udfCollectorMemoryBudgetInMB;
+  }
+
   public int getCoordinatorReadExecutorSize() {
     return coordinatorReadExecutorSize;
   }
@@ -1443,12 +2032,12 @@ public class CommonConfig {
     this.metaDataCacheEnable = metaDataCacheEnable;
   }
 
-  public boolean isLastCacheEnable() {
-    return lastCacheEnable;
+  public boolean isEnableLastCache() {
+    return enableLastCache;
   }
 
-  public void setLastCacheEnable(boolean lastCacheEnable) {
-    this.lastCacheEnable = lastCacheEnable;
+  public void setEnableLastCache(boolean enableLastCache) {
+    this.enableLastCache = enableLastCache;
   }
 
   public int getMaxDeduplicatedPathNum() {
@@ -1683,28 +2272,148 @@ public class CommonConfig {
     this.upgradeThreadCount = upgradeThreadCount;
   }
 
-  public boolean isEnableSeqSpaceCompaction() {
-    return enableSeqSpaceCompaction;
+  public WALMode getWalMode() {
+    return walMode;
+  }
+
+  public void setWalMode(WALMode walMode) {
+    this.walMode = walMode;
+  }
+
+  public int getMaxWalNodesNum() {
+    return maxWalNodesNum;
+  }
+
+  public void setMaxWalNodesNum(int maxWalNodesNum) {
+    this.maxWalNodesNum = maxWalNodesNum;
+  }
+
+  public long getFsyncWalDelayInMs() {
+    return fsyncWalDelayInMs;
+  }
+
+  public void setFsyncWalDelayInMs(long fsyncWalDelayInMs) {
+    this.fsyncWalDelayInMs = fsyncWalDelayInMs;
+  }
+
+  public int getWalBufferSizeInByte() {
+    return walBufferSizeInByte;
+  }
+
+  public void setWalBufferSizeInByte(int walBufferSizeInByte) {
+    this.walBufferSizeInByte = walBufferSizeInByte;
+  }
+
+  public int getWalBufferQueueCapacity() {
+    return walBufferQueueCapacity;
+  }
+
+  public void setWalBufferQueueCapacity(int walBufferQueueCapacity) {
+    this.walBufferQueueCapacity = walBufferQueueCapacity;
+  }
+
+  public long getWalFileSizeThresholdInByte() {
+    return walFileSizeThresholdInByte;
+  }
+
+  public void setWalFileSizeThresholdInByte(long walFileSizeThresholdInByte) {
+    this.walFileSizeThresholdInByte = walFileSizeThresholdInByte;
+  }
+
+  public double getWalMinEffectiveInfoRatio() {
+    return walMinEffectiveInfoRatio;
+  }
+
+  public void setWalMinEffectiveInfoRatio(double walMinEffectiveInfoRatio) {
+    this.walMinEffectiveInfoRatio = walMinEffectiveInfoRatio;
+  }
+
+  public long getWalMemTableSnapshotThreshold() {
+    return walMemTableSnapshotThreshold;
+  }
+
+  public void setWalMemTableSnapshotThreshold(long walMemTableSnapshotThreshold) {
+    this.walMemTableSnapshotThreshold = walMemTableSnapshotThreshold;
+  }
+
+  public int getMaxWalMemTableSnapshotNum() {
+    return maxWalMemTableSnapshotNum;
+  }
+
+  public void setMaxWalMemTableSnapshotNum(int maxWalMemTableSnapshotNum) {
+    this.maxWalMemTableSnapshotNum = maxWalMemTableSnapshotNum;
+  }
+
+  public long getDeleteWalFilesPeriodInMs() {
+    return deleteWalFilesPeriodInMs;
+  }
+
+  public void setDeleteWalFilesPeriodInMs(long deleteWalFilesPeriodInMs) {
+    this.deleteWalFilesPeriodInMs = deleteWalFilesPeriodInMs;
+  }
+
+  public long getIotConsensusThrottleThresholdInByte() {
+    return iotConsensusThrottleThresholdInByte;
+  }
+
+  public void setIotConsensusThrottleThresholdInByte(long iotConsensusThrottleThresholdInByte) {
+    this.iotConsensusThrottleThresholdInByte = iotConsensusThrottleThresholdInByte;
+  }
+
+  public long getIotConsensusCacheWindowTimeInMs() {
+    return iotConsensusCacheWindowTimeInMs;
+  }
+
+  public void setIotConsensusCacheWindowTimeInMs(long iotConsensusCacheWindowTimeInMs) {
+    this.iotConsensusCacheWindowTimeInMs = iotConsensusCacheWindowTimeInMs;
+  }
+
+  public boolean isEnableWatermark() {
+    return enableWatermark;
+  }
+
+  public void setEnableWatermark(boolean enableWatermark) {
+    this.enableWatermark = enableWatermark;
+  }
+
+  public String getWatermarkSecretKey() {
+    return watermarkSecretKey;
+  }
+
+  public void setWatermarkSecretKey(String watermarkSecretKey) {
+    this.watermarkSecretKey = watermarkSecretKey;
+  }
+
+  public String getWatermarkBitString() {
+    return watermarkBitString;
+  }
+
+  public void setWatermarkBitString(String watermarkBitString) {
+    this.watermarkBitString = watermarkBitString;
+  }
+
+  public String getWatermarkMethod() {
+    return watermarkMethod;
   }
 
-  public void setEnableSeqSpaceCompaction(boolean enableSeqSpaceCompaction) {
-    this.enableSeqSpaceCompaction = enableSeqSpaceCompaction;
+  public void setWatermarkMethod(String watermarkMethod) {
+    this.watermarkMethod = watermarkMethod;
   }
 
-  public boolean isEnableUnseqSpaceCompaction() {
-    return enableUnseqSpaceCompaction;
+  public boolean isEnableInfluxDBRpcService() {
+    return enableInfluxDBRpcService;
   }
 
-  public void setEnableUnseqSpaceCompaction(boolean enableUnseqSpaceCompaction) {
-    this.enableUnseqSpaceCompaction = enableUnseqSpaceCompaction;
+  public void setEnableInfluxDBRpcService(boolean enableInfluxDBRpcService) {
+    this.enableInfluxDBRpcService = enableInfluxDBRpcService;
   }
 
-  public boolean isEnableCrossSpaceCompaction() {
-    return enableCrossSpaceCompaction;
+  public int getInfluxDBRpcPort() {
+    return influxDBRpcPort;
   }
 
-  public void setEnableCrossSpaceCompaction(boolean enableCrossSpaceCompaction) {
-    this.enableCrossSpaceCompaction = enableCrossSpaceCompaction;
+  public void setInfluxDBRpcPort(int influxDBRpcPort) {
+    this.influxDBRpcPort = influxDBRpcPort;
   }
 
   public boolean isReadOnly() {
diff --git a/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonDescriptor.java b/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonDescriptor.java
index a17c973deb..cf4d022b72 100644
--- a/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonDescriptor.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonDescriptor.java
@@ -24,8 +24,12 @@ import org.apache.iotdb.commons.enums.HandleSystemErrorStrategy;
 import org.apache.iotdb.commons.loadbalance.LeaderDistributionPolicy;
 import org.apache.iotdb.commons.loadbalance.RegionGroupExtensionPolicy;
 import org.apache.iotdb.commons.utils.datastructure.TVListSortAlgorithm;
+import org.apache.iotdb.commons.wal.WALMode;
 import org.apache.iotdb.confignode.rpc.thrift.TGlobalConfig;
+import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
+import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
+import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -255,6 +259,14 @@ public class CommonDescriptor {
                     String.valueOf(CONF.getDiskSpaceWarningThreshold()))
                 .trim()));
 
+    /* Memory Control Configuration */
+    CONF.setEnableMemControl(
+        (Boolean.parseBoolean(
+            properties.getProperty(
+                "enable_mem_control", Boolean.toString(CONF.isEnableMemControl())))));
+    LOGGER.info("IoTDB enable memory control: {}", CONF.isEnableMemControl());
+    initMemoryAllocate(properties);
+
     /* Schema Engine Configuration */
     CONF.setCoordinatorReadExecutorSize(
         Integer.parseInt(
@@ -309,6 +321,126 @@ public class CommonDescriptor {
     loadAutoCreateSchemaProps(properties);
 
     /* Query Configurations */
+    String readConsistencyLevel =
+        properties.getProperty("read_consistency_level", CONF.getReadConsistencyLevel()).trim();
+    if (readConsistencyLevel.equals("strong") || readConsistencyLevel.equals("weak")) {
+      CONF.setReadConsistencyLevel(readConsistencyLevel);
+    } else {
+      LOGGER.warn(
+          String.format(
+              "Unknown read_consistency_level: %s, please set to \"strong\" or \"weak\"",
+              readConsistencyLevel));
+    }
+
+    CONF.setMetaDataCacheEnable(
+        Boolean.parseBoolean(
+            properties
+                .getProperty(
+                    "meta_data_cache_enable", Boolean.toString(CONF.isMetaDataCacheEnable()))
+                .trim()));
+
+    String queryMemoryAllocateProportion =
+        properties.getProperty("chunk_timeseriesmeta_free_memory_proportion");
+    if (queryMemoryAllocateProportion != null) {
+      String[] proportions = queryMemoryAllocateProportion.split(":");
+      int proportionSum = 0;
+      for (String proportion : proportions) {
+        proportionSum += Integer.parseInt(proportion.trim());
+      }
+      long maxMemoryAvailable = CONF.getAllocateMemoryForRead();
+      if (proportionSum != 0) {
+        try {
+          CONF.setAllocateMemoryForBloomFilterCache(
+              maxMemoryAvailable * Integer.parseInt(proportions[0].trim()) / proportionSum);
+          CONF.setAllocateMemoryForChunkCache(
+              maxMemoryAvailable * Integer.parseInt(proportions[1].trim()) / proportionSum);
+          CONF.setAllocateMemoryForTimeSeriesMetaDataCache(
+              maxMemoryAvailable * Integer.parseInt(proportions[2].trim()) / proportionSum);
+          CONF.setAllocateMemoryForCoordinator(
+              maxMemoryAvailable * Integer.parseInt(proportions[3].trim()) / proportionSum);
+          CONF.setAllocateMemoryForOperators(
+              maxMemoryAvailable * Integer.parseInt(proportions[4].trim()) / proportionSum);
+          CONF.setAllocateMemoryForDataExchange(
+              maxMemoryAvailable * Integer.parseInt(proportions[5].trim()) / proportionSum);
+          CONF.setAllocateMemoryForTimeIndex(
+              maxMemoryAvailable * Integer.parseInt(proportions[6].trim()) / proportionSum);
+        } catch (Exception e) {
+          throw new RuntimeException(
+              "Each subsection of configuration item chunkmeta_chunk_timeseriesmeta_free_memory_proportion"
+                  + " should be an integer, which is "
+                  + queryMemoryAllocateProportion);
+        }
+      }
+    }
+
+    // metadata cache is disabled, we need to move all their allocated memory to other parts
+    if (!CONF.isMetaDataCacheEnable()) {
+      long sum =
+          CONF.getAllocateMemoryForBloomFilterCache()
+              + CONF.getAllocateMemoryForChunkCache()
+              + CONF.getAllocateMemoryForTimeSeriesMetaDataCache();
+      CONF.setAllocateMemoryForBloomFilterCache(0);
+      CONF.setAllocateMemoryForChunkCache(0);
+      CONF.setAllocateMemoryForTimeSeriesMetaDataCache(0);
+      long partForDataExchange = sum / 2;
+      long partForOperators = sum - partForDataExchange;
+      CONF.setAllocateMemoryForDataExchange(
+          CONF.getAllocateMemoryForDataExchange() + partForDataExchange);
+      CONF.setAllocateMemoryForOperators(CONF.getAllocateMemoryForOperators() + partForOperators);
+    }
+
+    CONF.setEnableLastCache(
+        Boolean.parseBoolean(
+            properties.getProperty(
+                "enable_last_cache", Boolean.toString(CONF.isEnableLastCache()))));
+
+    CONF.setMaxDeduplicatedPathNum(
+        Integer.parseInt(
+            properties.getProperty(
+                "max_deduplicated_path_num", Integer.toString(CONF.getMaxDeduplicatedPathNum()))));
+
+    loadShuffleProps(properties);
+
+    CONF.setMaxTsBlockSizeInBytes(
+        Integer.parseInt(
+            properties.getProperty(
+                "max_ts_block_size_in_bytes", Integer.toString(CONF.getMaxTsBlockLineNumber()))));
+
+    CONF.setMaxTsBlockLineNumber(
+        Integer.parseInt(
+            properties.getProperty(
+                "max_ts_block_line_number", Integer.toString(CONF.getMaxTsBlockLineNumber()))));
+
+    CONF.setSlowQueryThreshold(
+        Long.parseLong(
+            properties.getProperty(
+                "slow_query_threshold", String.valueOf(CONF.getSlowQueryThreshold()))));
+
+    CONF.setQueryTimeoutThreshold(
+        Long.parseLong(
+            properties.getProperty(
+                "query_timeout_threshold", Long.toString(CONF.getQueryTimeoutThreshold()))));
+
+    CONF.setMaxAllowedConcurrentQueries(
+        Integer.parseInt(
+            properties.getProperty(
+                "max_allowed_concurrent_queries",
+                Integer.toString(CONF.getMaxAllowedConcurrentQueries()))));
+    if (CONF.getMaxAllowedConcurrentQueries() <= 0) {
+      CONF.setMaxAllowedConcurrentQueries(1000);
+    }
+
+    CONF.setQueryThreadCount(
+        Integer.parseInt(
+            properties.getProperty(
+                "query_thread_count", Integer.toString(CONF.getQueryThreadCount()))));
+    if (CONF.getQueryThreadCount() <= 0) {
+      CONF.setQueryThreadCount(Runtime.getRuntime().availableProcessors());
+    }
+
+    CONF.setBatchSize(
+        Integer.parseInt(
+            properties.getProperty("batch_size", Integer.toString(CONF.getBatchSize()))));
 
     /* Storage Engine Configuration */
     CONF.setTimestampPrecision(
@@ -385,17 +517,27 @@ public class CommonDescriptor {
             properties.getProperty(
                 "upgrade_thread_count", Integer.toString(CONF.getUpgradeThreadCount()))));
 
-    String readConsistencyLevel =
-        properties.getProperty("read_consistency_level", CONF.getReadConsistencyLevel()).trim();
-    if (readConsistencyLevel.equals("strong") || readConsistencyLevel.equals("weak")) {
-      CONF.setReadConsistencyLevel(readConsistencyLevel);
-    } else {
-      LOGGER.warn(
-          String.format(
-              "Unknown read_consistency_level: %s, please set to \"strong\" or \"weak\"",
-              readConsistencyLevel));
-    }
+    /* Compaction Configurations */
+    // TODO: Move from IoTDBConfig
+
+    /* Write Ahead Log Configuration */
+    loadWALProps(properties);
 
+    /* TsFile Configurations */
+    loadTsFileProps(properties);
+
+    /* Watermark Configuration */
+    CONF.setEnableWatermark(
+        Boolean.parseBoolean(
+            properties.getProperty(
+                "enable_watermark", Boolean.toString(CONF.isEnableWatermark()).trim())));
+    CONF.setWatermarkSecretKey(
+        properties.getProperty("watermark_secret_key", CONF.getWatermarkSecretKey()));
+    CONF.setWatermarkBitString(
+        properties.getProperty("watermark_bit_string", CONF.getWatermarkBitString()));
+    CONF.setWatermarkMethod(properties.getProperty("watermark_method", CONF.getWatermarkMethod()));
+
+    /* Authorization Configuration */
     CONF.setAuthorizerProvider(
         properties.getProperty("authorizer_provider_class", CONF.getAuthorizerProvider()).trim());
 
@@ -407,19 +549,111 @@ public class CommonDescriptor {
 
     CONF.setAdminPassword(properties.getProperty("admin_password", CONF.getAdminPassword()).trim());
 
-    CONF.setEncryptDecryptProvider(
+    CONF.setIotdbServerEncryptDecryptProvider(
         properties
-            .getProperty("iotdb_server_encrypt_decrypt_provider", CONF.getEncryptDecryptProvider())
+            .getProperty(
+                "iotdb_server_encrypt_decrypt_provider",
+                CONF.getIotdbServerEncryptDecryptProvider())
             .trim());
 
-    CONF.setEncryptDecryptProviderParameter(
+    CONF.setIotdbServerEncryptDecryptProviderParameter(
         properties.getProperty(
             "iotdb_server_encrypt_decrypt_provider_parameter",
-            CONF.getEncryptDecryptProviderParameter()));
+            CONF.getIotdbServerEncryptDecryptProviderParameter()));
+
+    CONF.setAuthorCacheSize(
+      Integer.parseInt(
+        properties.getProperty(
+          "author_cache_size", String.valueOf(CONF.getAuthorCacheSize()))));
+
+    CONF.setAuthorCacheExpireTime(
+      Integer.parseInt(
+        properties.getProperty(
+          "author_cache_expire_time", String.valueOf(CONF.getAuthorCacheExpireTime()))));
+
+    /* UDF Configuration */
+    loadUDFProps(properties);
+
+    /* Trigger Configuration */
+    loadTriggerProps(properties);
+
+    /* Select-Into Configuration */
+    CONF.setSelectIntoInsertTabletPlanRowLimit(
+      Integer.parseInt(
+        properties.getProperty(
+          "select_into_insert_tablet_plan_row_limit",
+          String.valueOf(CONF.getSelectIntoInsertTabletPlanRowLimit()))));
+    CONF.setIntoOperationExecutionThreadCount(
+      Integer.parseInt(
+        properties.getProperty(
+          "into_operation_execution_thread_count",
+          String.valueOf(CONF.getIntoOperationExecutionThreadCount()))));
+    if (CONF.getIntoOperationExecutionThreadCount() <= 0) {
+      CONF.setIntoOperationExecutionThreadCount(2);
+    }
+
+    /* Continuous Query Configuration */
+    loadCQConfig(properties);
+
+    /* PIPE Configuration */
+    CONF.setIpWhiteList(properties.getProperty("ip_white_list", CONF.getIpWhiteList()));
+    CONF.setMaxNumberOfSyncFileRetry(
+      Integer.parseInt(
+        properties
+          .getProperty(
+            "max_number_of_sync_file_retry",
+            Integer.toString(CONF.getMaxNumberOfSyncFileRetry()))
+          .trim()));
+
+    /* RatisConsensus Configuration */
+    loadRatisConsensusConfig(properties);
+
+    /* Procedure Configuration */
+    CONF.setProcedureCoreWorkerThreadsCount(
+      Integer.parseInt(
+        properties
+          .getProperty(
+            "procedure_core_worker_thread_count",
+            String.valueOf(CONF.getProcedureCoreWorkerThreadsCount()))
+          .trim()));
+
+    CONF.setProcedureCompletedCleanInterval(
+      Integer.parseInt(
+        properties
+          .getProperty(
+            "procedure_completed_clean_interval",
+            String.valueOf(CONF.getProcedureCompletedCleanInterval()))
+          .trim()));
+
+    CONF.setProcedureCompletedEvictTTL(
+      Integer.parseInt(
+        properties
+          .getProperty(
+            "procedure_completed_evict_ttl",
+            String.valueOf(CONF.getProcedureCompletedEvictTTL()))
+          .trim()));
+
+    /* MQTT Broker Configuration */
+    loadMqttProps(properties);
+
+    /* REST Service Configuration */
+    // TODO: Rest service
+
+    /* InfluxDB RPC Service Configuration */
+    CONF.setEnableInfluxDBRpcService(
+      Boolean.parseBoolean(
+        properties
+          .getProperty(
+            "enable_influxdb_rpc_service",
+            Boolean.toString(CONF.isEnableInfluxDBRpcService()))
+          .trim()));
 
-    CONF.setUdfDir(properties.getProperty("udf_lib_dir", CONF.getUdfDir()).trim());
+    CONF.setInfluxDBRpcPort(
+      Integer.parseInt(
+        properties
+          .getProperty("influxdb_rpc_port", Integer.toString(CONF.getInfluxDBRpcPort()))
+          .trim()));
 
-    CONF.setTriggerDir(properties.getProperty("trigger_lib_dir", CONF.getTriggerDir()).trim());
 
     CONF.setSyncDir(properties.getProperty("dn_sync_dir", CONF.getSyncDir()).trim());
 
@@ -430,6 +664,177 @@ public class CommonDescriptor {
             .split(","));
   }
 
+  private void initMemoryAllocate(Properties properties) {
+    String memoryAllocateProportion =
+        properties.getProperty("storage_query_schema_consensus_free_memory_proportion");
+    if (memoryAllocateProportion != null) {
+      String[] proportions = memoryAllocateProportion.split(":");
+      int proportionSum = 0;
+      for (String proportion : proportions) {
+        proportionSum += Integer.parseInt(proportion.trim());
+      }
+      long maxMemoryAvailable = Runtime.getRuntime().maxMemory();
+      if (proportionSum != 0) {
+        CONF.setAllocateMemoryForStorageEngine(
+            maxMemoryAvailable * Integer.parseInt(proportions[0].trim()) / proportionSum);
+        CONF.setAllocateMemoryForRead(
+            maxMemoryAvailable * Integer.parseInt(proportions[1].trim()) / proportionSum);
+        CONF.setAllocateMemoryForSchema(
+            maxMemoryAvailable * Integer.parseInt(proportions[2].trim()) / proportionSum);
+        CONF.setAllocateMemoryForConsensus(
+            maxMemoryAvailable * Integer.parseInt(proportions[3].trim()) / proportionSum);
+      }
+    }
+
+    LOGGER.info("initial allocateMemoryForRead = {}", CONF.getAllocateMemoryForRead());
+    LOGGER.info("initial allocateMemoryForWrite = {}", CONF.getAllocateMemoryForStorageEngine());
+    LOGGER.info("initial allocateMemoryForSchema = {}", CONF.getAllocateMemoryForSchema());
+    LOGGER.info("initial allocateMemoryForConsensus = {}", CONF.getAllocateMemoryForConsensus());
+
+    initSchemaMemoryAllocate(properties);
+    initStorageEngineAllocate(properties);
+
+    CONF.setConcurrentWritingTimePartition(
+        Integer.parseInt(
+            properties.getProperty(
+                "concurrent_writing_time_partition",
+                String.valueOf(CONF.getConcurrentWritingTimePartition()))));
+
+    CONF.setPrimitiveArraySize(
+        (Integer.parseInt(
+            properties.getProperty(
+                "primitive_array_size", String.valueOf(CONF.getPrimitiveArraySize())))));
+
+    CONF.setChunkMetadataSizeProportion(
+        Double.parseDouble(
+            properties.getProperty(
+                "chunk_metadata_size_proportion",
+                Double.toString(CONF.getChunkMetadataSizeProportion()))));
+
+    CONF.setFlushProportion(
+        Double.parseDouble(
+            properties
+                .getProperty("flush_proportion", Double.toString(CONF.getFlushProportion()))
+                .trim()));
+
+    CONF.setBufferedArraysMemoryProportion(
+        Double.parseDouble(
+            properties
+                .getProperty(
+                    "buffered_arrays_memory_proportion",
+                    Double.toString(CONF.getBufferedArraysMemoryProportion()))
+                .trim()));
+
+    CONF.setRejectProportion(
+        Double.parseDouble(
+            properties
+                .getProperty("reject_proportion", Double.toString(CONF.getRejectProportion()))
+                .trim()));
+
+    CONF.setWriteMemoryVariationReportProportion(
+        Double.parseDouble(
+            properties
+                .getProperty(
+                    "write_memory_variation_report_proportion",
+                    Double.toString(CONF.getWriteMemoryVariationReportProportion()))
+                .trim()));
+
+    CONF.setCheckPeriodWhenInsertBlocked(
+        Integer.parseInt(
+            properties.getProperty(
+                "check_period_when_insert_blocked",
+                Integer.toString(CONF.getCheckPeriodWhenInsertBlocked()))));
+
+    CONF.setIoTaskQueueSizeForFlushing(
+        Integer.parseInt(
+            properties.getProperty(
+                "io_task_queue_size_for_flushing",
+                Integer.toString(CONF.getIoTaskQueueSizeForFlushing()))));
+
+    CONF.setEnableQueryMemoryEstimation(
+        Boolean.parseBoolean(
+            properties.getProperty(
+                "enable_query_memory_estimation",
+                Boolean.toString(CONF.isEnableQueryMemoryEstimation()))));
+  }
+
+  private void initSchemaMemoryAllocate(Properties properties) {
+    long schemaMemoryTotal = CONF.getAllocateMemoryForSchema();
+
+    int proportionSum = 10;
+    int schemaRegionProportion = 8;
+    int schemaCacheProportion = 1;
+    int partitionCacheProportion = 0;
+    int lastCacheProportion = 1;
+
+    String schemaMemoryAllocatePortion =
+        properties.getProperty("schema_memory_allocate_proportion");
+    if (schemaMemoryAllocatePortion != null) {
+      CONF.setDefaultSchemaMemoryConfig(false);
+      String[] proportions = schemaMemoryAllocatePortion.split(":");
+      int loadedProportionSum = 0;
+      for (String proportion : proportions) {
+        loadedProportionSum += Integer.parseInt(proportion.trim());
+      }
+
+      if (loadedProportionSum != 0) {
+        proportionSum = loadedProportionSum;
+        schemaRegionProportion = Integer.parseInt(proportions[0].trim());
+        schemaCacheProportion = Integer.parseInt(proportions[1].trim());
+        partitionCacheProportion = Integer.parseInt(proportions[2].trim());
+        lastCacheProportion = Integer.parseInt(proportions[3].trim());
+      }
+    } else {
+      CONF.setDefaultSchemaMemoryConfig(true);
+    }
+
+    CONF.setAllocateMemoryForSchemaRegion(
+        schemaMemoryTotal * schemaRegionProportion / proportionSum);
+    LOGGER.info("allocateMemoryForSchemaRegion = {}", CONF.getAllocateMemoryForSchemaRegion());
+
+    CONF.setAllocateMemoryForSchemaCache(schemaMemoryTotal * schemaCacheProportion / proportionSum);
+    LOGGER.info("allocateMemoryForSchemaCache = {}", CONF.getAllocateMemoryForSchemaCache());
+
+    CONF.setAllocateMemoryForPartitionCache(
+        schemaMemoryTotal * partitionCacheProportion / proportionSum);
+    LOGGER.info("allocateMemoryForPartitionCache = {}", CONF.getAllocateMemoryForPartitionCache());
+
+    CONF.setAllocateMemoryForLastCache(schemaMemoryTotal * lastCacheProportion / proportionSum);
+    LOGGER.info("allocateMemoryForLastCache = {}", CONF.getAllocateMemoryForLastCache());
+  }
+
+  private void initStorageEngineAllocate(Properties properties) {
+    String allocationRatio = properties.getProperty("storage_engine_memory_proportion", "8:2");
+    String[] proportions = allocationRatio.split(":");
+    int proportionForWrite = Integer.parseInt(proportions[0].trim());
+    int proportionForCompaction = Integer.parseInt(proportions[1].trim());
+
+    double writeProportion =
+        ((double) (proportionForWrite) / (double) (proportionForCompaction + proportionForWrite));
+
+    String allocationRatioForWrite = properties.getProperty("write_memory_proportion", "19:1");
+    proportions = allocationRatioForWrite.split(":");
+    int proportionForMemTable = Integer.parseInt(proportions[0].trim());
+    int proportionForTimePartitionInfo = Integer.parseInt(proportions[1].trim());
+
+    double memtableProportionForWrite =
+        ((double) (proportionForMemTable)
+            / (double) (proportionForMemTable + proportionForTimePartitionInfo));
+    double timePartitionInfoForWrite =
+        ((double) (proportionForTimePartitionInfo)
+            / (double) (proportionForMemTable + proportionForTimePartitionInfo));
+    CONF.setWriteProportionForMemtable(writeProportion * memtableProportionForWrite);
+
+    CONF.setAllocateMemoryForTimePartitionInfo(
+        (long)
+            ((writeProportion * timePartitionInfoForWrite)
+                * CONF.getAllocateMemoryForStorageEngine()));
+
+    CONF.setCompactionProportion(
+        ((double) (proportionForCompaction)
+            / (double) (proportionForCompaction + proportionForWrite)));
+  }
+
   private void loadAutoCreateSchemaProps(Properties properties) {
 
     CONF.setEnableAutoCreateSchema(
@@ -466,22 +871,29 @@ public class CommonDescriptor {
                 "nan_string_infer_type", CONF.getNanStringInferType().toString())));
 
     CONF.setDefaultBooleanEncoding(
-        properties.getProperty(
-            "default_boolean_encoding", CONF.getDefaultBooleanEncoding().toString()));
+        TSEncoding.parse(
+            properties.getProperty(
+                "default_boolean_encoding", CONF.getDefaultBooleanEncoding().toString())));
     CONF.setDefaultInt32Encoding(
-        properties.getProperty(
-            "default_int32_encoding", CONF.getDefaultInt32Encoding().toString()));
+        TSEncoding.parse(
+            properties.getProperty(
+                "default_int32_encoding", CONF.getDefaultInt32Encoding().toString())));
     CONF.setDefaultInt64Encoding(
-        properties.getProperty(
-            "default_int64_encoding", CONF.getDefaultInt64Encoding().toString()));
+        TSEncoding.parse(
+            properties.getProperty(
+                "default_int64_encoding", CONF.getDefaultInt64Encoding().toString())));
     CONF.setDefaultFloatEncoding(
-        properties.getProperty(
-            "default_float_encoding", CONF.getDefaultFloatEncoding().toString()));
+        TSEncoding.parse(
+            properties.getProperty(
+                "default_float_encoding", CONF.getDefaultFloatEncoding().toString())));
     CONF.setDefaultDoubleEncoding(
-        properties.getProperty(
-            "default_double_encoding", CONF.getDefaultDoubleEncoding().toString()));
+        TSEncoding.parse(
+            properties.getProperty(
+                "default_double_encoding", CONF.getDefaultDoubleEncoding().toString())));
     CONF.setDefaultTextEncoding(
-        properties.getProperty("default_text_encoding", CONF.getDefaultTextEncoding().toString()));
+        TSEncoding.parse(
+            properties.getProperty(
+                "default_text_encoding", CONF.getDefaultTextEncoding().toString())));
   }
 
   // Timed flush memtable
@@ -543,6 +955,680 @@ public class CommonDescriptor {
     }
   }
 
+  public void loadShuffleProps(Properties properties) {
+    CONF.setMppDataExchangeCorePoolSize(
+        Integer.parseInt(
+            properties.getProperty(
+                "mpp_data_exchange_core_pool_size",
+                Integer.toString(CONF.getMppDataExchangeCorePoolSize()))));
+    CONF.setMppDataExchangeMaxPoolSize(
+        Integer.parseInt(
+            properties.getProperty(
+                "mpp_data_exchange_max_pool_size",
+                Integer.toString(CONF.getMppDataExchangeMaxPoolSize()))));
+    CONF.setMppDataExchangeKeepAliveTimeInMs(
+        Integer.parseInt(
+            properties.getProperty(
+                "mpp_data_exchange_keep_alive_time_in_ms",
+                Integer.toString(CONF.getMppDataExchangeKeepAliveTimeInMs()))));
+
+    CONF.setDriverTaskExecutionTimeSliceInMs(
+        Integer.parseInt(
+            properties.getProperty(
+                "driver_task_execution_time_slice_in_ms",
+                Integer.toString(CONF.getDriverTaskExecutionTimeSliceInMs()))));
+  }
+
+  private void loadWALProps(Properties properties) {
+    CONF.setWalMode(
+      WALMode.valueOf((properties.getProperty("wal_mode", CONF.getWalMode().toString()))));
+
+    int maxWalNodesNum =
+      Integer.parseInt(
+        properties.getProperty(
+          "max_wal_nodes_num", Integer.toString(CONF.getMaxWalNodesNum())));
+    if (maxWalNodesNum > 0) {
+      CONF.setMaxWalNodesNum(maxWalNodesNum);
+    }
+
+    long fsyncWalDelayInMs =
+      Long.parseLong(
+        properties.getProperty(
+          "fsync_wal_delay_in_ms", Long.toString(CONF.getFsyncWalDelayInMs())));
+    if (fsyncWalDelayInMs > 0) {
+      CONF.setFsyncWalDelayInMs(fsyncWalDelayInMs);
+    }
+
+    int walBufferSize =
+      Integer.parseInt(
+        properties.getProperty(
+          "wal_buffer_size_in_byte", Integer.toString(CONF.getWalBufferSizeInByte())));
+    if (walBufferSize > 0) {
+      CONF.setWalBufferSizeInByte(walBufferSize);
+    }
+
+    int walBufferQueueCapacity =
+      Integer.parseInt(
+        properties.getProperty(
+          "wal_buffer_queue_capacity", Integer.toString(CONF.getWalBufferQueueCapacity())));
+    if (walBufferQueueCapacity > 0) {
+      CONF.setWalBufferQueueCapacity(walBufferQueueCapacity);
+    }
+
+    long walFileSizeThreshold =
+      Long.parseLong(
+        properties.getProperty(
+          "wal_file_size_threshold_in_byte",
+          Long.toString(CONF.getWalFileSizeThresholdInByte())));
+    if (walFileSizeThreshold > 0) {
+      CONF.setWalFileSizeThresholdInByte(walFileSizeThreshold);
+    }
+
+    double walMinEffectiveInfoRatio =
+      Double.parseDouble(
+        properties.getProperty(
+          "wal_min_effective_info_ratio",
+          Double.toString(CONF.getWalMinEffectiveInfoRatio())));
+    if (walMinEffectiveInfoRatio > 0) {
+      CONF.setWalMinEffectiveInfoRatio(walMinEffectiveInfoRatio);
+    }
+
+    long walMemTableSnapshotThreshold =
+      Long.parseLong(
+        properties.getProperty(
+          "wal_memtable_snapshot_threshold_in_byte",
+          Long.toString(CONF.getWalMemTableSnapshotThreshold())));
+    if (walMemTableSnapshotThreshold > 0) {
+      CONF.setWalMemTableSnapshotThreshold(walMemTableSnapshotThreshold);
+    }
+
+    int maxWalMemTableSnapshotNum =
+      Integer.parseInt(
+        properties.getProperty(
+          "max_wal_memtable_snapshot_num",
+          Integer.toString(CONF.getMaxWalMemTableSnapshotNum())));
+    if (maxWalMemTableSnapshotNum > 0) {
+      CONF.setMaxWalMemTableSnapshotNum(maxWalMemTableSnapshotNum);
+    }
+
+    long deleteWalFilesPeriod =
+      Long.parseLong(
+        properties.getProperty(
+          "delete_wal_files_period_in_ms",
+          Long.toString(CONF.getDeleteWalFilesPeriodInMs())));
+    if (deleteWalFilesPeriod > 0) {
+      CONF.setDeleteWalFilesPeriodInMs(deleteWalFilesPeriod);
+    }
+
+    long throttleDownThresholdInByte =
+      Long.parseLong(
+        properties.getProperty(
+          "iot_consensus_throttle_threshold_in_byte",
+          Long.toString(CONF.getIotConsensusThrottleThresholdInByte())));
+    if (throttleDownThresholdInByte > 0) {
+      CONF.setIotConsensusThrottleThresholdInByte(throttleDownThresholdInByte);
+    }
+
+    long cacheWindowInMs =
+      Long.parseLong(
+        properties.getProperty(
+          "iot_consensus_cache_window_time_in_ms",
+          Long.toString(CONF.getIotConsensusCacheWindowTimeInMs())));
+    if (cacheWindowInMs > 0) {
+      CONF.setIotConsensusCacheWindowTimeInMs(cacheWindowInMs);
+    }
+  }
+
+  private void loadTsFileProps(Properties properties) {
+    TSFileConfig tsFileConfig = TSFileDescriptor.getInstance().getConfig();
+
+    tsFileConfig.setGroupSizeInByte(
+        Integer.parseInt(
+            properties.getProperty(
+                "group_size_in_byte", Integer.toString(tsFileConfig.getGroupSizeInByte()))));
+
+    tsFileConfig.setPageSizeInByte(
+        Integer.parseInt(
+            properties.getProperty(
+                "page_size_in_byte", Integer.toString(tsFileConfig.getPageSizeInByte()))));
+    if (tsFileConfig.getPageSizeInByte() > tsFileConfig.getGroupSizeInByte()) {
+      LOGGER.warn("page_size is greater than group size, will set it as the same with group size");
+      tsFileConfig.setPageSizeInByte(tsFileConfig.getGroupSizeInByte());
+    }
+
+    tsFileConfig.setMaxNumberOfPointsInPage(
+        Integer.parseInt(
+            properties.getProperty(
+                "max_number_of_points_in_page",
+                Integer.toString(tsFileConfig.getMaxNumberOfPointsInPage()))));
+
+    tsFileConfig.setPatternMatchingThreshold(
+        Integer.parseInt(
+            properties.getProperty(
+                "pattern_matching_threshold",
+                String.valueOf(tsFileConfig.getPatternMatchingThreshold()))));
+
+    tsFileConfig.setMaxStringLength(
+        Integer.parseInt(
+            properties.getProperty(
+                "max_string_length", Integer.toString(tsFileConfig.getMaxStringLength()))));
+
+    tsFileConfig.setFloatPrecision(
+        Integer.parseInt(
+            properties.getProperty(
+                "float_precision", Integer.toString(tsFileConfig.getFloatPrecision()))));
+
+    tsFileConfig.setTimeEncoder(
+        properties.getProperty("time_encoder", tsFileConfig.getTimeEncoder()));
+
+    tsFileConfig.setValueEncoder(
+        properties.getProperty("value_encoder", tsFileConfig.getValueEncoder()));
+
+    tsFileConfig.setCompressor(properties.getProperty("compressor", tsFileConfig.toString()));
+
+    tsFileConfig.setMaxDegreeOfIndexNode(
+        Integer.parseInt(
+            properties.getProperty(
+                "max_degree_of_index_node",
+                Integer.toString(tsFileConfig.getMaxDegreeOfIndexNode()))));
+
+    tsFileConfig.setFrequencyIntervalInMinute(
+        Integer.parseInt(
+            properties.getProperty(
+                "frequency_interval_in_minute",
+                Integer.toString(tsFileConfig.getFrequencyIntervalInMinute()))));
+
+    TSFileDescriptor.getInstance().overwriteConfigByCustomSettings(properties);
+  }
+
+  @SuppressWarnings("squid:S3518") // "proportionSum" can't be zero
+  private void loadUDFProps(Properties properties) {
+    String initialByteArrayLengthForMemoryControl =
+      properties.getProperty("udf_initial_byte_array_length_for_memory_control");
+    if (initialByteArrayLengthForMemoryControl != null) {
+      CONF.setUdfInitialByteArrayLengthForMemoryControl(
+        Integer.parseInt(initialByteArrayLengthForMemoryControl));
+    }
+
+    String memoryBudgetInMb = properties.getProperty("udf_memory_budget_in_mb");
+    if (memoryBudgetInMb != null) {
+      CONF.setUdfMemoryBudgetInMB(
+        (float)
+          Math.min(Float.parseFloat(memoryBudgetInMb), 0.2 * CONF.getAllocateMemoryForRead()));
+    }
+
+    String readerTransformerCollectorMemoryProportion =
+      properties.getProperty("udf_reader_transformer_collector_memory_proportion");
+    if (readerTransformerCollectorMemoryProportion != null) {
+      String[] proportions = readerTransformerCollectorMemoryProportion.split(":");
+      int proportionSum = 0;
+      for (String proportion : proportions) {
+        proportionSum += Integer.parseInt(proportion.trim());
+      }
+      float maxMemoryAvailable = CONF.getUdfMemoryBudgetInMB();
+      try {
+        CONF.setUdfReaderMemoryBudgetInMB(
+          maxMemoryAvailable * Integer.parseInt(proportions[0].trim()) / proportionSum);
+        CONF.setUdfTransformerMemoryBudgetInMB(
+          maxMemoryAvailable * Integer.parseInt(proportions[1].trim()) / proportionSum);
+        CONF.setUdfCollectorMemoryBudgetInMB(
+          maxMemoryAvailable * Integer.parseInt(proportions[2].trim()) / proportionSum);
+      } catch (Exception e) {
+        throw new RuntimeException(
+          "Each subsection of configuration item udf_reader_transformer_collector_memory_proportion"
+            + " should be an integer, which is "
+            + readerTransformerCollectorMemoryProportion);
+      }
+    }
+
+    CONF.setUdfDir(properties.getProperty("udf_lib_dir", CONF.getUdfDir()));
+  }
+
+  private void loadTriggerProps(Properties properties) {
+    CONF.setTriggerDir(properties.getProperty("trigger_lib_dir", CONF.getTriggerDir()));
+
+    CONF.setStatefulTriggerRetryNumWhenNotFound(
+      Integer.parseInt(
+        properties.getProperty(
+          "stateful_trigger_retry_num_when_not_found",
+          Integer.toString(CONF.getStatefulTriggerRetryNumWhenNotFound()))));
+
+    int tlogBufferSize =
+      Integer.parseInt(
+        properties.getProperty("tlog_buffer_size", Integer.toString(CONF.getTlogBufferSize())));
+    if (tlogBufferSize > 0) {
+      CONF.setTlogBufferSize(tlogBufferSize);
+    }
+
+    CONF.setTriggerForwardMaxQueueNumber(
+      Integer.parseInt(
+        properties.getProperty(
+          "trigger_forward_max_queue_number",
+          Integer.toString(CONF.getTriggerForwardMaxQueueNumber()))));
+    CONF.setTriggerForwardMaxSizePerQueue(
+      Integer.parseInt(
+        properties.getProperty(
+          "trigger_forward_max_size_per_queue",
+          Integer.toString(CONF.getTriggerForwardMaxSizePerQueue()))));
+    CONF.setTriggerForwardBatchSize(
+      Integer.parseInt(
+        properties.getProperty(
+          "trigger_forward_batch_size",
+          Integer.toString(CONF.getTriggerForwardBatchSize()))));
+    CONF.setTriggerForwardHTTPPoolSize(
+      Integer.parseInt(
+        properties.getProperty(
+          "trigger_forward_http_pool_size",
+          Integer.toString(CONF.getTriggerForwardHTTPPoolSize()))));
+    CONF.setTriggerForwardHTTPPOOLMaxPerRoute(
+      Integer.parseInt(
+        properties.getProperty(
+          "trigger_forward_http_pool_max_per_route",
+          Integer.toString(CONF.getTriggerForwardHTTPPOOLMaxPerRoute()))));
+    CONF.setTriggerForwardMQTTPoolSize(
+      Integer.parseInt(
+        properties.getProperty(
+          "trigger_forward_mqtt_pool_size",
+          Integer.toString(CONF.getTriggerForwardMQTTPoolSize()))));
+  }
+
+  private void loadCQConfig(Properties properties) {
+    int cqSubmitThread =
+      Integer.parseInt(
+        properties
+          .getProperty(
+            "continuous_query_submit_thread_count",
+            String.valueOf(CONF.getContinuousQueryThreadCount()))
+          .trim());
+    if (cqSubmitThread <= 0) {
+      LOGGER.warn(
+        "continuous_query_submit_thread_count should be greater than 0, but current value is {}, ignore that and use the default value {}",
+        cqSubmitThread,
+        CONF.getContinuousQueryThreadCount());
+      cqSubmitThread = CONF.getContinuousQueryThreadCount();
+    }
+    CONF.setContinuousQueryThreadCount(cqSubmitThread);
+
+    long cqMinEveryIntervalInMs =
+      Long.parseLong(
+        properties
+          .getProperty(
+            "continuous_query_min_every_interval_in_ms",
+            String.valueOf(CONF.getContinuousQueryMinEveryIntervalInMs()))
+          .trim());
+    if (cqMinEveryIntervalInMs <= 0) {
+      LOGGER.warn(
+        "continuous_query_min_every_interval_in_ms should be greater than 0, but current value is {}, ignore that and use the default value {}",
+        cqMinEveryIntervalInMs,
+        CONF.getContinuousQueryMinEveryIntervalInMs());
+      cqMinEveryIntervalInMs = CONF.getContinuousQueryMinEveryIntervalInMs();
+    }
+    CONF.setContinuousQueryMinEveryIntervalInMs(cqMinEveryIntervalInMs);
+  }
+
+  private void loadRatisConsensusConfig(Properties properties) {
+    CONF.setDataRegionRatisConsensusLogAppenderBufferSize(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "data_region_ratis_log_appender_buffer_size_max",
+            String.valueOf(CONF.getDataRegionRatisConsensusLogAppenderBufferSize()))
+          .trim()));
+
+    CONF.setConfigNodeRatisConsensusLogAppenderBufferSize(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "config_node_ratis_log_appender_buffer_size_max",
+            String.valueOf(CONF.getConfigNodeRatisConsensusLogAppenderBufferSize()))
+          .trim()));
+
+    CONF.setSchemaRegionRatisConsensusLogAppenderBufferSize(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "schema_region_ratis_log_appender_buffer_size_max",
+            String.valueOf(CONF.getSchemaRegionRatisConsensusLogAppenderBufferSize()))
+          .trim()));
+
+    CONF.setDataRegionRatisSnapshotTriggerThreshold(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "data_region_ratis_snapshot_trigger_threshold",
+            String.valueOf(CONF.getDataRegionRatisSnapshotTriggerThreshold()))
+          .trim()));
+
+    CONF.setConfigNodeRatisSnapshotTriggerThreshold(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "config_node_ratis_snapshot_trigger_threshold",
+            String.valueOf(CONF.getConfigNodeRatisSnapshotTriggerThreshold()))
+          .trim()));
+
+    CONF.setSchemaRegionRatisSnapshotTriggerThreshold(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "schema_region_ratis_snapshot_trigger_threshold",
+            String.valueOf(CONF.getSchemaRegionRatisSnapshotTriggerThreshold()))
+          .trim()));
+
+    CONF.setDataRegionRatisLogUnsafeFlushEnable(
+      Boolean.parseBoolean(
+        properties
+          .getProperty(
+            "data_region_ratis_log_unsafe_flush_enable",
+            String.valueOf(CONF.isDataRegionRatisLogUnsafeFlushEnable()))
+          .trim()));
+
+    CONF.setConfigNodeRatisLogUnsafeFlushEnable(
+      Boolean.parseBoolean(
+        properties
+          .getProperty(
+            "config_node_ratis_log_unsafe_flush_enable",
+            String.valueOf(CONF.isConfigNodeRatisLogUnsafeFlushEnable()))
+          .trim()));
+
+    CONF.setSchemaRegionRatisLogUnsafeFlushEnable(
+      Boolean.parseBoolean(
+        properties
+          .getProperty(
+            "schema_region_ratis_log_unsafe_flush_enable",
+            String.valueOf(CONF.isSchemaRegionRatisLogUnsafeFlushEnable()))
+          .trim()));
+
+    CONF.setDataRegionRatisLogSegmentSizeMax(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "data_region_ratis_log_segment_size_max_in_byte",
+            String.valueOf(CONF.getDataRegionRatisLogSegmentSizeMax()))
+          .trim()));
+
+    CONF.setConfigNodeRatisLogSegmentSizeMax(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "config_node_ratis_log_segment_size_max_in_byte",
+            String.valueOf(CONF.getConfigNodeRatisLogSegmentSizeMax()))
+          .trim()));
+
+    CONF.setSchemaRegionRatisLogSegmentSizeMax(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "schema_region_ratis_log_segment_size_max_in_byte",
+            String.valueOf(CONF.getSchemaRegionRatisLogSegmentSizeMax()))
+          .trim()));
+
+    CONF.setConfigNodeSimpleConsensusLogSegmentSizeMax(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "config_node_simple_consensus_log_segment_size_max_in_byte",
+            String.valueOf(CONF.getConfigNodeSimpleConsensusLogSegmentSizeMax()))
+          .trim()));
+
+    CONF.setDataRegionRatisGrpcFlowControlWindow(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "data_region_ratis_grpc_flow_control_window",
+            String.valueOf(CONF.getDataRegionRatisGrpcFlowControlWindow()))
+          .trim()));
+
+    CONF.setConfigNodeRatisGrpcFlowControlWindow(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "config_node_ratis_grpc_flow_control_window",
+            String.valueOf(CONF.getConfigNodeRatisGrpcFlowControlWindow()))
+          .trim()));
+
+    CONF.setSchemaRegionRatisGrpcFlowControlWindow(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "schema_region_ratis_grpc_flow_control_window",
+            String.valueOf(CONF.getSchemaRegionRatisGrpcFlowControlWindow()))
+          .trim()));
+
+    CONF.setDataRegionRatisRpcLeaderElectionTimeoutMinMs(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "data_region_ratis_rpc_leader_election_timeout_min_ms",
+            String.valueOf(CONF.getDataRegionRatisRpcLeaderElectionTimeoutMinMs()))
+          .trim()));
+
+    CONF.setConfigNodeRatisRpcLeaderElectionTimeoutMinMs(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "config_node_ratis_rpc_leader_election_timeout_min_ms",
+            String.valueOf(CONF.getConfigNodeRatisRpcLeaderElectionTimeoutMinMs()))
+          .trim()));
+
+    CONF.setSchemaRegionRatisRpcLeaderElectionTimeoutMinMs(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "schema_region_ratis_rpc_leader_election_timeout_min_ms",
+            String.valueOf(CONF.getSchemaRegionRatisRpcLeaderElectionTimeoutMinMs()))
+          .trim()));
+
+    CONF.setDataRegionRatisRpcLeaderElectionTimeoutMaxMs(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "data_region_ratis_rpc_leader_election_timeout_max_ms",
+            String.valueOf(CONF.getDataRegionRatisRpcLeaderElectionTimeoutMaxMs()))
+          .trim()));
+
+    CONF.setConfigNodeRatisRpcLeaderElectionTimeoutMaxMs(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "config_node_ratis_rpc_leader_election_timeout_max_ms",
+            String.valueOf(CONF.getConfigNodeRatisRpcLeaderElectionTimeoutMaxMs()))
+          .trim()));
+
+    CONF.setSchemaRegionRatisRpcLeaderElectionTimeoutMaxMs(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "schema_region_ratis_rpc_leader_election_timeout_max_ms",
+            String.valueOf(CONF.getSchemaRegionRatisRpcLeaderElectionTimeoutMaxMs()))
+          .trim()));
+
+    CONF.setConfigNodeRatisRequestTimeoutMs(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "config_node_ratis_request_timeout_ms",
+            String.valueOf(CONF.getConfigNodeRatisRequestTimeoutMs()))
+          .trim()));
+    CONF.setSchemaRegionRatisRequestTimeoutMs(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "schema_region_ratis_request_timeout_ms",
+            String.valueOf(CONF.getSchemaRegionRatisRequestTimeoutMs()))
+          .trim()));
+    CONF.setDataRegionRatisRequestTimeoutMs(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "data_region_ratis_request_timeout_ms",
+            String.valueOf(CONF.getDataRegionRatisRequestTimeoutMs()))
+          .trim()));
+
+    CONF.setConfigNodeRatisMaxRetryAttempts(
+      Integer.parseInt(
+        properties
+          .getProperty(
+            "config_node_ratis_max_retry_attempts",
+            String.valueOf(CONF.getConfigNodeRatisMaxRetryAttempts()))
+          .trim()));
+    CONF.setConfigNodeRatisInitialSleepTimeMs(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "config_node_ratis_initial_sleep_time_ms",
+            String.valueOf(CONF.getConfigNodeRatisInitialSleepTimeMs()))
+          .trim()));
+    CONF.setConfigNodeRatisMaxSleepTimeMs(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "config_node_ratis_max_sleep_time_ms",
+            String.valueOf(CONF.getConfigNodeRatisMaxSleepTimeMs()))
+          .trim()));
+
+    CONF.setDataRegionRatisMaxRetryAttempts(
+      Integer.parseInt(
+        properties
+          .getProperty(
+            "data_region_ratis_max_retry_attempts",
+            String.valueOf(CONF.getDataRegionRatisMaxRetryAttempts()))
+          .trim()));
+    CONF.setDataRegionRatisInitialSleepTimeMs(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "data_region_ratis_initial_sleep_time_ms",
+            String.valueOf(CONF.getDataRegionRatisInitialSleepTimeMs()))
+          .trim()));
+    CONF.setDataRegionRatisMaxSleepTimeMs(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "data_region_ratis_max_sleep_time_ms",
+            String.valueOf(CONF.getDataRegionRatisMaxSleepTimeMs()))
+          .trim()));
+
+    CONF.setSchemaRegionRatisMaxRetryAttempts(
+      Integer.parseInt(
+        properties
+          .getProperty(
+            "schema_region_ratis_max_retry_attempts",
+            String.valueOf(CONF.getSchemaRegionRatisMaxRetryAttempts()))
+          .trim()));
+    CONF.setSchemaRegionRatisInitialSleepTimeMs(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "schema_region_ratis_initial_sleep_time_ms",
+            String.valueOf(CONF.getSchemaRegionRatisInitialSleepTimeMs()))
+          .trim()));
+    CONF.setSchemaRegionRatisMaxSleepTimeMs(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "schema_region_ratis_max_sleep_time_ms",
+            String.valueOf(CONF.getSchemaRegionRatisMaxSleepTimeMs()))
+          .trim()));
+
+    CONF.setConfigNodeRatisPreserveLogsWhenPurge(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "config_node_ratis_preserve_logs_num_when_purge",
+            String.valueOf(CONF.getConfigNodeRatisPreserveLogsWhenPurge()))
+          .trim()));
+
+    CONF.setSchemaRegionRatisPreserveLogsWhenPurge(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "schema_region_ratis_preserve_logs_num_when_purge",
+            String.valueOf(CONF.getSchemaRegionRatisPreserveLogsWhenPurge()))
+          .trim()));
+
+    CONF.setDataRegionRatisPreserveLogsWhenPurge(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "data_region_ratis_preserve_logs_num_when_purge",
+            String.valueOf(CONF.getDataRegionRatisPreserveLogsWhenPurge()))
+          .trim()));
+
+    CONF.setRatisFirstElectionTimeoutMinMs(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "ratis_first_election_timeout_min_ms",
+            String.valueOf(CONF.getRatisFirstElectionTimeoutMinMs()))
+          .trim()));
+
+    CONF.setRatisFirstElectionTimeoutMaxMs(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "ratis_first_election_timeout_max_ms",
+            String.valueOf(CONF.getRatisFirstElectionTimeoutMaxMs()))
+          .trim()));
+
+    CONF.setConfigNodeRatisLogMax(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "config_node_ratis_log_max_size",
+            String.valueOf(CONF.getConfigNodeRatisLogMax()))
+          .trim()));
+
+    CONF.setSchemaRegionRatisLogMax(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "schema_region_ratis_log_max_size",
+            String.valueOf(CONF.getSchemaRegionRatisLogMax()))
+          .trim()));
+
+    CONF.setDataRegionRatisLogMax(
+      Long.parseLong(
+        properties
+          .getProperty(
+            "data_region_ratis_log_max_size",
+            String.valueOf(CONF.getDataRegionRatisLogMax()))
+          .trim()));
+  }
+
+  // Mqtt related
+  private void loadMqttProps(Properties properties) {
+    CONF.setMqttDir(properties.getProperty("mqtt_root_dir", CONF.getMqttDir()));
+
+    if (properties.getProperty(IoTDBConstant.ENABLE_MQTT) != null) {
+      CONF.setEnableMqttService(
+        Boolean.parseBoolean(properties.getProperty(IoTDBConstant.ENABLE_MQTT)));
+    }
+
+    if (properties.getProperty(IoTDBConstant.MQTT_HOST_NAME) != null) {
+      CONF.setMqttHost(properties.getProperty(IoTDBConstant.MQTT_HOST_NAME));
+    }
+
+    if (properties.getProperty(IoTDBConstant.MQTT_PORT_NAME) != null) {
+      CONF.setMqttPort(Integer.parseInt(properties.getProperty(IoTDBConstant.MQTT_PORT_NAME)));
+    }
+
+    if (properties.getProperty(IoTDBConstant.MQTT_HANDLER_POOL_SIZE_NAME) != null) {
+      CONF.setMqttHandlerPoolSize(
+        Integer.parseInt(properties.getProperty(IoTDBConstant.MQTT_HANDLER_POOL_SIZE_NAME)));
+    }
+
+    if (properties.getProperty(IoTDBConstant.MQTT_PAYLOAD_FORMATTER_NAME) != null) {
+      CONF.setMqttPayloadFormatter(
+        properties.getProperty(IoTDBConstant.MQTT_PAYLOAD_FORMATTER_NAME));
+    }
+
+    if (properties.getProperty(IoTDBConstant.MQTT_MAX_MESSAGE_SIZE) != null) {
+      CONF.setMqttMaxMessageSize(
+        Integer.parseInt(properties.getProperty(IoTDBConstant.MQTT_MAX_MESSAGE_SIZE)));
+    }
+  }
+
   public void loadGlobalConfig(TGlobalConfig globalConfig) {
     CONF.setDiskSpaceWarningThreshold(globalConfig.getDiskSpaceWarningThreshold());
   }
diff --git a/node-commons/src/main/java/org/apache/iotdb/commons/utils/AuthUtils.java b/node-commons/src/main/java/org/apache/iotdb/commons/utils/AuthUtils.java
index b13be3217d..849b2d5e8a 100644
--- a/node-commons/src/main/java/org/apache/iotdb/commons/utils/AuthUtils.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/utils/AuthUtils.java
@@ -77,8 +77,10 @@ public class AuthUtils {
    */
   public static boolean validatePassword(String originPassword, String encryptPassword) {
     return AsymmetricEncryptFactory.getEncryptProvider(
-            CommonDescriptor.getInstance().getConfig().getEncryptDecryptProvider(),
-            CommonDescriptor.getInstance().getConfig().getEncryptDecryptProviderParameter())
+            CommonDescriptor.getInstance().getConfig().getIotdbServerEncryptDecryptProvider(),
+            CommonDescriptor.getInstance()
+                .getConfig()
+                .getIotdbServerEncryptDecryptProviderParameter())
         .validate(originPassword, encryptPassword);
   }
 
@@ -200,8 +202,10 @@ public class AuthUtils {
    */
   public static String encryptPassword(String password) {
     return AsymmetricEncryptFactory.getEncryptProvider(
-            CommonDescriptor.getInstance().getConfig().getEncryptDecryptProvider(),
-            CommonDescriptor.getInstance().getConfig().getEncryptDecryptProviderParameter())
+            CommonDescriptor.getInstance().getConfig().getIotdbServerEncryptDecryptProvider(),
+            CommonDescriptor.getInstance()
+                .getConfig()
+                .getIotdbServerEncryptDecryptProviderParameter())
         .encrypt(password);
   }
 
diff --git a/server/src/main/java/org/apache/iotdb/db/wal/utils/WALMode.java b/node-commons/src/main/java/org/apache/iotdb/commons/wal/WALMode.java
similarity index 96%
rename from server/src/main/java/org/apache/iotdb/db/wal/utils/WALMode.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/wal/WALMode.java
index 53faec55a9..352ae597e3 100644
--- a/server/src/main/java/org/apache/iotdb/db/wal/utils/WALMode.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/wal/WALMode.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.db.wal.utils;
+package org.apache.iotdb.commons.wal;
 
 /** Write mode of wal */
 public enum WALMode {
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 1625c99299..b97b24a859 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
@@ -23,6 +23,7 @@ import org.apache.iotdb.commons.client.property.ClientPoolProperty.DefaultProper
 import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.utils.TestOnly;
 import org.apache.iotdb.commons.utils.datastructure.TVListSortAlgorithm;
+import org.apache.iotdb.commons.wal.WALMode;
 import org.apache.iotdb.db.audit.AuditLogOperation;
 import org.apache.iotdb.db.audit.AuditLogStorage;
 import org.apache.iotdb.db.conf.directories.DirectoryManager;
@@ -37,7 +38,6 @@ import org.apache.iotdb.db.engine.storagegroup.timeindex.TimeIndexLevel;
 import org.apache.iotdb.db.exception.LoadConfigurationException;
 import org.apache.iotdb.db.service.thrift.impl.ClientRPCServiceImpl;
 import org.apache.iotdb.db.service.thrift.impl.NewInfluxDBServiceImpl;
-import org.apache.iotdb.db.wal.utils.WALMode;
 import org.apache.iotdb.rpc.RpcTransportFactory;
 import org.apache.iotdb.rpc.RpcUtils;
 import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
@@ -170,103 +170,14 @@ public class IoTDBConfig {
 
   public static final Pattern NODE_PATTERN = Pattern.compile(NODE_MATCHER);
 
-  /** whether to enable the mqtt service. */
-  private boolean enableMQTTService = false;
-
-  /** the mqtt service binding host. */
-  private String mqttHost = "127.0.0.1";
-
-  /** the mqtt service binding port. */
-  private int mqttPort = 1883;
-
-  /** the handler pool size for handing the mqtt messages. */
-  private int mqttHandlerPoolSize = 1;
-
-  /** the mqtt message payload formatter. */
-  private String mqttPayloadFormatter = "json";
-
-  /** max mqtt message size. Unit: byte */
-  private int mqttMaxMessageSize = 1048576;
-
-  /** Port which the influxdb protocol server listens to. */
-  private int influxDBRpcPort = 8086;
-
-  /** Ratio of memory allocated for buffered arrays */
-  private double bufferedArraysMemoryProportion = 0.6;
-
-  /** Flush proportion for system */
-  private double flushProportion = 0.4;
-
-  /** Reject proportion for system */
-  private double rejectProportion = 0.8;
-
-  /** The proportion of write memory for memtable */
-  private double writeProportionForMemtable = 0.8;
-
-  /** The proportion of write memory for compaction */
-  private double compactionProportion = 0.2;
-
   /** The proportion of write memory for loading TsFile */
   private double loadTsFileProportion = 0.125;
 
-  /**
-   * If memory cost of data region increased more than proportion of {@linkplain
-   * IoTDBConfig#getAllocateMemoryForStorageEngine()}*{@linkplain
-   * IoTDBConfig#getWriteProportionForMemtable()}, report to system.
-   */
-  private double writeMemoryVariationReportProportion = 0.001;
-
-  /** When inserting rejected, waiting period to check system again. Unit: millisecond */
-  private int checkPeriodWhenInsertBlocked = 50;
-
-  // region Write Ahead Log Configuration
-  /** Write mode of wal */
-  private volatile WALMode walMode = WALMode.ASYNC;
-
-  /** Max number of wal nodes, each node corresponds to one wal directory */
-  private int maxWalNodesNum = 0;
-
-  /** Duration a wal flush operation will wait before calling fsync. Unit: millisecond */
-  private volatile long fsyncWalDelayInMs = 3;
-
-  /** Buffer size of each wal node. Unit: byte */
-  private int walBufferSize = 16 * 1024 * 1024;
-
-  /** Buffer entry size of each wal buffer. Unit: byte */
-  private int walBufferEntrySize = 16 * 1024;
-
-  /** Blocking queue capacity of each wal buffer */
-  private int walBufferQueueCapacity = 50;
-
-  /** Size threshold of each wal file. Unit: byte */
-  private volatile long walFileSizeThresholdInByte = 10 * 1024 * 1024L;
-
   /** Size threshold of each checkpoint file. Unit: byte */
   private volatile long checkpointFileSizeThresholdInByte = 3 * 1024 * 1024L;
 
-  /** Minimum ratio of effective information in wal files */
-  private volatile double walMinEffectiveInfoRatio = 0.1;
-
-  /**
-   * MemTable size threshold for triggering MemTable snapshot in wal. When a memTable's size exceeds
-   * this, wal can flush this memtable to disk, otherwise wal will snapshot this memtable in wal.
-   * Unit: byte
-   */
-  private volatile long walMemTableSnapshotThreshold = 8 * 1024 * 1024L;
-
-  /** MemTable's max snapshot number in wal file */
-  private volatile int maxWalMemTableSnapshotNum = 1;
-
-  /** The period when outdated wal files are periodically deleted. Unit: millisecond */
-  private volatile long deleteWalFilesPeriodInMs = 20 * 1000L;
-  // endregion
-
-  /**
-   * The size of log buffer for every trigger management operation plan. If the size of a trigger
-   * management operation plan is larger than this parameter, the trigger management operation plan
-   * will be rejected by TriggerManager. Unit: byte
-   */
-  private int tlogBufferSize = 1024 * 1024;
+  /** Buffer entry size of each wal buffer. Unit: byte */
+  private int walBufferEntrySize = 16 * 1024;
 
   /** Schema directory, including storage set of values. */
   private String schemaDir =
@@ -361,6 +272,14 @@ public class IoTDBConfig {
   /** When a sequence TsFile's file size (in byte) exceed this, the TsFile is forced closed. */
   private long seqTsFileSize = 0L;
 
+  // Enable inner space compaction for sequence files
+  private boolean enableSeqSpaceCompaction = true;
+  // Enable inner space compaction for unsequence files
+  private boolean enableUnseqSpaceCompaction = true;
+  // Compact the unsequence files into the overlapped sequence files
+  private boolean enableCrossSpaceCompaction = true;
+
+  // TODO: Move it to CommonConfig
   /**
    * The strategy of inner space compaction task. There are just one inner space compaction strategy
    * SIZE_TIRED_COMPACTION:
@@ -368,12 +287,15 @@ public class IoTDBConfig {
   private InnerSequenceCompactionSelector innerSequenceCompactionSelector =
       InnerSequenceCompactionSelector.SIZE_TIERED;
 
+  // TODO: Move it to CommonConfig
   private InnerSeqCompactionPerformer innerSeqCompactionPerformer =
       InnerSeqCompactionPerformer.READ_CHUNK;
 
+  // TODO: Move it to CommonConfig
   private InnerUnsequenceCompactionSelector innerUnsequenceCompactionSelector =
       InnerUnsequenceCompactionSelector.SIZE_TIERED;
 
+  // TODO: Move it to CommonConfig
   private InnerUnseqCompactionPerformer innerUnseqCompactionPerformer =
       InnerUnseqCompactionPerformer.READ_POINT;
 
@@ -384,6 +306,7 @@ public class IoTDBConfig {
   // TODO: Move it to CommonConfig
   private CrossCompactionPerformer crossCompactionPerformer = CrossCompactionPerformer.READ_POINT;
 
+  // TODO: Move it to CommonConfig
   /**
    * The priority of compaction task execution. There are three priority strategy INNER_CROSS:
    * prioritize inner space compaction, reduce the number of files first CROSS INNER: prioritize
@@ -392,8 +315,6 @@ public class IoTDBConfig {
    */
   private CompactionPriority compactionPriority = CompactionPriority.BALANCE;
 
-  private double chunkMetadataSizeProportion = 0.1;
-
   /** The target tsfile size in compaction, 1 GB by default */
   private long targetCompactionFileSize = 1073741824L;
 
@@ -444,38 +365,6 @@ public class IoTDBConfig {
 
   private boolean enableCompactionValidation = true;
 
-  /** Memory allocated for bloomFilter cache in read process */
-  private long allocateMemoryForBloomFilterCache = allocateMemoryForRead / 1001;
-
-  /** Memory allocated for timeSeriesMetaData cache in read process */
-  private long allocateMemoryForTimeSeriesMetaDataCache = allocateMemoryForRead * 200 / 1001;
-
-  /** Memory allocated for chunk cache in read process */
-  private long allocateMemoryForChunkCache = allocateMemoryForRead * 100 / 1001;
-
-  /** Memory allocated for operators */
-  private long allocateMemoryForCoordinator = allocateMemoryForRead * 50 / 1001;
-
-  /** Memory allocated for operators */
-  private long allocateMemoryForOperators = allocateMemoryForRead * 200 / 1001;
-
-  /** Memory allocated for operators */
-  private long allocateMemoryForDataExchange = allocateMemoryForRead * 200 / 1001;
-
-  /** Max bytes of each FragmentInstance for DataExchange */
-  private long maxBytesPerFragmentInstance = allocateMemoryForDataExchange / queryThreadCount;
-
-  /** Memory allocated proportion for timeIndex */
-  private long allocateMemoryForTimeIndex = allocateMemoryForRead * 200 / 1001;
-
-  /** Memory allocated proportion for time partition info */
-  private long allocateMemoryForTimePartitionInfo = allocateMemoryForStorageEngine * 50 / 1001;
-  /**
-   * If true, we will estimate each query's possible memory footprint before executing it and deny
-   * it if its estimated memory exceeds current free memory
-   */
-  private boolean enableQueryMemoryEstimation = true;
-
   /** Set true to enable statistics monitor service, false to disable statistics service. */
   private boolean enableStatMonitor = false;
 
@@ -494,12 +383,6 @@ public class IoTDBConfig {
    */
   private int externalSortThreshold = 1000;
 
-  /** White list for sync */
-  private String ipWhiteList = "127.0.0.1/32";
-
-  /** The maximum number of retries when the sender fails to synchronize files to the receiver. */
-  private int maxNumberOfSyncFileRetry = 5;
-
   /**
    * Set the language version when loading file including error information, default value is "EN"
    */
@@ -532,18 +415,6 @@ public class IoTDBConfig {
   /** whether use chunkBufferPool. */
   private boolean chunkBufferPoolEnable = false;
 
-  /** Switch of watermark function */
-  private boolean enableWatermark = false;
-
-  /** Secret key for watermark */
-  private String watermarkSecretKey = "IoTDB*2019@Beijing";
-
-  /** Bit string of watermark */
-  private String watermarkBitString = "100101110100";
-
-  /** Watermark method and parameters */
-  private String watermarkMethod = "GroupBasedLSBMethod(embed_row_cycle=2,embed_lsb_num=5)";
-
   /** How many threads will be set up to perform settle tasks. */
   private int settleThreadNum = 1;
 
@@ -569,27 +440,6 @@ public class IoTDBConfig {
    */
   private int compactionThreadCount = 10;
 
-  /*
-   * How many thread will be set up to perform continuous queries. When <= 0, use max(1, CPU core number / 2).
-   */
-  private int continuousQueryThreadNum =
-      Math.max(1, Runtime.getRuntime().availableProcessors() / 2);
-
-  /*
-   * Minimum every interval to perform continuous query.
-   * The every interval of continuous query instances should not be lower than this limit.
-   */
-  private long continuousQueryMinimumEveryInterval = 1000;
-
-  /**
-   * The maximum number of rows can be processed in insert-tablet-plan when executing select-into
-   * statements.
-   */
-  private int selectIntoInsertTabletPlanRowLimit = 10000;
-
-  /** 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;
 
@@ -630,15 +480,9 @@ public class IoTDBConfig {
   /** kerberos principal */
   private String kerberosPrincipal = "your principal";
 
-  /** the num of memtable in each database */
-  private int concurrentWritingTimePartition = 1;
-
   /** the default fill interval in LinearFill and PreviousFill, -1 means infinite past time */
   private int defaultFillInterval = -1;
 
-  /** The default value of primitive array size in array pool */
-  private int primitiveArraySize = 64;
-
   /** Time partition interval in milliseconds */
   private long timePartitionInterval = 604_800_000;
 
@@ -652,54 +496,18 @@ public class IoTDBConfig {
   // wait for 60 second by default.
   private int thriftServerAwaitTimeForStopService = 60;
 
-  /**
-   * Used to estimate the memory usage of text fields in a UDF query. It is recommended to set this
-   * value to be slightly larger than the average length of all text records.
-   */
-  private int udfInitialByteArrayLengthForMemoryControl = 48;
-
-  /**
-   * How much memory may be used in ONE UDF query (in MB).
-   *
-   * <p>The upper limit is 20% of allocated memory for read.
-   *
-   * <p>udfMemoryBudgetInMB = udfReaderMemoryBudgetInMB + udfTransformerMemoryBudgetInMB +
-   * udfCollectorMemoryBudgetInMB
-   */
-  private float udfMemoryBudgetInMB = (float) Math.min(30.0f, 0.2 * allocateMemoryForRead);
-
-  private float udfReaderMemoryBudgetInMB = (float) (1.0 / 3 * udfMemoryBudgetInMB);
-
-  private float udfTransformerMemoryBudgetInMB = (float) (1.0 / 3 * udfMemoryBudgetInMB);
-
-  private float udfCollectorMemoryBudgetInMB = (float) (1.0 / 3 * udfMemoryBudgetInMB);
-
   /** The cached record size (in MB) of each series in group by fill query */
   private float groupByFillCacheSizeInMB = (float) 1.0;
 
   // time in nanosecond precision when starting up
   private long startUpNanosecond = System.nanoTime();
 
-  /** time interval in minute for calculating query frequency. Unit: minute */
-  private int frequencyIntervalInMinute = 1;
-
-  private int patternMatchingThreshold = 1000000;
-
   /**
    * whether enable the rpc service. This parameter has no a corresponding field in the
    * iotdb-common.properties
    */
   private boolean enableRpcService = true;
 
-  /**
-   * whether enable the influxdb rpc service. This parameter has no a corresponding field in the
-   * iotdb-common.properties
-   */
-  private boolean enableInfluxDBRpcService = false;
-
-  /** the size of ioTaskQueue */
-  private int ioTaskQueueSizeForFlushing = 10;
-
   /** the method to transform device path to device id, can be 'Plain' or 'SHA256' */
   private String deviceIDTransformationMethod = "Plain";
 
@@ -752,56 +560,6 @@ public class IoTDBConfig {
    */
   private int maxClientNumForEachNode = DefaultProperty.MAX_CLIENT_NUM_FOR_EACH_NODE;
 
-  /** Cache size of user and role */
-  private int authorCacheSize = 100;
-
-  /** Cache expire time of user and role */
-  private int authorCacheExpireTime = 30;
-
-  /** Number of queues per forwarding trigger */
-  private int triggerForwardMaxQueueNumber = 8;
-  /** The length of one of the queues per forwarding trigger */
-  private int triggerForwardMaxSizePerQueue = 2000;
-
-  /** Trigger forwarding data size per batch */
-  private int triggerForwardBatchSize = 50;
-
-  /** Trigger HTTP forward pool size */
-  private int triggerForwardHTTPPoolSize = 200;
-
-  /** Trigger HTTP forward pool max connection for per route */
-  private int triggerForwardHTTPPOOLMaxPerRoute = 20;
-
-  /** Trigger MQTT forward pool size */
-  private int triggerForwardMQTTPoolSize = 4;
-
-  /** How many times will we retry to find an instance of stateful trigger */
-  private int retryNumToFindStatefulTrigger = 3;
-
-  /**
-   * Whether the schema memory allocation is default config. Used for cluster mode initialization
-   * judgement
-   */
-  private boolean isDefaultSchemaMemoryConfig = true;
-
-  /** Memory allocated for schemaRegion */
-  private long allocateMemoryForSchemaRegion = allocateMemoryForSchema * 8 / 10;
-
-  /** Memory allocated for SchemaCache */
-  private long allocateMemoryForSchemaCache = allocateMemoryForSchema / 10;
-
-  /** Memory allocated for PartitionCache */
-  private long allocateMemoryForPartitionCache = 0;
-
-  /** Memory allocated for LastCache */
-  private long allocateMemoryForLastCache = allocateMemoryForSchema / 10;
-
-  /** Maximum size of wal buffer used in IoTConsensus. Unit: byte */
-  private long throttleThreshold = 50 * 1024 * 1024 * 1024L;
-
-  /** Maximum wait time of write cache in IoTConsensus. Unit: ms */
-  private long cacheWindowTimeInMs = 10 * 1000L;
-
   private long dataRatisConsensusLogAppenderBufferSizeMax = 4 * 1024 * 1024L;
   private long schemaRatisConsensusLogAppenderBufferSizeMax = 4 * 1024 * 1024L;
 
@@ -2564,14 +2322,6 @@ public class IoTDBConfig {
     this.schemaFileLogSize = schemaFileLogSize;
   }
 
-  public int getMaxMeasurementNumOfInternalRequest() {
-    return maxMeasurementNumOfInternalRequest;
-  }
-
-  public void setMaxMeasurementNumOfInternalRequest(int maxMeasurementNumOfInternalRequest) {
-    this.maxMeasurementNumOfInternalRequest = maxMeasurementNumOfInternalRequest;
-  }
-
   public String getDnInternalAddress() {
     return dnInternalAddress;
   }
@@ -2660,30 +2410,6 @@ public class IoTDBConfig {
     this.dnMppDataExchangePort = dnMppDataExchangePort;
   }
 
-  public int getMppDataExchangeCorePoolSize() {
-    return mppDataExchangeCorePoolSize;
-  }
-
-  public void setMppDataExchangeCorePoolSize(int mppDataExchangeCorePoolSize) {
-    this.mppDataExchangeCorePoolSize = mppDataExchangeCorePoolSize;
-  }
-
-  public int getMppDataExchangeMaxPoolSize() {
-    return mppDataExchangeMaxPoolSize;
-  }
-
-  public void setMppDataExchangeMaxPoolSize(int mppDataExchangeMaxPoolSize) {
-    this.mppDataExchangeMaxPoolSize = mppDataExchangeMaxPoolSize;
-  }
-
-  public int getMppDataExchangeKeepAliveTimeInMs() {
-    return mppDataExchangeKeepAliveTimeInMs;
-  }
-
-  public void setMppDataExchangeKeepAliveTimeInMs(int mppDataExchangeKeepAliveTimeInMs) {
-    this.mppDataExchangeKeepAliveTimeInMs = mppDataExchangeKeepAliveTimeInMs;
-  }
-
   public int getDnConnectionTimeoutInMS() {
     return dnConnectionTimeoutInMS;
   }
@@ -2743,10 +2469,6 @@ public class IoTDBConfig {
     this.dataNodeId = dataNodeId;
   }
 
-  public int getPartitionCacheSize() {
-    return partitionCacheSize;
-  }
-
   public String getExtPipeDir() {
     return extPipeDir;
   }
@@ -2755,26 +2477,6 @@ public class IoTDBConfig {
     this.extPipeDir = extPipeDir;
   }
 
-  public void setPartitionCacheSize(int partitionCacheSize) {
-    this.partitionCacheSize = partitionCacheSize;
-  }
-
-  public int getAuthorCacheSize() {
-    return authorCacheSize;
-  }
-
-  public void setAuthorCacheSize(int authorCacheSize) {
-    this.authorCacheSize = authorCacheSize;
-  }
-
-  public int getAuthorCacheExpireTime() {
-    return authorCacheExpireTime;
-  }
-
-  public void setAuthorCacheExpireTime(int authorCacheExpireTime) {
-    this.authorCacheExpireTime = authorCacheExpireTime;
-  }
-
   public int getTriggerForwardMaxQueueNumber() {
     return triggerForwardMaxQueueNumber;
   }
@@ -2831,126 +2533,14 @@ public class IoTDBConfig {
     this.retryNumToFindStatefulTrigger = retryNumToFindStatefulTrigger;
   }
 
-  public int getCoordinatorReadExecutorSize() {
-    return coordinatorReadExecutorSize;
-  }
-
-  public void setCoordinatorReadExecutorSize(int coordinatorReadExecutorSize) {
-    this.coordinatorReadExecutorSize = coordinatorReadExecutorSize;
-  }
-
-  public int getCoordinatorWriteExecutorSize() {
-    return coordinatorWriteExecutorSize;
-  }
-
-  public void setCoordinatorWriteExecutorSize(int coordinatorWriteExecutorSize) {
-    this.coordinatorWriteExecutorSize = coordinatorWriteExecutorSize;
-  }
-
   public TEndPoint getAddressAndPort() {
     return new TEndPoint(dnRpcAddress, dnRpcPort);
   }
 
-  boolean isDefaultSchemaMemoryConfig() {
-    return isDefaultSchemaMemoryConfig;
-  }
-
-  void setDefaultSchemaMemoryConfig(boolean defaultSchemaMemoryConfig) {
-    isDefaultSchemaMemoryConfig = defaultSchemaMemoryConfig;
-  }
-
-  public long getAllocateMemoryForSchemaRegion() {
-    return allocateMemoryForSchemaRegion;
-  }
-
-  public void setAllocateMemoryForSchemaRegion(long allocateMemoryForSchemaRegion) {
-    this.allocateMemoryForSchemaRegion = allocateMemoryForSchemaRegion;
-  }
-
-  public long getAllocateMemoryForSchemaCache() {
-    return allocateMemoryForSchemaCache;
-  }
-
-  public void setAllocateMemoryForSchemaCache(long allocateMemoryForSchemaCache) {
-    this.allocateMemoryForSchemaCache = allocateMemoryForSchemaCache;
-  }
-
-  public long getAllocateMemoryForPartitionCache() {
-    return allocateMemoryForPartitionCache;
-  }
-
-  public void setAllocateMemoryForPartitionCache(long allocateMemoryForPartitionCache) {
-    this.allocateMemoryForPartitionCache = allocateMemoryForPartitionCache;
-  }
-
-  public long getAllocateMemoryForLastCache() {
-    return allocateMemoryForLastCache;
-  }
-
-  public void setAllocateMemoryForLastCache(long allocateMemoryForLastCache) {
-    this.allocateMemoryForLastCache = allocateMemoryForLastCache;
-  }
-
-  public String getReadConsistencyLevel() {
-    return readConsistencyLevel;
-  }
-
-  public void setReadConsistencyLevel(String readConsistencyLevel) {
-    this.readConsistencyLevel = readConsistencyLevel;
-  }
-
-  public int getDriverTaskExecutionTimeSliceInMs() {
-    return driverTaskExecutionTimeSliceInMs;
-  }
-
-  public void setDriverTaskExecutionTimeSliceInMs(int driverTaskExecutionTimeSliceInMs) {
-    this.driverTaskExecutionTimeSliceInMs = driverTaskExecutionTimeSliceInMs;
-  }
-
-  public double getWriteProportionForMemtable() {
-    return writeProportionForMemtable;
-  }
-
-  public void setWriteProportionForMemtable(double writeProportionForMemtable) {
-    this.writeProportionForMemtable = writeProportionForMemtable;
-  }
-
-  public double getCompactionProportion() {
-    return compactionProportion;
-  }
-
   public double getLoadTsFileProportion() {
     return loadTsFileProportion;
   }
 
-  public void setCompactionProportion(double compactionProportion) {
-    this.compactionProportion = compactionProportion;
-  }
-
-  public long getThrottleThreshold() {
-    return throttleThreshold;
-  }
-
-  public void setThrottleThreshold(long throttleThreshold) {
-    this.throttleThreshold = throttleThreshold;
-  }
-
-  public double getChunkMetadataSizeProportion() {
-    return chunkMetadataSizeProportion;
-  }
-
-  public void setChunkMetadataSizeProportion(double chunkMetadataSizeProportion) {
-    this.chunkMetadataSizeProportion = chunkMetadataSizeProportion;
-  }
-
-  public long getCacheWindowTimeInMs() {
-    return cacheWindowTimeInMs;
-  }
-
-  public void setCacheWindowTimeInMs(long cacheWindowTimeInMs) {
-    this.cacheWindowTimeInMs = cacheWindowTimeInMs;
-  }
-
   public long getDataRatisConsensusLogAppenderBufferSizeMax() {
     return dataRatisConsensusLogAppenderBufferSizeMax;
   }
@@ -3122,18 +2712,6 @@ public class IoTDBConfig {
     this.cqMinEveryIntervalInMs = cqMinEveryIntervalInMs;
   }
 
-  public double getUsableCompactionMemoryProportion() {
-    return 1.0d - chunkMetadataSizeProportion;
-  }
-
-  public int getPatternMatchingThreshold() {
-    return patternMatchingThreshold;
-  }
-
-  public void setPatternMatchingThreshold(int patternMatchingThreshold) {
-    this.patternMatchingThreshold = patternMatchingThreshold;
-  }
-
   public long getDataRatisConsensusRequestTimeoutMs() {
     return dataRatisConsensusRequestTimeoutMs;
   }
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 07ff22c5d3..d6682ae904 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
@@ -24,6 +24,7 @@ import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.exception.BadNodeUrlException;
 import org.apache.iotdb.commons.service.metric.MetricService;
 import org.apache.iotdb.commons.utils.NodeUrlUtils;
+import org.apache.iotdb.commons.wal.WALMode;
 import org.apache.iotdb.confignode.rpc.thrift.TCQConfig;
 import org.apache.iotdb.confignode.rpc.thrift.TGlobalConfig;
 import org.apache.iotdb.confignode.rpc.thrift.TRatisConfig;
@@ -41,7 +42,6 @@ import org.apache.iotdb.db.rescon.SystemInfo;
 import org.apache.iotdb.db.service.metrics.IoTDBInternalLocalReporter;
 import org.apache.iotdb.db.utils.DateTimeUtils;
 import org.apache.iotdb.db.wal.WALManager;
-import org.apache.iotdb.db.wal.utils.WALMode;
 import org.apache.iotdb.external.api.IPropertiesLoader;
 import org.apache.iotdb.metrics.config.MetricConfigDescriptor;
 import org.apache.iotdb.metrics.config.ReloadLevel;
@@ -257,57 +257,6 @@ public class IoTDBDescriptor {
                 .getProperty(IoTDBConstant.DN_RPC_PORT, Integer.toString(CONF.getDnRpcPort()))
                 .trim()));
 
-    CONF.setEnableInfluxDBRpcService(
-        Boolean.parseBoolean(
-            properties
-                .getProperty(
-                    "enable_influxdb_rpc_service",
-                    Boolean.toString(CONF.isEnableInfluxDBRpcService()))
-                .trim()));
-
-    CONF.setInfluxDBRpcPort(
-        Integer.parseInt(
-            properties
-                .getProperty("influxdb_rpc_port", Integer.toString(CONF.getInfluxDBRpcPort()))
-                .trim()));
-
-    CONF.setBufferedArraysMemoryProportion(
-        Double.parseDouble(
-            properties
-                .getProperty(
-                    "buffered_arrays_memory_proportion",
-                    Double.toString(CONF.getBufferedArraysMemoryProportion()))
-                .trim()));
-
-    CONF.setFlushProportion(
-        Double.parseDouble(
-            properties
-                .getProperty("flush_proportion", Double.toString(CONF.getFlushProportion()))
-                .trim()));
-
-    CONF.setRejectProportion(
-        Double.parseDouble(
-            properties
-                .getProperty("reject_proportion", Double.toString(CONF.getRejectProportion()))
-                .trim()));
-
-    CONF.setWriteMemoryVariationReportProportion(
-        Double.parseDouble(
-            properties
-                .getProperty(
-                    "write_memory_variation_report_proportion",
-                    Double.toString(CONF.getWriteMemoryVariationReportProportion()))
-                .trim()));
-
-    CONF.setMetaDataCacheEnable(
-        Boolean.parseBoolean(
-            properties
-                .getProperty(
-                    "meta_data_cache_enable", Boolean.toString(CONF.isMetaDataCacheEnable()))
-                .trim()));
-
-    initMemoryAllocate(properties);
-
     loadWALProps(properties);
 
     String systemDir = properties.getProperty("dn_system_dir");
@@ -343,16 +292,6 @@ public class IoTDBDescriptor {
       throw e;
     }
 
-    CONF.setBatchSize(
-        Integer.parseInt(
-            properties.getProperty("batch_size", Integer.toString(CONF.getBatchSize()))));
-
-    CONF.setEnableMemControl(
-        (Boolean.parseBoolean(
-            properties.getProperty(
-                "enable_mem_control", Boolean.toString(CONF.isEnableMemControl())))));
-    logger.info("IoTDB enable memory control: {}", CONF.isEnableMemControl());
-
     long memTableSizeThreshold =
         Long.parseLong(
             properties
@@ -363,18 +302,6 @@ public class IoTDBDescriptor {
       CONF.setMemtableSizeThreshold(memTableSizeThreshold);
     }
 
-    CONF.setCheckPeriodWhenInsertBlocked(
-        Integer.parseInt(
-            properties.getProperty(
-                "check_period_when_insert_blocked",
-                Integer.toString(CONF.getCheckPeriodWhenInsertBlocked()))));
-
-    CONF.setIoTaskQueueSizeForFlushing(
-        Integer.parseInt(
-            properties.getProperty(
-                "io_task_queue_size_for_flushing",
-                Integer.toString(CONF.getIoTaskQueueSizeForFlushing()))));
-
     CONF.setCompactionScheduleIntervalInMs(
         Long.parseLong(
             properties.getProperty(
@@ -447,23 +374,11 @@ public class IoTDBDescriptor {
     subtaskNum = subtaskNum <= 0 ? 1 : subtaskNum;
     CONF.setSubCompactionTaskNum(subtaskNum);
 
-    CONF.setQueryTimeoutThreshold(
-        Long.parseLong(
-            properties.getProperty(
-                "query_timeout_threshold", Long.toString(CONF.getQueryTimeoutThreshold()))));
-
     CONF.setDnSessionTimeoutThreshold(
         Integer.parseInt(
             properties.getProperty(
                 "dn_session_timeout_threshold",
                 Integer.toString(CONF.getDnSessionTimeoutThreshold()))));
-    CONF.setMaxNumberOfSyncFileRetry(
-        Integer.parseInt(
-            properties
-                .getProperty(
-                    "max_number_of_sync_file_retry",
-                    Integer.toString(CONF.getMaxNumberOfSyncFileRetry()))
-                .trim()));
 
     CONF.setIpWhiteList(properties.getProperty("ip_white_list", CONF.getIpWhiteList()));
 
@@ -489,25 +404,6 @@ public class IoTDBDescriptor {
                 "default_index_window_range",
                 Integer.toString(CONF.getDefaultIndexWindowRange()))));
 
-    CONF.setQueryThreadCount(
-        Integer.parseInt(
-            properties.getProperty(
-                "query_thread_count", Integer.toString(CONF.getQueryThreadCount()))));
-
-    if (CONF.getQueryThreadCount() <= 0) {
-      CONF.setQueryThreadCount(Runtime.getRuntime().availableProcessors());
-    }
-
-    CONF.setMaxAllowedConcurrentQueries(
-        Integer.parseInt(
-            properties.getProperty(
-                "max_allowed_concurrent_queries",
-                Integer.toString(CONF.getMaxAllowedConcurrentQueries()))));
-
-    if (CONF.getMaxAllowedConcurrentQueries() <= 0) {
-      CONF.setMaxAllowedConcurrentQueries(1000);
-    }
-
     CONF.setSubRawQueryThreadCount(
         Integer.parseInt(
             properties.getProperty(
@@ -559,11 +455,6 @@ public class IoTDBDescriptor {
         Integer.parseInt(
             properties.getProperty(
                 "compaction_thread_count", Integer.toString(CONF.getCompactionThreadCount()))));
-    CONF.setChunkMetadataSizeProportion(
-        Double.parseDouble(
-            properties.getProperty(
-                "chunk_metadata_size_proportion",
-                Double.toString(CONF.getChunkMetadataSizeProportion()))));
     CONF.setTargetCompactionFileSize(
         Long.parseLong(
             properties.getProperty(
@@ -646,16 +537,6 @@ public class IoTDBDescriptor {
 
     CONF.setDnRpcMaxConcurrentClientNum(maxConcurrentClientNum);
 
-    CONF.setEnableWatermark(
-        Boolean.parseBoolean(
-            properties.getProperty(
-                "watermark_module_opened", Boolean.toString(CONF.isEnableWatermark()).trim())));
-    CONF.setWatermarkSecretKey(
-        properties.getProperty("watermark_secret_key", CONF.getWatermarkSecretKey()));
-    CONF.setWatermarkBitString(
-        properties.getProperty("watermark_bit_string", CONF.getWatermarkBitString()));
-    CONF.setWatermarkMethod(properties.getProperty("watermark_method", CONF.getWatermarkMethod()));
-
     loadAutoCreateSchemaProps(properties);
 
     CONF.setTsFileStorageFs(
@@ -683,24 +564,12 @@ public class IoTDBDescriptor {
     CONF.setKerberosPrincipal(
         properties.getProperty("kerberos_principal", CONF.getKerberosPrincipal()));
 
-    // the num of memtables in each database
-    CONF.setConcurrentWritingTimePartition(
-        Integer.parseInt(
-            properties.getProperty(
-                "concurrent_writing_time_partition",
-                String.valueOf(CONF.getConcurrentWritingTimePartition()))));
-
     // the default fill interval in LinearFill and PreviousFill
     CONF.setDefaultFillInterval(
         Integer.parseInt(
             properties.getProperty(
                 "default_fill_interval", String.valueOf(CONF.getDefaultFillInterval()))));
 
-    CONF.setPrimitiveArraySize(
-        (Integer.parseInt(
-            properties.getProperty(
-                "primitive_array_size", String.valueOf(CONF.getPrimitiveArraySize())))));
-
     CONF.setDnThriftMaxFrameSize(
         Integer.parseInt(
             properties.getProperty(
@@ -721,11 +590,6 @@ public class IoTDBDescriptor {
                 "frequency_interval_in_minute",
                 String.valueOf(CONF.getFrequencyIntervalInMinute()))));
 
-    CONF.setSlowQueryThreshold(
-        Long.parseLong(
-            properties.getProperty(
-                "slow_query_threshold", String.valueOf(CONF.getSlowQueryThreshold()))));
-
     CONF.setWindowEvaluationThreadCount(
         Integer.parseInt(
             properties.getProperty(
@@ -761,15 +625,6 @@ public class IoTDBDescriptor {
     CONF.setSchemaEngineMode(
         properties.getProperty("schema_engine_mode", String.valueOf(CONF.getSchemaEngineMode())));
 
-    CONF.setEnableLastCache(
-        Boolean.parseBoolean(
-            properties.getProperty(
-                "enable_last_cache", Boolean.toString(CONF.isLastCacheEnabled()))));
-
-    if (CONF.getSchemaEngineMode().equals("Rocksdb_based")) {
-      CONF.setEnableLastCache(false);
-    }
-
     CONF.setCachedMNodeSizeInSchemaFileMode(
         Integer.parseInt(
             properties.getProperty(
@@ -795,20 +650,6 @@ public class IoTDBDescriptor {
     // mqtt
     loadMqttProps(properties);
 
-    CONF.setSelectIntoInsertTabletPlanRowLimit(
-        Integer.parseInt(
-            properties.getProperty(
-                "select_into_insert_tablet_plan_row_limit",
-                String.valueOf(CONF.getSelectIntoInsertTabletPlanRowLimit()))));
-    CONF.setIntoOperationExecutionThreadCount(
-        Integer.parseInt(
-            properties.getProperty(
-                "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());
 
     // At the same time, set TSFileConfig
@@ -848,13 +689,6 @@ public class IoTDBDescriptor {
         .setDfsClientFailoverProxyProvider(
             properties.getProperty(
                 "dfs_client_failover_proxy_provider", CONF.getDfsClientFailoverProxyProvider()));
-    TSFileDescriptor.getInstance()
-        .getConfig()
-        .setPatternMatchingThreshold(
-            Integer.parseInt(
-                properties.getProperty(
-                    "pattern_matching_threshold",
-                    String.valueOf(CONF.getPatternMatchingThreshold()))));
     TSFileDescriptor.getInstance()
         .getConfig()
         .setUseKerberos(
@@ -906,269 +740,6 @@ public class IoTDBDescriptor {
             CONF.getTimePartitionInterval(), CONF.getTimestampPrecision()));
   }
 
-  private void loadAuthorCache(Properties properties) {
-    CONF.setAuthorCacheSize(
-        Integer.parseInt(
-            properties.getProperty(
-                "author_cache_size", String.valueOf(CONF.getAuthorCacheSize()))));
-    CONF.setAuthorCacheExpireTime(
-        Integer.parseInt(
-            properties.getProperty(
-                "author_cache_expire_time", String.valueOf(CONF.getAuthorCacheExpireTime()))));
-  }
-
-  private void loadWALProps(Properties properties) {
-    CONF.setWalMode(
-        WALMode.valueOf((properties.getProperty("wal_mode", CONF.getWalMode().toString()))));
-
-    int maxWalNodesNum =
-        Integer.parseInt(
-            properties.getProperty(
-                "max_wal_nodes_num", Integer.toString(CONF.getMaxWalNodesNum())));
-    if (maxWalNodesNum > 0) {
-      CONF.setMaxWalNodesNum(maxWalNodesNum);
-    }
-
-    int walBufferSize =
-        Integer.parseInt(
-            properties.getProperty(
-                "wal_buffer_size_in_byte", Integer.toString(CONF.getWalBufferSize())));
-    if (walBufferSize > 0) {
-      CONF.setWalBufferSize(walBufferSize);
-    }
-
-    int walBufferEntrySize =
-        Integer.parseInt(
-            properties.getProperty(
-                "wal_buffer_entry_size_in_byte", Integer.toString(CONF.getWalBufferEntrySize())));
-    if (walBufferEntrySize > 0) {
-      CONF.setWalBufferEntrySize(walBufferEntrySize);
-    }
-
-    int walBufferQueueCapacity =
-        Integer.parseInt(
-            properties.getProperty(
-                "wal_buffer_queue_capacity", Integer.toString(CONF.getWalBufferQueueCapacity())));
-    if (walBufferQueueCapacity > 0) {
-      CONF.setWalBufferQueueCapacity(walBufferQueueCapacity);
-    }
-
-    loadWALHotModifiedProps(properties);
-  }
-
-  private void loadWALHotModifiedProps(Properties properties) {
-    long fsyncWalDelayInMs =
-        Long.parseLong(
-            properties.getProperty(
-                "fsync_wal_delay_in_ms", Long.toString(CONF.getFsyncWalDelayInMs())));
-    if (fsyncWalDelayInMs > 0) {
-      CONF.setFsyncWalDelayInMs(fsyncWalDelayInMs);
-    }
-
-    long walFileSizeThreshold =
-        Long.parseLong(
-            properties.getProperty(
-                "wal_file_size_threshold_in_byte",
-                Long.toString(CONF.getWalFileSizeThresholdInByte())));
-    if (walFileSizeThreshold > 0) {
-      CONF.setWalFileSizeThresholdInByte(walFileSizeThreshold);
-    }
-
-    double walMinEffectiveInfoRatio =
-        Double.parseDouble(
-            properties.getProperty(
-                "wal_min_effective_info_ratio",
-                Double.toString(CONF.getWalMinEffectiveInfoRatio())));
-    if (walMinEffectiveInfoRatio > 0) {
-      CONF.setWalMinEffectiveInfoRatio(walMinEffectiveInfoRatio);
-    }
-
-    long walMemTableSnapshotThreshold =
-        Long.parseLong(
-            properties.getProperty(
-                "wal_memtable_snapshot_threshold_in_byte",
-                Long.toString(CONF.getWalMemTableSnapshotThreshold())));
-    if (walMemTableSnapshotThreshold > 0) {
-      CONF.setWalMemTableSnapshotThreshold(walMemTableSnapshotThreshold);
-    }
-
-    int maxWalMemTableSnapshotNum =
-        Integer.parseInt(
-            properties.getProperty(
-                "max_wal_memtable_snapshot_num",
-                Integer.toString(CONF.getMaxWalMemTableSnapshotNum())));
-    if (maxWalMemTableSnapshotNum > 0) {
-      CONF.setMaxWalMemTableSnapshotNum(maxWalMemTableSnapshotNum);
-    }
-
-    long deleteWalFilesPeriod =
-        Long.parseLong(
-            properties.getProperty(
-                "delete_wal_files_period_in_ms",
-                Long.toString(CONF.getDeleteWalFilesPeriodInMs())));
-    if (deleteWalFilesPeriod > 0) {
-      CONF.setDeleteWalFilesPeriodInMs(deleteWalFilesPeriod);
-    }
-
-    long throttleDownThresholdInByte =
-        Long.parseLong(
-            properties.getProperty(
-                "iot_consensus_throttle_threshold_in_byte",
-                Long.toString(CONF.getThrottleThreshold())));
-    if (throttleDownThresholdInByte > 0) {
-      CONF.setThrottleThreshold(throttleDownThresholdInByte);
-    }
-
-    long cacheWindowInMs =
-        Long.parseLong(
-            properties.getProperty(
-                "iot_consensus_cache_window_time_in_ms",
-                Long.toString(CONF.getCacheWindowTimeInMs())));
-    if (cacheWindowInMs > 0) {
-      CONF.setCacheWindowTimeInMs(cacheWindowInMs);
-    }
-  }
-
-  private void loadTsFileProps(Properties properties) {
-    TSFileDescriptor.getInstance()
-        .getConfig()
-        .setGroupSizeInByte(
-            Integer.parseInt(
-                properties.getProperty(
-                    "group_size_in_byte",
-                    Integer.toString(
-                        TSFileDescriptor.getInstance().getConfig().getGroupSizeInByte()))));
-    TSFileDescriptor.getInstance()
-        .getConfig()
-        .setPageSizeInByte(
-            Integer.parseInt(
-                properties.getProperty(
-                    "page_size_in_byte",
-                    Integer.toString(
-                        TSFileDescriptor.getInstance().getConfig().getPageSizeInByte()))));
-    if (TSFileDescriptor.getInstance().getConfig().getPageSizeInByte()
-        > TSFileDescriptor.getInstance().getConfig().getGroupSizeInByte()) {
-      logger.warn("page_size is greater than group size, will set it as the same with group size");
-      TSFileDescriptor.getInstance()
-          .getConfig()
-          .setPageSizeInByte(TSFileDescriptor.getInstance().getConfig().getGroupSizeInByte());
-    }
-    TSFileDescriptor.getInstance()
-        .getConfig()
-        .setMaxNumberOfPointsInPage(
-            Integer.parseInt(
-                properties.getProperty(
-                    "max_number_of_points_in_page",
-                    Integer.toString(
-                        TSFileDescriptor.getInstance().getConfig().getMaxNumberOfPointsInPage()))));
-    TSFileDescriptor.getInstance()
-        .getConfig()
-        .setMaxStringLength(
-            Integer.parseInt(
-                properties.getProperty(
-                    "max_string_length",
-                    Integer.toString(
-                        TSFileDescriptor.getInstance().getConfig().getMaxStringLength()))));
-    TSFileDescriptor.getInstance()
-        .getConfig()
-        .setBloomFilterErrorRate(
-            Double.parseDouble(
-                properties.getProperty(
-                    "bloom_filter_error_rate",
-                    Double.toString(
-                        TSFileDescriptor.getInstance().getConfig().getBloomFilterErrorRate()))));
-    TSFileDescriptor.getInstance()
-        .getConfig()
-        .setFloatPrecision(
-            Integer.parseInt(
-                properties.getProperty(
-                    "float_precision",
-                    Integer.toString(
-                        TSFileDescriptor.getInstance().getConfig().getFloatPrecision()))));
-    TSFileDescriptor.getInstance()
-        .getConfig()
-        .setTimeEncoder(
-            properties.getProperty(
-                "time_encoder", TSFileDescriptor.getInstance().getConfig().getTimeEncoder()));
-    TSFileDescriptor.getInstance()
-        .getConfig()
-        .setValueEncoder(
-            properties.getProperty(
-                "value_encoder", TSFileDescriptor.getInstance().getConfig().getValueEncoder()));
-    TSFileDescriptor.getInstance()
-        .getConfig()
-        .setCompressor(
-            properties.getProperty(
-                "compressor",
-                TSFileDescriptor.getInstance().getConfig().getCompressor().toString()));
-    TSFileDescriptor.getInstance()
-        .getConfig()
-        .setMaxDegreeOfIndexNode(
-            Integer.parseInt(
-                properties.getProperty(
-                    "max_degree_of_index_node",
-                    Integer.toString(
-                        TSFileDescriptor.getInstance().getConfig().getMaxDegreeOfIndexNode()))));
-    TSFileDescriptor.getInstance()
-        .getConfig()
-        .setMaxTsBlockSizeInBytes(
-            Integer.parseInt(
-                properties.getProperty(
-                    "max_tsblock_size_in_bytes",
-                    Integer.toString(
-                        TSFileDescriptor.getInstance().getConfig().getMaxTsBlockSizeInBytes()))));
-
-    // min(default_size, maxBytesForQuery)
-    TSFileDescriptor.getInstance()
-        .getConfig()
-        .setMaxTsBlockSizeInBytes(
-            (int)
-                Math.min(
-                    TSFileDescriptor.getInstance().getConfig().getMaxTsBlockSizeInBytes(),
-                    CONF.getMaxBytesPerFragmentInstance()));
-
-    TSFileDescriptor.getInstance()
-        .getConfig()
-        .setMaxTsBlockLineNumber(
-            Integer.parseInt(
-                properties.getProperty(
-                    "max_tsblock_line_number",
-                    Integer.toString(
-                        TSFileDescriptor.getInstance().getConfig().getMaxTsBlockLineNumber()))));
-  }
-
-  // Mqtt related
-  private void loadMqttProps(Properties properties) {
-    CONF.setMqttDir(properties.getProperty("mqtt_root_dir", CONF.getMqttDir()));
-
-    if (properties.getProperty(IoTDBConstant.MQTT_HOST_NAME) != null) {
-      CONF.setMqttHost(properties.getProperty(IoTDBConstant.MQTT_HOST_NAME));
-    }
-
-    if (properties.getProperty(IoTDBConstant.MQTT_PORT_NAME) != null) {
-      CONF.setMqttPort(Integer.parseInt(properties.getProperty(IoTDBConstant.MQTT_PORT_NAME)));
-    }
-
-    if (properties.getProperty(IoTDBConstant.MQTT_HANDLER_POOL_SIZE_NAME) != null) {
-      CONF.setMqttHandlerPoolSize(
-          Integer.parseInt(properties.getProperty(IoTDBConstant.MQTT_HANDLER_POOL_SIZE_NAME)));
-    }
-
-    if (properties.getProperty(IoTDBConstant.MQTT_PAYLOAD_FORMATTER_NAME) != null) {
-      CONF.setMqttPayloadFormatter(
-          properties.getProperty(IoTDBConstant.MQTT_PAYLOAD_FORMATTER_NAME));
-    }
-
-    if (properties.getProperty(IoTDBConstant.ENABLE_MQTT) != null) {
-      CONF.setEnableMQTTService(
-          Boolean.parseBoolean(properties.getProperty(IoTDBConstant.ENABLE_MQTT)));
-    }
-
-    if (properties.getProperty(IoTDBConstant.MQTT_MAX_MESSAGE_SIZE) != null) {
-      CONF.setMqttMaxMessageSize(
-          Integer.parseInt(properties.getProperty(IoTDBConstant.MQTT_MAX_MESSAGE_SIZE)));
-    }
-  }
 
   public void loadHotModifiedProps(Properties properties) throws QueryProcessException {
     try {
@@ -1200,12 +771,6 @@ public class IoTDBDescriptor {
               properties.getProperty(
                   "max_deduplicated_path_num",
                   Integer.toString(CONF.getMaxQueryDeduplicatedPathNum()))));
-      // update frequency_interval_in_minute
-      CONF.setFrequencyIntervalInMinute(
-          Integer.parseInt(
-              properties.getProperty(
-                  "frequency_interval_in_minute",
-                  Integer.toString(CONF.getFrequencyIntervalInMinute()))));
       // update slow_query_threshold
       CONF.setSlowQueryThreshold(
           Long.parseLong(
@@ -1232,14 +797,6 @@ public class IoTDBDescriptor {
                       "max_number_of_sync_file_retry",
                       Integer.toString(CONF.getMaxNumberOfSyncFileRetry()))
                   .trim()));
-      CONF.setIpWhiteList(properties.getProperty("ip_white_list", CONF.getIpWhiteList()));
-
-      // update enable query memory estimation for memory control
-      CONF.setEnableQueryMemoryEstimation(
-          Boolean.parseBoolean(
-              properties.getProperty(
-                  "enable_query_memory_estimation",
-                  Boolean.toString(CONF.isEnableQueryMemoryEstimation()))));
 
       // update wal config
       long prevDeleteWalFilesPeriodInMs = CONF.getDeleteWalFilesPeriodInMs();
@@ -1301,272 +858,6 @@ public class IoTDBDescriptor {
     }
   }
 
-  private void initMemoryAllocate(Properties properties) {
-    String memoryAllocateProportion =
-        properties.getProperty("storage_query_schema_consensus_free_memory_proportion");
-    if (memoryAllocateProportion != null) {
-      String[] proportions = memoryAllocateProportion.split(":");
-      int proportionSum = 0;
-      for (String proportion : proportions) {
-        proportionSum += Integer.parseInt(proportion.trim());
-      }
-      long maxMemoryAvailable = Runtime.getRuntime().maxMemory();
-      if (proportionSum != 0) {
-        CONF.setAllocateMemoryForStorageEngine(
-            maxMemoryAvailable * Integer.parseInt(proportions[0].trim()) / proportionSum);
-        CONF.setAllocateMemoryForRead(
-            maxMemoryAvailable * Integer.parseInt(proportions[1].trim()) / proportionSum);
-        CONF.setAllocateMemoryForSchema(
-            maxMemoryAvailable * Integer.parseInt(proportions[2].trim()) / proportionSum);
-        CONF.setAllocateMemoryForConsensus(
-            maxMemoryAvailable * Integer.parseInt(proportions[3].trim()) / proportionSum);
-      }
-    }
-
-    logger.info("initial allocateMemoryForRead = {}", CONF.getAllocateMemoryForRead());
-    logger.info("initial allocateMemoryForWrite = {}", CONF.getAllocateMemoryForStorageEngine());
-    logger.info("initial allocateMemoryForSchema = {}", CONF.getAllocateMemoryForSchema());
-    logger.info("initial allocateMemoryForConsensus = {}", CONF.getAllocateMemoryForConsensus());
-
-    initSchemaMemoryAllocate(properties);
-    initStorageEngineAllocate(properties);
-
-    CONF.setMaxQueryDeduplicatedPathNum(
-        Integer.parseInt(
-            properties.getProperty(
-                "max_deduplicated_path_num",
-                Integer.toString(CONF.getMaxQueryDeduplicatedPathNum()))));
-
-    CONF.setEnableQueryMemoryEstimation(
-        Boolean.parseBoolean(
-            properties.getProperty(
-                "enable_query_memory_estimation",
-                Boolean.toString(CONF.isEnableQueryMemoryEstimation()))));
-
-    String queryMemoryAllocateProportion =
-        properties.getProperty("chunk_timeseriesmeta_free_memory_proportion");
-    if (queryMemoryAllocateProportion != null) {
-      String[] proportions = queryMemoryAllocateProportion.split(":");
-      int proportionSum = 0;
-      for (String proportion : proportions) {
-        proportionSum += Integer.parseInt(proportion.trim());
-      }
-      long maxMemoryAvailable = CONF.getAllocateMemoryForRead();
-      if (proportionSum != 0) {
-        try {
-          CONF.setAllocateMemoryForBloomFilterCache(
-              maxMemoryAvailable * Integer.parseInt(proportions[0].trim()) / proportionSum);
-          CONF.setAllocateMemoryForChunkCache(
-              maxMemoryAvailable * Integer.parseInt(proportions[1].trim()) / proportionSum);
-          CONF.setAllocateMemoryForTimeSeriesMetaDataCache(
-              maxMemoryAvailable * Integer.parseInt(proportions[2].trim()) / proportionSum);
-          CONF.setAllocateMemoryForCoordinator(
-              maxMemoryAvailable * Integer.parseInt(proportions[3].trim()) / proportionSum);
-          CONF.setAllocateMemoryForOperators(
-              maxMemoryAvailable * Integer.parseInt(proportions[4].trim()) / proportionSum);
-          CONF.setAllocateMemoryForDataExchange(
-              maxMemoryAvailable * Integer.parseInt(proportions[5].trim()) / proportionSum);
-          CONF.setAllocateMemoryForTimeIndex(
-              maxMemoryAvailable * Integer.parseInt(proportions[6].trim()) / proportionSum);
-        } catch (Exception e) {
-          throw new RuntimeException(
-              "Each subsection of configuration item chunkmeta_chunk_timeseriesmeta_free_memory_proportion"
-                  + " should be an integer, which is "
-                  + queryMemoryAllocateProportion);
-        }
-      }
-    }
-
-    // metadata cache is disabled, we need to move all their allocated memory to other parts
-    if (!CONF.isMetaDataCacheEnable()) {
-      long sum =
-          CONF.getAllocateMemoryForBloomFilterCache()
-              + CONF.getAllocateMemoryForChunkCache()
-              + CONF.getAllocateMemoryForTimeSeriesMetaDataCache();
-      CONF.setAllocateMemoryForBloomFilterCache(0);
-      CONF.setAllocateMemoryForChunkCache(0);
-      CONF.setAllocateMemoryForTimeSeriesMetaDataCache(0);
-      long partForDataExchange = sum / 2;
-      long partForOperators = sum - partForDataExchange;
-      CONF.setAllocateMemoryForDataExchange(
-          CONF.getAllocateMemoryForDataExchange() + partForDataExchange);
-      CONF.setAllocateMemoryForOperators(CONF.getAllocateMemoryForOperators() + partForOperators);
-    }
-  }
-
-  private void initStorageEngineAllocate(Properties properties) {
-    String allocationRatio = properties.getProperty("storage_engine_memory_proportion", "8:2");
-    String[] proportions = allocationRatio.split(":");
-    int proportionForWrite = Integer.parseInt(proportions[0].trim());
-    int proportionForCompaction = Integer.parseInt(proportions[1].trim());
-
-    double writeProportion =
-        ((double) (proportionForWrite) / (double) (proportionForCompaction + proportionForWrite));
-
-    String allocationRatioForWrite = properties.getProperty("write_memory_proportion", "19:1");
-    proportions = allocationRatioForWrite.split(":");
-    int proportionForMemTable = Integer.parseInt(proportions[0].trim());
-    int proportionForTimePartitionInfo = Integer.parseInt(proportions[1].trim());
-
-    double memtableProportionForWrite =
-        ((double) (proportionForMemTable)
-            / (double) (proportionForMemTable + proportionForTimePartitionInfo));
-    Double.parseDouble(properties.getProperty("flush_time_memory_proportion", "0.05"));
-    double timePartitionInfoForWrite =
-        ((double) (proportionForTimePartitionInfo)
-            / (double) (proportionForMemTable + proportionForTimePartitionInfo));
-    CONF.setWriteProportionForMemtable(writeProportion * memtableProportionForWrite);
-
-    CONF.setAllocateMemoryForTimePartitionInfo(
-        (long)
-            ((writeProportion * timePartitionInfoForWrite)
-                * CONF.getAllocateMemoryForStorageEngine()));
-
-    CONF.setCompactionProportion(
-        ((double) (proportionForCompaction)
-            / (double) (proportionForCompaction + proportionForWrite)));
-  }
-
-  private void initSchemaMemoryAllocate(Properties properties) {
-    long schemaMemoryTotal = CONF.getAllocateMemoryForSchema();
-
-    int proportionSum = 10;
-    int schemaRegionProportion = 8;
-    int schemaCacheProportion = 1;
-    int partitionCacheProportion = 0;
-    int lastCacheProportion = 1;
-
-    String schemaMemoryAllocatePortion =
-        properties.getProperty("schema_memory_allocate_proportion");
-    if (schemaMemoryAllocatePortion != null) {
-      CONF.setDefaultSchemaMemoryConfig(false);
-      String[] proportions = schemaMemoryAllocatePortion.split(":");
-      int loadedProportionSum = 0;
-      for (String proportion : proportions) {
-        loadedProportionSum += Integer.parseInt(proportion.trim());
-      }
-
-      if (loadedProportionSum != 0) {
-        proportionSum = loadedProportionSum;
-        schemaRegionProportion = Integer.parseInt(proportions[0].trim());
-        schemaCacheProportion = Integer.parseInt(proportions[1].trim());
-        partitionCacheProportion = Integer.parseInt(proportions[2].trim());
-        lastCacheProportion = Integer.parseInt(proportions[3].trim());
-      }
-    } else {
-      CONF.setDefaultSchemaMemoryConfig(true);
-    }
-
-    CONF.setAllocateMemoryForSchemaRegion(
-        schemaMemoryTotal * schemaRegionProportion / proportionSum);
-    logger.info("allocateMemoryForSchemaRegion = {}", CONF.getAllocateMemoryForSchemaRegion());
-
-    CONF.setAllocateMemoryForSchemaCache(schemaMemoryTotal * schemaCacheProportion / proportionSum);
-    logger.info("allocateMemoryForSchemaCache = {}", CONF.getAllocateMemoryForSchemaCache());
-
-    CONF.setAllocateMemoryForPartitionCache(
-        schemaMemoryTotal * partitionCacheProportion / proportionSum);
-    logger.info("allocateMemoryForPartitionCache = {}", CONF.getAllocateMemoryForPartitionCache());
-
-    CONF.setAllocateMemoryForLastCache(schemaMemoryTotal * lastCacheProportion / proportionSum);
-    logger.info("allocateMemoryForLastCache = {}", CONF.getAllocateMemoryForLastCache());
-  }
-
-  @SuppressWarnings("squid:S3518") // "proportionSum" can't be zero
-  private void loadUDFProps(Properties properties) {
-    String initialByteArrayLengthForMemoryControl =
-        properties.getProperty("udf_initial_byte_array_length_for_memory_control");
-    if (initialByteArrayLengthForMemoryControl != null) {
-      CONF.setUdfInitialByteArrayLengthForMemoryControl(
-          Integer.parseInt(initialByteArrayLengthForMemoryControl));
-    }
-
-    CONF.setUdfDir(properties.getProperty("udf_lib_dir", CONF.getUdfDir()));
-
-    String memoryBudgetInMb = properties.getProperty("udf_memory_budget_in_mb");
-    if (memoryBudgetInMb != null) {
-      CONF.setUdfMemoryBudgetInMB(
-          (float)
-              Math.min(Float.parseFloat(memoryBudgetInMb), 0.2 * CONF.getAllocateMemoryForRead()));
-    }
-
-    String groupByFillCacheSizeInMB = properties.getProperty("group_by_fill_cache_size_in_mb");
-    if (groupByFillCacheSizeInMB != null) {
-      CONF.setGroupByFillCacheSizeInMB(Float.parseFloat(groupByFillCacheSizeInMB));
-    }
-
-    String readerTransformerCollectorMemoryProportion =
-        properties.getProperty("udf_reader_transformer_collector_memory_proportion");
-    if (readerTransformerCollectorMemoryProportion != null) {
-      String[] proportions = readerTransformerCollectorMemoryProportion.split(":");
-      int proportionSum = 0;
-      for (String proportion : proportions) {
-        proportionSum += Integer.parseInt(proportion.trim());
-      }
-      float maxMemoryAvailable = CONF.getUdfMemoryBudgetInMB();
-      try {
-        CONF.setUdfReaderMemoryBudgetInMB(
-            maxMemoryAvailable * Integer.parseInt(proportions[0].trim()) / proportionSum);
-        CONF.setUdfTransformerMemoryBudgetInMB(
-            maxMemoryAvailable * Integer.parseInt(proportions[1].trim()) / proportionSum);
-        CONF.setUdfCollectorMemoryBudgetInMB(
-            maxMemoryAvailable * Integer.parseInt(proportions[2].trim()) / proportionSum);
-      } catch (Exception e) {
-        throw new RuntimeException(
-            "Each subsection of configuration item udf_reader_transformer_collector_memory_proportion"
-                + " should be an integer, which is "
-                + readerTransformerCollectorMemoryProportion);
-      }
-    }
-  }
-
-  private void loadTriggerProps(Properties properties) {
-    CONF.setTriggerDir(properties.getProperty("trigger_lib_dir", CONF.getTriggerDir()));
-    CONF.setRetryNumToFindStatefulTrigger(
-        Integer.parseInt(
-            properties.getProperty(
-                "stateful_trigger_retry_num_when_not_found",
-                Integer.toString(CONF.getRetryNumToFindStatefulTrigger()))));
-
-    int tlogBufferSize =
-        Integer.parseInt(
-            properties.getProperty("tlog_buffer_size", Integer.toString(CONF.getTlogBufferSize())));
-    if (tlogBufferSize > 0) {
-      CONF.setTlogBufferSize(tlogBufferSize);
-    }
-
-    CONF.setTriggerForwardMaxQueueNumber(
-        Integer.parseInt(
-            properties.getProperty(
-                "trigger_forward_max_queue_number",
-                Integer.toString(CONF.getTriggerForwardMaxQueueNumber()))));
-    CONF.setTriggerForwardMaxSizePerQueue(
-        Integer.parseInt(
-            properties.getProperty(
-                "trigger_forward_max_size_per_queue",
-                Integer.toString(CONF.getTriggerForwardMaxSizePerQueue()))));
-    CONF.setTriggerForwardBatchSize(
-        Integer.parseInt(
-            properties.getProperty(
-                "trigger_forward_batch_size",
-                Integer.toString(CONF.getTriggerForwardBatchSize()))));
-    CONF.setTriggerForwardHTTPPoolSize(
-        Integer.parseInt(
-            properties.getProperty(
-                "trigger_forward_http_pool_size",
-                Integer.toString(CONF.getTriggerForwardHTTPPoolSize()))));
-    CONF.setTriggerForwardHTTPPOOLMaxPerRoute(
-        Integer.parseInt(
-            properties.getProperty(
-                "trigger_forward_http_pool_max_per_route",
-                Integer.toString(CONF.getTriggerForwardHTTPPOOLMaxPerRoute()))));
-    CONF.setTriggerForwardMQTTPoolSize(
-        Integer.parseInt(
-            properties.getProperty(
-                "trigger_forward_mqtt_pool_size",
-                Integer.toString(CONF.getTriggerForwardMQTTPoolSize()))));
-  }
-
   private void loadCQProps(Properties properties) {
     CONF.setContinuousQueryThreadNum(
         Integer.parseInt(
@@ -1625,27 +916,6 @@ public class IoTDBDescriptor {
         Integer.parseInt(
             properties.getProperty(
                 "dn_mpp_data_exchange_port", Integer.toString(CONF.getDnMppDataExchangePort()))));
-    CONF.setMppDataExchangeCorePoolSize(
-        Integer.parseInt(
-            properties.getProperty(
-                "mpp_data_exchange_core_pool_size",
-                Integer.toString(CONF.getMppDataExchangeCorePoolSize()))));
-    CONF.setMppDataExchangeMaxPoolSize(
-        Integer.parseInt(
-            properties.getProperty(
-                "mpp_data_exchange_max_pool_size",
-                Integer.toString(CONF.getMppDataExchangeMaxPoolSize()))));
-    CONF.setMppDataExchangeKeepAliveTimeInMs(
-        Integer.parseInt(
-            properties.getProperty(
-                "mpp_data_exchange_keep_alive_time_in_ms",
-                Integer.toString(CONF.getMppDataExchangeKeepAliveTimeInMs()))));
-
-    CONF.setDriverTaskExecutionTimeSliceInMs(
-        Integer.parseInt(
-            properties.getProperty(
-                "driver_task_execution_time_slice_in_ms",
-                Integer.toString(CONF.getDriverTaskExecutionTimeSliceInMs()))));
   }
 
   /** Get default encode algorithm by data type */
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBStartCheck.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBStartCheck.java
index e523ab8936..a6f8349313 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBStartCheck.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBStartCheck.java
@@ -24,10 +24,10 @@ import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.exception.ConfigurationException;
 import org.apache.iotdb.commons.file.SystemFileFactory;
+import org.apache.iotdb.commons.wal.WALMode;
 import org.apache.iotdb.confignode.rpc.thrift.TGlobalConfig;
 import org.apache.iotdb.consensus.ConsensusFactory;
 import org.apache.iotdb.db.conf.directories.DirectoryChecker;
-import org.apache.iotdb.db.wal.utils.WALMode;
 import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
 import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
 
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/DataRegion.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/DataRegion.java
index 278edfd28a..931094480d 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/DataRegion.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/DataRegion.java
@@ -32,6 +32,7 @@ import org.apache.iotdb.commons.file.SystemFileFactory;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.commons.service.metric.MetricService;
 import org.apache.iotdb.commons.utils.TestOnly;
+import org.apache.iotdb.commons.wal.WALMode;
 import org.apache.iotdb.consensus.ConsensusFactory;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
@@ -92,7 +93,6 @@ import org.apache.iotdb.db.wal.node.IWALNode;
 import org.apache.iotdb.db.wal.recover.WALRecoverManager;
 import org.apache.iotdb.db.wal.recover.file.SealedTsFileRecoverPerformer;
 import org.apache.iotdb.db.wal.recover.file.UnsealedTsFileRecoverPerformer;
-import org.apache.iotdb.db.wal.utils.WALMode;
 import org.apache.iotdb.db.wal.utils.listener.WALFlushListener;
 import org.apache.iotdb.db.wal.utils.listener.WALRecoverListener;
 import org.apache.iotdb.rpc.RpcUtils;
diff --git a/server/src/main/java/org/apache/iotdb/db/service/DataNode.java b/server/src/main/java/org/apache/iotdb/db/service/DataNode.java
index 706a8a389e..475a8ddc9a 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/DataNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/DataNode.java
@@ -41,6 +41,7 @@ import org.apache.iotdb.commons.udf.UDFInformation;
 import org.apache.iotdb.commons.udf.service.UDFClassLoaderManager;
 import org.apache.iotdb.commons.udf.service.UDFExecutableManager;
 import org.apache.iotdb.commons.udf.service.UDFManagementService;
+import org.apache.iotdb.commons.wal.WALMode;
 import org.apache.iotdb.confignode.rpc.thrift.TDataNodeRegisterReq;
 import org.apache.iotdb.confignode.rpc.thrift.TDataNodeRegisterResp;
 import org.apache.iotdb.confignode.rpc.thrift.TDataNodeRestartReq;
@@ -77,7 +78,6 @@ import org.apache.iotdb.db.trigger.executor.TriggerExecutor;
 import org.apache.iotdb.db.trigger.service.TriggerInformationUpdater;
 import org.apache.iotdb.db.trigger.service.TriggerManagementService;
 import org.apache.iotdb.db.wal.WALManager;
-import org.apache.iotdb.db.wal.utils.WALMode;
 import org.apache.iotdb.metrics.config.MetricConfigDescriptor;
 import org.apache.iotdb.metrics.utils.InternalReporterType;
 import org.apache.iotdb.rpc.TSStatusCode;
diff --git a/server/src/main/java/org/apache/iotdb/db/wal/WALManager.java b/server/src/main/java/org/apache/iotdb/db/wal/WALManager.java
index 8343f14021..9593818b49 100644
--- a/server/src/main/java/org/apache/iotdb/db/wal/WALManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/wal/WALManager.java
@@ -26,6 +26,7 @@ import org.apache.iotdb.commons.exception.StartupException;
 import org.apache.iotdb.commons.service.IService;
 import org.apache.iotdb.commons.service.ServiceType;
 import org.apache.iotdb.commons.utils.TestOnly;
+import org.apache.iotdb.commons.wal.WALMode;
 import org.apache.iotdb.consensus.ConsensusFactory;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
@@ -36,7 +37,6 @@ import org.apache.iotdb.db.wal.allocation.RoundRobinStrategy;
 import org.apache.iotdb.db.wal.node.IWALNode;
 import org.apache.iotdb.db.wal.node.WALFakeNode;
 import org.apache.iotdb.db.wal.node.WALNode;
-import org.apache.iotdb.db.wal.utils.WALMode;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/server/src/main/java/org/apache/iotdb/db/wal/buffer/WALInfoEntry.java b/server/src/main/java/org/apache/iotdb/db/wal/buffer/WALInfoEntry.java
index 6b8ebb4a70..d7cb58e5df 100644
--- a/server/src/main/java/org/apache/iotdb/db/wal/buffer/WALInfoEntry.java
+++ b/server/src/main/java/org/apache/iotdb/db/wal/buffer/WALInfoEntry.java
@@ -18,10 +18,10 @@
  */
 package org.apache.iotdb.db.wal.buffer;
 
+import org.apache.iotdb.commons.wal.WALMode;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.write.InsertTabletNode;
-import org.apache.iotdb.db.wal.utils.WALMode;
 
 /** This entry class stores info for persistence */
 public class WALInfoEntry extends WALEntry {
diff --git a/server/src/test/java/org/apache/iotdb/db/security/encrypt/MessageDigestEncryptTest.java b/server/src/test/java/org/apache/iotdb/db/security/encrypt/MessageDigestEncryptTest.java
index 442f5ec7e1..1cef568c27 100644
--- a/server/src/test/java/org/apache/iotdb/db/security/encrypt/MessageDigestEncryptTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/security/encrypt/MessageDigestEncryptTest.java
@@ -48,7 +48,7 @@ public class MessageDigestEncryptTest {
 
   @Before
   public void setUp() throws Exception {
-    CommonDescriptor.getInstance().getConfig().setEncryptDecryptProvider(providerClass);
+    CommonDescriptor.getInstance().getConfig().setIotdbServerEncryptDecryptProvider(providerClass);
     EnvironmentUtils.envSetUp();
     testFolder = new File(TestConstant.BASE_OUTPUT_PATH.concat("test"));
     testFolder.mkdirs();
diff --git a/server/src/test/java/org/apache/iotdb/db/wal/DisableWALTest.java b/server/src/test/java/org/apache/iotdb/db/wal/DisableWALTest.java
index d16365cea0..eec22e9099 100644
--- a/server/src/test/java/org/apache/iotdb/db/wal/DisableWALTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/wal/DisableWALTest.java
@@ -18,11 +18,11 @@
  */
 package org.apache.iotdb.db.wal;
 
+import org.apache.iotdb.commons.wal.WALMode;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.wal.node.IWALNode;
 import org.apache.iotdb.db.wal.node.WALFakeNode;
-import org.apache.iotdb.db.wal.utils.WALMode;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/server/src/test/java/org/apache/iotdb/db/wal/node/ConsensusReqReaderTest.java b/server/src/test/java/org/apache/iotdb/db/wal/node/ConsensusReqReaderTest.java
index 517b7aeaf1..66dd88f499 100644
--- a/server/src/test/java/org/apache/iotdb/db/wal/node/ConsensusReqReaderTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/wal/node/ConsensusReqReaderTest.java
@@ -20,6 +20,7 @@ package org.apache.iotdb.db.wal.node;
 
 import org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.commons.path.PartialPath;
+import org.apache.iotdb.commons.wal.WALMode;
 import org.apache.iotdb.consensus.common.request.IConsensusRequest;
 import org.apache.iotdb.consensus.common.request.IndexedConsensusRequest;
 import org.apache.iotdb.consensus.iot.wal.ConsensusReqReader;
@@ -33,7 +34,6 @@ import org.apache.iotdb.db.mpp.plan.planner.plan.node.write.InsertRowNode;
 import org.apache.iotdb.db.mpp.plan.planner.plan.node.write.InsertTabletNode;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
 import org.apache.iotdb.db.wal.buffer.WALEntry;
-import org.apache.iotdb.db.wal.utils.WALMode;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Binary;
 import org.apache.iotdb.tsfile.utils.BitMap;
diff --git a/server/src/test/java/org/apache/iotdb/db/wal/node/WALNodeTest.java b/server/src/test/java/org/apache/iotdb/db/wal/node/WALNodeTest.java
index 8542c817ef..fb70092192 100644
--- a/server/src/test/java/org/apache/iotdb/db/wal/node/WALNodeTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/wal/node/WALNodeTest.java
@@ -20,6 +20,7 @@ package org.apache.iotdb.db.wal.node;
 
 import org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.commons.path.PartialPath;
+import org.apache.iotdb.commons.wal.WALMode;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.constant.TestConstant;
@@ -33,7 +34,6 @@ import org.apache.iotdb.db.wal.io.WALReader;
 import org.apache.iotdb.db.wal.recover.CheckpointRecoverUtils;
 import org.apache.iotdb.db.wal.utils.WALFileStatus;
 import org.apache.iotdb.db.wal.utils.WALFileUtils;
-import org.apache.iotdb.db.wal.utils.WALMode;
 import org.apache.iotdb.db.wal.utils.listener.WALFlushListener;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
diff --git a/server/src/test/java/org/apache/iotdb/db/wal/recover/WALRecoverManagerTest.java b/server/src/test/java/org/apache/iotdb/db/wal/recover/WALRecoverManagerTest.java
index 38f35bcd3f..ebd610fd4f 100644
--- a/server/src/test/java/org/apache/iotdb/db/wal/recover/WALRecoverManagerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/wal/recover/WALRecoverManagerTest.java
@@ -23,6 +23,7 @@ import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.commons.exception.MetadataException;
 import org.apache.iotdb.commons.path.PartialPath;
+import org.apache.iotdb.commons.wal.WALMode;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.engine.memtable.IMemTable;
@@ -41,7 +42,6 @@ import org.apache.iotdb.db.wal.checkpoint.CheckpointManager;
 import org.apache.iotdb.db.wal.checkpoint.MemTableInfo;
 import org.apache.iotdb.db.wal.recover.file.UnsealedTsFileRecoverPerformer;
 import org.apache.iotdb.db.wal.utils.TsFileUtilsForRecoverTest;
-import org.apache.iotdb.db.wal.utils.WALMode;
 import org.apache.iotdb.db.wal.utils.listener.WALRecoverListener;
 import org.apache.iotdb.tsfile.exception.write.WriteProcessException;
 import org.apache.iotdb.tsfile.file.metadata.ChunkMetadata;
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 7534344401..2815b9eb3e 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
@@ -153,6 +153,9 @@ public class TSFileConfig implements Serializable {
 
   private int patternMatchingThreshold = 1000000;
 
+  // Time interval in minute for calculating query frequency. Unit: minute
+  private int frequencyIntervalInMinute = 1;
+
   /** customizedProperties, this should be empty by default. */
   private Properties customizedProperties = new Properties();
 
@@ -438,22 +441,6 @@ public class TSFileConfig implements Serializable {
     this.freqEncodingBlockSize = freqEncodingBlockSize;
   }
 
-  public int getMaxTsBlockSizeInBytes() {
-    return maxTsBlockSizeInBytes;
-  }
-
-  public void setMaxTsBlockSizeInBytes(int maxTsBlockSizeInBytes) {
-    this.maxTsBlockSizeInBytes = maxTsBlockSizeInBytes;
-  }
-
-  public int getMaxTsBlockLineNumber() {
-    return maxTsBlockLineNumber;
-  }
-
-  public void setMaxTsBlockLineNumber(int maxTsBlockLineNumber) {
-    this.maxTsBlockLineNumber = maxTsBlockLineNumber;
-  }
-
   public int getPatternMatchingThreshold() {
     return patternMatchingThreshold;
   }
@@ -469,4 +456,12 @@ public class TSFileConfig implements Serializable {
   public void setCustomizedProperties(Properties customizedProperties) {
     this.customizedProperties = customizedProperties;
   }
+
+  public int getFrequencyIntervalInMinute() {
+    return frequencyIntervalInMinute;
+  }
+
+  public void setFrequencyIntervalInMinute(int frequencyIntervalInMinute) {
+    this.frequencyIntervalInMinute = frequencyIntervalInMinute;
+  }
 }
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 db26a79483..8c2896552a 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
@@ -81,8 +81,6 @@ public class TSFileDescriptor {
     writer.setString(conf::setValueEncoder, "value_encoder");
     writer.setString(conf::setCompressor, "compressor");
     writer.setInt(conf::setBatchSize, "batch_size");
-    writer.setInt(conf::setFreqEncodingBlockSize, "freq_block_size");
-    writer.setDouble(conf::setFreqEncodingSNR, "freq_snr");
   }
 
   private class PropertiesOverWriter {
diff --git a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/enums/TSEncoding.java b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/enums/TSEncoding.java
index 59f7573c38..50d4b4976b 100644
--- a/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/enums/TSEncoding.java
+++ b/tsfile/src/main/java/org/apache/iotdb/tsfile/file/metadata/enums/TSEncoding.java
@@ -76,6 +76,35 @@ public enum TSEncoding {
     }
   }
 
+  public static TSEncoding parse(String encoding) {
+    switch (encoding) {
+      case "PLAIN":
+        return PLAIN;
+      case "DICTIONARY":
+        return DICTIONARY;
+      case "RLE":
+        return RLE;
+      case "DIFF":
+        return DIFF;
+      case "TS_2DIFF":
+        return TS_2DIFF;
+      case "BITMAP":
+        return BITMAP;
+      case "GORILLA_V1":
+        return GORILLA_V1;
+      case "REGULAR":
+        return REGULAR;
+      case "GORILLA":
+        return GORILLA;
+      case "ZIGZAG":
+        return ZIGZAG;
+      case "FREQ":
+        return FREQ;
+      default:
+        throw new IllegalArgumentException("Invalid input: " + encoding);
+    }
+  }
+
   public static int getSerializedSize() {
     return Byte.BYTES;
   }


[iotdb] 01/02: stash

Posted by yo...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

yongzao pushed a commit to branch Move-ConfigNodeConfig-into-CommonConfig
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit dffad5f7c7804456fec3710142312e0cccafea52
Author: YongzaoDan <53...@qq.com>
AuthorDate: Wed Jan 11 16:37:42 2023 +0800

    stash
---
 .../iotdb/confignode/conf/ConfigNodeConfig.java    |   61 +-
 .../confignode/conf/ConfigNodeDescriptor.java      |    6 +-
 .../confignode/conf/ConfigNodeRemoveCheck.java     |    2 +-
 .../confignode/conf/ConfigNodeStartupCheck.java    |    4 +-
 .../confignode/conf/SystemPropertiesUtils.java     |    2 +-
 .../statemachine/ConfigNodeRegionStateMachine.java |    2 +-
 .../iotdb/confignode/manager/ConsensusManager.java |    2 +-
 .../db/integration/sync/IoTDBSyncReceiverIT.java   |    2 +-
 .../sync/IoTDBSyncReceiverLoaderIT.java            |    2 +-
 .../resources/conf/iotdb-common.properties         |   14 +-
 .../apache/iotdb/commons/conf/CommonConfig.java    |  776 ++++++++++++-
 .../iotdb/commons/conf/CommonDescriptor.java       |  516 ++++++---
 .../utils/datastructure/TVListSortAlgorithm.java   |    2 +-
 .../rocksdb/RSchemaReadWriteHandler.java           |    2 +-
 .../resources/conf/iotdb-datanode.properties       |    4 +-
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java |  728 +++---------
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  | 1154 ++++++++------------
 .../org/apache/iotdb/db/conf/IoTDBStartCheck.java  |   23 +-
 .../iotdb/db/conf/adapter/CompressionRatio.java    |    2 +-
 .../db/conf/directories/DirectoryManager.java      |   16 +-
 .../db/consensus/DataRegionConsensusImpl.java      |    2 +-
 .../db/consensus/SchemaRegionConsensusImpl.java    |    2 +-
 .../org/apache/iotdb/db/engine/StorageEngine.java  |    4 +-
 .../execute/recover/CompactionRecoverTask.java     |    2 +-
 .../execute/utils/log/TsFileIdentifier.java        |    2 +-
 .../apache/iotdb/db/engine/settle/SettleLog.java   |    2 +-
 .../iotdb/db/engine/snapshot/SnapshotLoader.java   |   10 +-
 .../iotdb/db/engine/snapshot/SnapshotTaker.java    |    2 +-
 .../apache/iotdb/db/engine/upgrade/UpgradeLog.java |    3 +-
 .../iotdb/db/metadata/idtable/IDTableManager.java  |    2 +-
 .../iotdb/db/mpp/common/DataNodeEndPoints.java     |    8 +-
 .../execution/exchange/MPPDataExchangeService.java |    4 +-
 .../plan/node/load/LoadSingleTsFileNode.java       |    4 +-
 .../scheduler/AbstractFragInsStateTracker.java     |    4 +-
 .../scheduler/FragmentInstanceDispatcherImpl.java  |    4 +-
 .../scheduler/load/LoadTsFileDispatcherImpl.java   |    4 +-
 .../iotdb/db/rescon/PrimitiveArrayManager.java     |    2 +-
 .../java/org/apache/iotdb/db/service/DataNode.java |   20 +-
 .../db/service/DataNodeInternalRPCService.java     |    4 +-
 .../iotdb/db/service/InfluxDBRPCService.java       |    4 +-
 .../org/apache/iotdb/db/service/RPCService.java    |    8 +-
 .../db/service/TemporaryQueryDataFileService.java  |    2 +-
 .../iotdb/db/service/metrics/SystemMetrics.java    |    2 +-
 .../org/apache/iotdb/db/utils/OpenFileNumUtil.java |    2 +-
 .../db/conf/adapter/CompressionRatioTest.java      |    3 +-
 .../db/engine/compaction/TsFileIdentifierUT.java   |    4 +-
 .../recover/SizeTieredCompactionRecoverTest.java   |    2 +-
 .../db/engine/snapshot/IoTDBSnapshotTest.java      |   22 +-
 .../iotdb/db/engine/storagegroup/TTLTest.java      |    2 +-
 .../db/mpp/execution/exchange/SinkHandleTest.java  |   12 +-
 .../mpp/execution/exchange/SourceHandleTest.java   |   15 +-
 .../DataNodeInternalRPCServiceImplTest.java        |   13 +-
 .../apache/iotdb/db/utils/EnvironmentUtils.java    |   12 +-
 .../iotdb/tsfile/common/conf/TSFileConfig.java     |    6 -
 54 files changed, 1893 insertions(+), 1621 deletions(-)

diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
index 991591e99c..a5d7ea19ef 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
@@ -19,7 +19,7 @@
 package org.apache.iotdb.confignode.conf;
 
 import org.apache.iotdb.common.rpc.thrift.TEndPoint;
-import org.apache.iotdb.commons.client.property.ClientPoolProperty.DefaultProperty;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.confignode.manager.load.balancer.RegionBalancer;
 import org.apache.iotdb.confignode.manager.load.balancer.router.priority.IPriorityBalancer;
@@ -44,11 +44,11 @@ public class ConfigNodeConfig {
 
   /** Directory Configuration */
   // System directory, including version file for each database and metadata
-  private String systemDir =
+  private String cnSystemDir =
       ConfigNodeConstant.DATA_DIR + File.separator + IoTDBConstant.SYSTEM_FOLDER_NAME;
 
   // Consensus directory, storage consensus protocol logs
-  private String consensusDir =
+  private String cnConsensusDir =
       ConfigNodeConstant.DATA_DIR + File.separator + ConfigNodeConstant.CONSENSUS_FOLDER;
 
   /** Thrift RPC Configuration */
@@ -65,6 +65,10 @@ public class ConfigNodeConfig {
   private int cnConnectionTimeoutMs = (int) TimeUnit.SECONDS.toMillis(20);
   // ClientManager will have so many selector threads (TAsyncClientManager) to distribute to its clients
   private int cnSelectorThreadNumsOfClientManager = 1;
+  // The maximum number of clients that can be idle for a node in a clientManager
+  private int cnCoreClientCountForEachNodeInClientManager = 200;
+  // The maximum number of clients that can be allocated for a node in a clientManager
+  private int cnMaxClientCountForEachNodeInClientManager = 300;
 
   /** Metric Configuration */
   // TODO: Add if necessary
@@ -72,8 +76,7 @@ public class ConfigNodeConfig {
   /** Internal Configurations(Unconfigurable in .properties file) */
   // ConfigNodeId, the default value -1 will be changed after join cluster
   private volatile int configNodeId = -1;
-  // TODO: Read from iotdb-confignode.properties
-  private int configNodeRegionId = 0;
+  private static final int configNodeRegionId = 0;
 
   // RegionGroup allocate policy
   private RegionBalancer.RegionGroupAllocatePolicy regionGroupAllocatePolicy =
@@ -98,8 +101,8 @@ public class ConfigNodeConfig {
   }
 
   private void formulateFolders() {
-    systemDir = addHomeDir(systemDir);
-    consensusDir = addHomeDir(consensusDir);
+    cnSystemDir = addHomeDir(cnSystemDir);
+    cnConsensusDir = addHomeDir(cnConsensusDir);
   }
 
   private String addHomeDir(String dir) {
@@ -146,20 +149,20 @@ public class ConfigNodeConfig {
     this.cnTargetConfigNode = cnTargetConfigNode;
   }
 
-  public String getSystemDir() {
-    return systemDir;
+  public String getCnSystemDir() {
+    return cnSystemDir;
   }
 
-  public void setSystemDir(String systemDir) {
-    this.systemDir = systemDir;
+  public void setCnSystemDir(String cnSystemDir) {
+    this.cnSystemDir = cnSystemDir;
   }
 
-  public String getConsensusDir() {
-    return consensusDir;
+  public String getCnConsensusDir() {
+    return cnConsensusDir;
   }
 
-  public void setConsensusDir(String consensusDir) {
-    this.consensusDir = consensusDir;
+  public void setCnConsensusDir(String cnConsensusDir) {
+    this.cnConsensusDir = cnConsensusDir;
   }
 
   public boolean isCnRpcThriftCompressionEnable() {
@@ -218,6 +221,22 @@ public class ConfigNodeConfig {
     this.cnSelectorThreadNumsOfClientManager = cnSelectorThreadNumsOfClientManager;
   }
 
+  public int getCnCoreClientCountForEachNodeInClientManager() {
+    return cnCoreClientCountForEachNodeInClientManager;
+  }
+
+  public void setCnCoreClientCountForEachNodeInClientManager(int cnCoreClientCountForEachNodeInClientManager) {
+    this.cnCoreClientCountForEachNodeInClientManager = cnCoreClientCountForEachNodeInClientManager;
+  }
+
+  public int getCnMaxClientCountForEachNodeInClientManager() {
+    return cnMaxClientCountForEachNodeInClientManager;
+  }
+
+  public void setCnMaxClientCountForEachNodeInClientManager(int cnMaxClientCountForEachNodeInClientManager) {
+    this.cnMaxClientCountForEachNodeInClientManager = cnMaxClientCountForEachNodeInClientManager;
+  }
+
   public int getConfigNodeId() {
     return configNodeId;
   }
@@ -230,10 +249,6 @@ public class ConfigNodeConfig {
     return configNodeRegionId;
   }
 
-  public void setConfigNodeRegionId(int configNodeRegionId) {
-    this.configNodeRegionId = configNodeRegionId;
-  }
-
   public RegionBalancer.RegionGroupAllocatePolicy getRegionGroupAllocatePolicy() {
     return regionGroupAllocatePolicy;
   }
@@ -242,14 +257,6 @@ public class ConfigNodeConfig {
     this.regionGroupAllocatePolicy = regionGroupAllocatePolicy;
   }
 
-  public long getUnknownDataNodeDetectInterval() {
-    return unknownDataNodeDetectInterval;
-  }
-
-  public void setUnknownDataNodeDetectInterval(long unknownDataNodeDetectInterval) {
-    this.unknownDataNodeDetectInterval = unknownDataNodeDetectInterval;
-  }
-
   public String getRoutePriorityPolicy() {
     return routePriorityPolicy;
   }
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
index 7368b19cc0..c9b8db9357 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
@@ -20,10 +20,8 @@ package org.apache.iotdb.confignode.conf;
 
 import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.exception.BadNodeUrlException;
-import org.apache.iotdb.commons.loadbalance.RegionGroupExtensionPolicy;
 import org.apache.iotdb.commons.utils.NodeUrlUtils;
 import org.apache.iotdb.confignode.manager.load.balancer.RegionBalancer;
-import org.apache.iotdb.confignode.manager.load.balancer.router.leader.ILeaderBalancer;
 import org.apache.iotdb.confignode.manager.load.balancer.router.priority.IPriorityBalancer;
 import org.apache.iotdb.metrics.config.MetricConfigDescriptor;
 
@@ -206,9 +204,9 @@ public class ConfigNodeDescriptor {
           .trim()));
 
 
-    CONF.setSystemDir(properties.getProperty("cn_system_dir", CONF.getSystemDir()).trim());
+    CONF.setCnSystemDir(properties.getProperty("cn_system_dir", CONF.getCnSystemDir()).trim());
 
-    CONF.setConsensusDir(properties.getProperty("cn_consensus_dir", CONF.getConsensusDir()).trim());
+    CONF.setCnConsensusDir(properties.getProperty("cn_consensus_dir", CONF.getCnConsensusDir()).trim());
 
     String routePriorityPolicy =
         properties.getProperty("route_priority_policy", CONF.getRoutePriorityPolicy()).trim();
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeRemoveCheck.java b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeRemoveCheck.java
index d7c492275b..f31fcc4016 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeRemoveCheck.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeRemoveCheck.java
@@ -52,7 +52,7 @@ public class ConfigNodeRemoveCheck {
 
   public ConfigNodeRemoveCheck() {
     systemPropertiesFile =
-        new File(CONF.getSystemDir() + File.separator + ConfigNodeConstant.SYSTEM_FILE_NAME);
+        new File(CONF.getCnSystemDir() + File.separator + ConfigNodeConstant.SYSTEM_FILE_NAME);
     systemProperties = new Properties();
   }
 
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeStartupCheck.java b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeStartupCheck.java
index 3ff481abe1..13076c073b 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeStartupCheck.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeStartupCheck.java
@@ -120,11 +120,11 @@ public class ConfigNodeStartupCheck {
 
   private void createDirsIfNecessary() throws IOException {
     // If systemDir does not exist, create systemDir
-    File systemDir = new File(CONF.getSystemDir());
+    File systemDir = new File(CONF.getCnSystemDir());
     createDirIfEmpty(systemDir);
 
     // If consensusDir does not exist, create consensusDir
-    File consensusDir = new File(CONF.getConsensusDir());
+    File consensusDir = new File(CONF.getCnConsensusDir());
     createDirIfEmpty(consensusDir);
   }
 
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/conf/SystemPropertiesUtils.java b/confignode/src/main/java/org/apache/iotdb/confignode/conf/SystemPropertiesUtils.java
index c64a745979..85c878826c 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/conf/SystemPropertiesUtils.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/conf/SystemPropertiesUtils.java
@@ -44,7 +44,7 @@ public class SystemPropertiesUtils {
 
   private static final File systemPropertiesFile =
       new File(
-          ConfigNodeDescriptor.getInstance().getConf().getSystemDir()
+          ConfigNodeDescriptor.getInstance().getConf().getCnSystemDir()
               + File.separator
               + ConfigNodeConstant.SYSTEM_FILE_NAME);
 
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/consensus/statemachine/ConfigNodeRegionStateMachine.java b/confignode/src/main/java/org/apache/iotdb/confignode/consensus/statemachine/ConfigNodeRegionStateMachine.java
index d0bad26c56..665a62006f 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/consensus/statemachine/ConfigNodeRegionStateMachine.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/consensus/statemachine/ConfigNodeRegionStateMachine.java
@@ -69,7 +69,7 @@ public class ConfigNodeRegionStateMachine
   private int endIndex;
 
   private static final String CURRENT_FILE_DIR =
-      CONF.getConsensusDir() + File.separator + "simple" + File.separator + "current";
+      CONF.getCnConsensusDir() + File.separator + "simple" + File.separator + "current";
   private static final String PROGRESS_FILE_PATH =
       CURRENT_FILE_DIR + File.separator + "log_inprogress_";
   private static final String FILE_PATH = CURRENT_FILE_DIR + File.separator + "log_";
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConsensusManager.java b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConsensusManager.java
index 81800ea20c..3e77084f15 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConsensusManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConsensusManager.java
@@ -176,7 +176,7 @@ public class ConsensusManager {
                                       .setTriggerSnapshotFileSize(CONF.getConfigNodeRatisLogMax())
                                       .build())
                               .build())
-                      .setStorageDir(CONF.getConsensusDir())
+                      .setStorageDir(CONF.getCnConsensusDir())
                       .build(),
                   gid -> stateMachine)
               .orElseThrow(
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/sync/IoTDBSyncReceiverIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/sync/IoTDBSyncReceiverIT.java
index c60e62d891..de4f6e10ee 100644
--- a/integration/src/test/java/org/apache/iotdb/db/integration/sync/IoTDBSyncReceiverIT.java
+++ b/integration/src/test/java/org/apache/iotdb/db/integration/sync/IoTDBSyncReceiverIT.java
@@ -74,7 +74,7 @@ public class IoTDBSyncReceiverIT {
     IoTDBDescriptor.getInstance().getConfig().setEnableCrossSpaceCompaction(false);
     SyncTestUtil.insertData();
     EnvironmentUtils.shutdownDaemon();
-    File srcDir = new File(IoTDBDescriptor.getInstance().getConfig().getDataDirs()[0]);
+    File srcDir = new File(IoTDBDescriptor.getInstance().getConfig().getDnDataDirs()[0]);
     if (tmpDir.exists()) {
       FileUtils.deleteDirectory(tmpDir);
     }
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/sync/IoTDBSyncReceiverLoaderIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/sync/IoTDBSyncReceiverLoaderIT.java
index f907a03d89..8810d5874a 100644
--- a/integration/src/test/java/org/apache/iotdb/db/integration/sync/IoTDBSyncReceiverLoaderIT.java
+++ b/integration/src/test/java/org/apache/iotdb/db/integration/sync/IoTDBSyncReceiverLoaderIT.java
@@ -62,7 +62,7 @@ public class IoTDBSyncReceiverLoaderIT {
     IoTDBDescriptor.getInstance().getConfig().setEnableCrossSpaceCompaction(false);
     SyncTestUtil.insertData();
     EnvironmentUtils.shutdownDaemon();
-    File srcDir = new File(IoTDBDescriptor.getInstance().getConfig().getDataDirs()[0]);
+    File srcDir = new File(IoTDBDescriptor.getInstance().getConfig().getDnDataDirs()[0]);
     FileUtils.moveDirectory(srcDir, tmpDir);
   }
 
diff --git a/node-commons/src/assembly/resources/conf/iotdb-common.properties b/node-commons/src/assembly/resources/conf/iotdb-common.properties
index 48bd73ad80..031024e011 100644
--- a/node-commons/src/assembly/resources/conf/iotdb-common.properties
+++ b/node-commons/src/assembly/resources/conf/iotdb-common.properties
@@ -404,11 +404,11 @@ cluster_name=defaultCluster
 
 # The max capacity of a TsBlock
 # Datatype: int, Unit: byte
-# max_tsblock_size_in_bytes=131072
+# max_ts_block_size_in_bytes=131072
 
 # The max number of lines in a single TsBlock
 # Datatype: int
-# max_tsblock_line_number=1000
+# max_ts_block_line_number=1000
 
 # Time cost(ms) threshold for slow query
 # Datatype: long
@@ -450,7 +450,7 @@ cluster_name=defaultCluster
 # When the waiting time (in ms) of an inserting exceeds this, throw an exception. 10000 by default.
 # If the insertion has been rejected and the read load is low, it can be set larger
 # Datatype: int
-# max_waiting_time_when_insert_blocked=10000
+# max_waiting_time_when_insert_blocked_in_ms=10000
 
 # Add a switch to drop ouf-of-order data
 # Out-of-order data will impact the aggregation query a lot. Users may not care about discarding some out-of-order data.
@@ -800,16 +800,16 @@ cluster_name=defaultCluster
 # Datatype: string
 # admin_name=root
 
+# admin password, default is root
+# Datatype: string
+# admin_password=root
+
 # encryption provider class
 # iotdb_server_encrypt_decrypt_provider=org.apache.iotdb.commons.security.encrypt.MessageDigestEncrypt
 
 # encryption provided class parameter
 # iotdb_server_encrypt_decrypt_provider_parameter=
 
-# admin password, default is root
-# Datatype: string
-# admin_password=root
-
 # Cache size of user and role
 # Datatype: int
 # author_cache_size=1000
diff --git a/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java b/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
index 7731b680a4..40c25dab86 100644
--- a/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
@@ -18,12 +18,14 @@
  */
 package org.apache.iotdb.commons.conf;
 
-import org.apache.iotdb.commons.client.property.ClientPoolProperty.DefaultProperty;
 import org.apache.iotdb.commons.cluster.NodeStatus;
 import org.apache.iotdb.commons.consensus.ConsensusProtocolClass;
 import org.apache.iotdb.commons.enums.HandleSystemErrorStrategy;
 import org.apache.iotdb.commons.loadbalance.LeaderDistributionPolicy;
 import org.apache.iotdb.commons.loadbalance.RegionGroupExtensionPolicy;
+import org.apache.iotdb.commons.utils.datastructure.TVListSortAlgorithm;
+import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
+import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
 import org.apache.iotdb.tsfile.fileSystem.FSType;
 
 import org.slf4j.Logger;
@@ -106,28 +108,187 @@ public class CommonConfig {
   private double diskSpaceWarningThreshold = 0.05;
 
   /** Memory Control Configuration */
-  // TODO: Move from IoTDBConfig
+  // Is the writing mem control for writing enable
+  private boolean enableMemControl = true;
+  // TODO:
+
+  // Memory allocated for the write process
+  private long allocateMemoryForStorageEngine = Runtime.getRuntime().maxMemory() * 3 / 10;
+
+  // Memory allocated for the read process
+  private long allocateMemoryForRead = Runtime.getRuntime().maxMemory() * 3 / 10;
+
+  // Memory allocated for the MTree
+  private long allocateMemoryForSchema = Runtime.getRuntime().maxMemory() / 10;
+
+  // Memory allocated for the consensus layer
+  private long allocateMemoryForConsensus = Runtime.getRuntime().maxMemory() / 10;
 
   /** Schema Engine Configuration */
-  // TODO: Move from IoTDBConfig
+  // ThreadPool size for read operation in coordinator
+  private int coordinatorReadExecutorSize = 20;
+  // ThreadPool size for write operation in coordinator
+  private int coordinatorWriteExecutorSize = 50;
+
+  // Cache size of partition cache in {@link
+  // org.apache.iotdb.db.mpp.plan.analyze.ClusterPartitionFetcher}
+  private int partitionCacheSize = 1000;
+
+  // Size of log buffer for every MetaData operation. If the size of a MetaData operation plan is
+  // larger than this parameter, then the MetaData operation plan will be rejected by SchemaRegion.
+  // Unit: byte
+  private int mlogBufferSize = 1024 * 1024;
+
+  // The cycle when metadata log is periodically forced to be written to disk(in milliseconds) If
+  // set this parameter to 0 it means call channel.force(true) after every each operation
+  private long syncMlogPeriodInMs = 100;
+
+  // Interval num of tag and attribute records when force flushing to disk
+  private int tagAttributeFlushInterval = 1000;
+  // max size for tag and attribute of one time series
+  private int tagAttributeTotalSize = 700;
+
+  // Maximum number of measurement in one create timeseries plan node. If the number of measurement
+  // in user request exceeds this limit, the request will be split.
+  private int maxMeasurementNumOfInternalRequest = 10000;
 
   /** Configurations for creating schema automatically */
-  // TODO: Move from IoTDBConfig
+  // Switch of creating schema automatically
+  private boolean enableAutoCreateSchema = true;
+  // Database level when creating schema automatically is enabled
+  private int defaultStorageGroupLevel = 1;
+
+  // Register time series as which type when receiving boolean string "true" or "false"
+  private TSDataType booleanStringInferType = TSDataType.BOOLEAN;
+  // register time series as which type when receiving an integer string "67"
+  private TSDataType integerStringInferType = TSDataType.FLOAT;
+  // register time series as which type when receiving an integer string and using float may lose
+  // precision num > 2 ^ 24
+  private TSDataType longStringInferType = TSDataType.DOUBLE;
+  // register time series as which type when receiving a floating number string "6.7"
+  private TSDataType floatingStringInferType = TSDataType.FLOAT;
+  // register time series as which type when receiving the Literal NaN. Values can be DOUBLE, FLOAT
+  // or TEXT
+  private TSDataType nanStringInferType = TSDataType.DOUBLE;
+
+  // BOOLEAN encoding when creating schema automatically is enabled
+  private TSEncoding defaultBooleanEncoding = TSEncoding.RLE;
+  // INT32 encoding when creating schema automatically is enabled
+  private TSEncoding defaultInt32Encoding = TSEncoding.RLE;
+  // INT64 encoding when creating schema automatically is enabled
+  private TSEncoding defaultInt64Encoding = TSEncoding.RLE;
+  // FLOAT encoding when creating schema automatically is enabled
+  private TSEncoding defaultFloatEncoding = TSEncoding.GORILLA;
+  // DOUBLE encoding when creating schema automatically is enabled
+  private TSEncoding defaultDoubleEncoding = TSEncoding.GORILLA;
+  // TEXT encoding when creating schema automatically is enabled
+  private TSEncoding defaultTextEncoding = TSEncoding.PLAIN;
 
   /** Query Configurations */
   // The read consistency level
   private String readConsistencyLevel = "strong";
-  // TODO: Move from IoTDBConfig
+
+  // Whether to cache metadata(ChunkMetaData and TsFileMetaData) or not
+  private boolean metaDataCacheEnable = true;
+  // TODO:
+
+  // Whether to enable last cache
+  private boolean lastCacheEnable = true;
+
+  private volatile int maxDeduplicatedPathNum = 1000;
+
+  // Core pool size of mpp data exchange
+  private int mppDataExchangeCorePoolSize = 10;
+  // Max pool size of mpp data exchange
+  private int mppDataExchangeMaxPoolSize = 10;
+  // Thread keep alive time in ms of mpp data exchange
+  private int mppDataExchangeKeepAliveTimeInMs = 1000;
+
+  // Maximum execution time of a DriverTask
+  private int driverTaskExecutionTimeSliceInMs = 100;
+
+  // Maximum capacity of a TsBlock, allow up to two pages
+  private int maxTsBlockSizeInBytes = 128 * 1024;
+  // Maximum number of lines in a single TsBlock
+  private int maxTsBlockLineNumber = 1000;
+
+  // Time cost(ms) threshold for slow query. Unit: millisecond
+  private long slowQueryThreshold = 5000;
+  // The max executing time of query in ms. Unit: millisecond
+  private long queryTimeoutThreshold = 60000;
+  // How many queries can be concurrently executed. When <= 0, use 1000
+  private int maxAllowedConcurrentQueries = 1000;
+  // How many threads can concurrently execute query statement. When <= 0, use CPU core number
+  private int queryThreadCount = Runtime.getRuntime().availableProcessors();
+  // The amount of data iterate each time in server
+  private int batchSize = 100000;
 
   /** Storage Engine Configuration */
+  // This variable set timestamp precision as millisecond, microsecond or nanosecond
+  private String timestampPrecision = "ms";
   // Default TTL for databases that are not set TTL by statements, in ms.
   // <p> Notice: if this property is changed, previous created database which are not set TTL will
   // also be affected. Unit: millisecond
   private long defaultTtlInMs = Long.MAX_VALUE;
-  // TODO: Move from IoTDBConfig
+
+  // When inserting rejected exceeds this, throw an exception. Unit: millisecond
+  private int maxWaitingTimeWhenInsertBlockedInMs = 10000;
+
+  private boolean enableDiscardOutOfOrderData = false;
+
+  // What will the system do when unrecoverable error occurs
+  private HandleSystemErrorStrategy handleSystemErrorStrategy =
+      HandleSystemErrorStrategy.CHANGE_TO_READ_ONLY;
+
+  // When a memTable's size (in byte) exceeds this, the memtable is flushed to disk. Unit: byte
+  private long memtableSizeThreshold = 1024 * 1024 * 1024L;
+
+  // Whether to timed flush sequence tsfiles' memtables
+  private boolean enableTimedFlushSeqMemtable = true;
+
+  // If a memTable's created time is older than current time minus this, the memtable will be
+  // flushed to disk.(only check sequence tsfiles' memtables) Unit: ms
+  private long seqMemtableFlushInterval = 3 * 60 * 60 * 1000L;
+
+  // The interval to check whether sequence memtables need flushing. Unit: ms
+  private long seqMemtableFlushCheckInterval = 10 * 60 * 1000L;
+
+  // Whether to timed flush unsequence tsfiles' memtables
+  private boolean enableTimedFlushUnseqMemtable = true;
+
+  // If a memTable's created time is older than current time minus this, the memtable will be
+  // flushed to disk.(only check unsequence tsfiles' memtables) Unit: ms
+  private long unseqMemtableFlushInterval = 3 * 60 * 60 * 1000L;
+
+  // The interval to check whether unsequence memtables need flushing. Unit: ms
+  private long unseqMemtableFlushCheckInterval = 10 * 60 * 1000L;
+
+  // The sort algorithm used in TVList
+  private TVListSortAlgorithm tvListSortAlgorithm = TVListSortAlgorithm.TIM;
+
+  // When average series point number reaches this, flush the memtable to disk
+  private int avgSeriesPointNumberThreshold = 100000;
+
+  // How many threads can concurrently flush. When <= 0, use CPU core number
+  private int flushThreadCount = Runtime.getRuntime().availableProcessors();
+
+  // In one insert (one device, one timestamp, multiple measurements),
+  // if enable partial insert, one measurement failure will not impact other measurements
+  private boolean enablePartialInsert = true;
+
+  // The interval to log recover progress of each vsg when starting iotdb
+  private long recoveryLogIntervalInMs = 5_000L;
+
+  // How many threads will be set up to perform upgrade tasks
+  private int upgradeThreadCount = 1;
 
   /** Compaction Configurations */
-  // TODO: Move from IoTDBConfig
+  // Enable inner space compaction for sequence files
+  private boolean enableSeqSpaceCompaction = true;
+  // Enable inner space compaction for unsequence files
+  private boolean enableUnseqSpaceCompaction = true;
+  // Compact the unsequence files into the overlapped sequence files
+  private boolean enableCrossSpaceCompaction = true;
 
   /** Write Ahead Log Configuration */
   // TODO: Move from IoTDBConfig
@@ -145,6 +306,9 @@ public class CommonConfig {
   // Open ID Secret
   private String openIdProviderUrl = "";
 
+  private String adminName = "root";
+  private String adminPassword = "root";
+
   // Encryption provider class
   private String encryptDecryptProvider =
       "org.apache.iotdb.commons.security.encrypt.MessageDigestEncrypt";
@@ -152,10 +316,6 @@ public class CommonConfig {
   // Encryption provided class parameter
   private String encryptDecryptProviderParameter;
 
-  private String adminName = "root";
-
-  private String adminPassword = "root";
-
   // TODO: Move from IoTDBConfig
 
   /** UDF Configuration */
@@ -295,21 +455,10 @@ public class CommonConfig {
           + IoTDBConstant.SYSTEM_FOLDER_NAME
           + File.separator
           + "procedure";
-  // Sync directory, including the log and hardlink tsfiles
-  private String syncDir =
-      IoTDBConstant.DEFAULT_BASE_DIR + File.separator + IoTDBConstant.SYNC_FOLDER_NAME;
-  // WAL directories
-  private String[] walDirs = {
-    IoTDBConstant.DEFAULT_BASE_DIR + File.separator + IoTDBConstant.WAL_FOLDER_NAME
-  };
 
   // Default system file storage is in local file system (unsupported)
   private FSType systemFileStorageFs = FSType.LOCAL;
 
-  // What will the system do when unrecoverable error occurs
-  private HandleSystemErrorStrategy handleSystemErrorStrategy =
-      HandleSystemErrorStrategy.CHANGE_TO_READ_ONLY;
-
   CommonConfig() {
     // Empty constructor
   }
@@ -347,7 +496,8 @@ public class CommonConfig {
     return configNodeConsensusProtocolClass;
   }
 
-  public void setConfigNodeConsensusProtocolClass(ConsensusProtocolClass configNodeConsensusProtocolClass) {
+  public void setConfigNodeConsensusProtocolClass(
+      ConsensusProtocolClass configNodeConsensusProtocolClass) {
     this.configNodeConsensusProtocolClass = configNodeConsensusProtocolClass;
   }
 
@@ -363,7 +513,8 @@ public class CommonConfig {
     return schemaRegionConsensusProtocolClass;
   }
 
-  public void setSchemaRegionConsensusProtocolClass(ConsensusProtocolClass schemaRegionConsensusProtocolClass) {
+  public void setSchemaRegionConsensusProtocolClass(
+      ConsensusProtocolClass schemaRegionConsensusProtocolClass) {
     this.schemaRegionConsensusProtocolClass = schemaRegionConsensusProtocolClass;
   }
 
@@ -379,7 +530,8 @@ public class CommonConfig {
     return dataRegionConsensusProtocolClass;
   }
 
-  public void setDataRegionConsensusProtocolClass(ConsensusProtocolClass dataRegionConsensusProtocolClass) {
+  public void setDataRegionConsensusProtocolClass(
+      ConsensusProtocolClass dataRegionConsensusProtocolClass) {
     this.dataRegionConsensusProtocolClass = dataRegionConsensusProtocolClass;
   }
 
@@ -419,7 +571,8 @@ public class CommonConfig {
     return schemaRegionGroupExtensionPolicy;
   }
 
-  public void setSchemaRegionGroupExtensionPolicy(RegionGroupExtensionPolicy schemaRegionGroupExtensionPolicy) {
+  public void setSchemaRegionGroupExtensionPolicy(
+      RegionGroupExtensionPolicy schemaRegionGroupExtensionPolicy) {
     this.schemaRegionGroupExtensionPolicy = schemaRegionGroupExtensionPolicy;
   }
 
@@ -435,7 +588,8 @@ public class CommonConfig {
     return dataRegionGroupExtensionPolicy;
   }
 
-  public void setDataRegionGroupExtensionPolicy(RegionGroupExtensionPolicy dataRegionGroupExtensionPolicy) {
+  public void setDataRegionGroupExtensionPolicy(
+      RegionGroupExtensionPolicy dataRegionGroupExtensionPolicy) {
     this.dataRegionGroupExtensionPolicy = dataRegionGroupExtensionPolicy;
   }
 
@@ -483,7 +637,8 @@ public class CommonConfig {
     return enableAutoLeaderBalanceForRatisConsensus;
   }
 
-  public void setEnableAutoLeaderBalanceForRatisConsensus(boolean enableAutoLeaderBalanceForRatisConsensus) {
+  public void setEnableAutoLeaderBalanceForRatisConsensus(
+      boolean enableAutoLeaderBalanceForRatisConsensus) {
     this.enableAutoLeaderBalanceForRatisConsensus = enableAutoLeaderBalanceForRatisConsensus;
   }
 
@@ -491,7 +646,8 @@ public class CommonConfig {
     return enableAutoLeaderBalanceForIoTConsensus;
   }
 
-  public void setEnableAutoLeaderBalanceForIoTConsensus(boolean enableAutoLeaderBalanceForIoTConsensus) {
+  public void setEnableAutoLeaderBalanceForIoTConsensus(
+      boolean enableAutoLeaderBalanceForIoTConsensus) {
     this.enableAutoLeaderBalanceForIoTConsensus = enableAutoLeaderBalanceForIoTConsensus;
   }
 
@@ -619,31 +775,38 @@ public class CommonConfig {
     return configNodeRatisConsensusLogAppenderBufferSize;
   }
 
-  public void setConfigNodeRatisConsensusLogAppenderBufferSize(long configNodeRatisConsensusLogAppenderBufferSize) {
-    this.configNodeRatisConsensusLogAppenderBufferSize = configNodeRatisConsensusLogAppenderBufferSize;
+  public void setConfigNodeRatisConsensusLogAppenderBufferSize(
+      long configNodeRatisConsensusLogAppenderBufferSize) {
+    this.configNodeRatisConsensusLogAppenderBufferSize =
+        configNodeRatisConsensusLogAppenderBufferSize;
   }
 
   public long getSchemaRegionRatisConsensusLogAppenderBufferSize() {
     return schemaRegionRatisConsensusLogAppenderBufferSize;
   }
 
-  public void setSchemaRegionRatisConsensusLogAppenderBufferSize(long schemaRegionRatisConsensusLogAppenderBufferSize) {
-    this.schemaRegionRatisConsensusLogAppenderBufferSize = schemaRegionRatisConsensusLogAppenderBufferSize;
+  public void setSchemaRegionRatisConsensusLogAppenderBufferSize(
+      long schemaRegionRatisConsensusLogAppenderBufferSize) {
+    this.schemaRegionRatisConsensusLogAppenderBufferSize =
+        schemaRegionRatisConsensusLogAppenderBufferSize;
   }
 
   public long getDataRegionRatisConsensusLogAppenderBufferSize() {
     return dataRegionRatisConsensusLogAppenderBufferSize;
   }
 
-  public void setDataRegionRatisConsensusLogAppenderBufferSize(long dataRegionRatisConsensusLogAppenderBufferSize) {
-    this.dataRegionRatisConsensusLogAppenderBufferSize = dataRegionRatisConsensusLogAppenderBufferSize;
+  public void setDataRegionRatisConsensusLogAppenderBufferSize(
+      long dataRegionRatisConsensusLogAppenderBufferSize) {
+    this.dataRegionRatisConsensusLogAppenderBufferSize =
+        dataRegionRatisConsensusLogAppenderBufferSize;
   }
 
   public long getConfigNodeRatisSnapshotTriggerThreshold() {
     return configNodeRatisSnapshotTriggerThreshold;
   }
 
-  public void setConfigNodeRatisSnapshotTriggerThreshold(long configNodeRatisSnapshotTriggerThreshold) {
+  public void setConfigNodeRatisSnapshotTriggerThreshold(
+      long configNodeRatisSnapshotTriggerThreshold) {
     this.configNodeRatisSnapshotTriggerThreshold = configNodeRatisSnapshotTriggerThreshold;
   }
 
@@ -651,7 +814,8 @@ public class CommonConfig {
     return schemaRegionRatisSnapshotTriggerThreshold;
   }
 
-  public void setSchemaRegionRatisSnapshotTriggerThreshold(long schemaRegionRatisSnapshotTriggerThreshold) {
+  public void setSchemaRegionRatisSnapshotTriggerThreshold(
+      long schemaRegionRatisSnapshotTriggerThreshold) {
     this.schemaRegionRatisSnapshotTriggerThreshold = schemaRegionRatisSnapshotTriggerThreshold;
   }
 
@@ -659,7 +823,8 @@ public class CommonConfig {
     return dataRegionRatisSnapshotTriggerThreshold;
   }
 
-  public void setDataRegionRatisSnapshotTriggerThreshold(long dataRegionRatisSnapshotTriggerThreshold) {
+  public void setDataRegionRatisSnapshotTriggerThreshold(
+      long dataRegionRatisSnapshotTriggerThreshold) {
     this.dataRegionRatisSnapshotTriggerThreshold = dataRegionRatisSnapshotTriggerThreshold;
   }
 
@@ -675,7 +840,8 @@ public class CommonConfig {
     return schemaRegionRatisLogUnsafeFlushEnable;
   }
 
-  public void setSchemaRegionRatisLogUnsafeFlushEnable(boolean schemaRegionRatisLogUnsafeFlushEnable) {
+  public void setSchemaRegionRatisLogUnsafeFlushEnable(
+      boolean schemaRegionRatisLogUnsafeFlushEnable) {
     this.schemaRegionRatisLogUnsafeFlushEnable = schemaRegionRatisLogUnsafeFlushEnable;
   }
 
@@ -715,7 +881,8 @@ public class CommonConfig {
     return configNodeSimpleConsensusLogSegmentSizeMax;
   }
 
-  public void setConfigNodeSimpleConsensusLogSegmentSizeMax(long configNodeSimpleConsensusLogSegmentSizeMax) {
+  public void setConfigNodeSimpleConsensusLogSegmentSizeMax(
+      long configNodeSimpleConsensusLogSegmentSizeMax) {
     this.configNodeSimpleConsensusLogSegmentSizeMax = configNodeSimpleConsensusLogSegmentSizeMax;
   }
 
@@ -731,7 +898,8 @@ public class CommonConfig {
     return schemaRegionRatisGrpcFlowControlWindow;
   }
 
-  public void setSchemaRegionRatisGrpcFlowControlWindow(long schemaRegionRatisGrpcFlowControlWindow) {
+  public void setSchemaRegionRatisGrpcFlowControlWindow(
+      long schemaRegionRatisGrpcFlowControlWindow) {
     this.schemaRegionRatisGrpcFlowControlWindow = schemaRegionRatisGrpcFlowControlWindow;
   }
 
@@ -747,48 +915,60 @@ public class CommonConfig {
     return configNodeRatisRpcLeaderElectionTimeoutMinMs;
   }
 
-  public void setConfigNodeRatisRpcLeaderElectionTimeoutMinMs(long configNodeRatisRpcLeaderElectionTimeoutMinMs) {
-    this.configNodeRatisRpcLeaderElectionTimeoutMinMs = configNodeRatisRpcLeaderElectionTimeoutMinMs;
+  public void setConfigNodeRatisRpcLeaderElectionTimeoutMinMs(
+      long configNodeRatisRpcLeaderElectionTimeoutMinMs) {
+    this.configNodeRatisRpcLeaderElectionTimeoutMinMs =
+        configNodeRatisRpcLeaderElectionTimeoutMinMs;
   }
 
   public long getSchemaRegionRatisRpcLeaderElectionTimeoutMinMs() {
     return schemaRegionRatisRpcLeaderElectionTimeoutMinMs;
   }
 
-  public void setSchemaRegionRatisRpcLeaderElectionTimeoutMinMs(long schemaRegionRatisRpcLeaderElectionTimeoutMinMs) {
-    this.schemaRegionRatisRpcLeaderElectionTimeoutMinMs = schemaRegionRatisRpcLeaderElectionTimeoutMinMs;
+  public void setSchemaRegionRatisRpcLeaderElectionTimeoutMinMs(
+      long schemaRegionRatisRpcLeaderElectionTimeoutMinMs) {
+    this.schemaRegionRatisRpcLeaderElectionTimeoutMinMs =
+        schemaRegionRatisRpcLeaderElectionTimeoutMinMs;
   }
 
   public long getDataRegionRatisRpcLeaderElectionTimeoutMinMs() {
     return dataRegionRatisRpcLeaderElectionTimeoutMinMs;
   }
 
-  public void setDataRegionRatisRpcLeaderElectionTimeoutMinMs(long dataRegionRatisRpcLeaderElectionTimeoutMinMs) {
-    this.dataRegionRatisRpcLeaderElectionTimeoutMinMs = dataRegionRatisRpcLeaderElectionTimeoutMinMs;
+  public void setDataRegionRatisRpcLeaderElectionTimeoutMinMs(
+      long dataRegionRatisRpcLeaderElectionTimeoutMinMs) {
+    this.dataRegionRatisRpcLeaderElectionTimeoutMinMs =
+        dataRegionRatisRpcLeaderElectionTimeoutMinMs;
   }
 
   public long getConfigNodeRatisRpcLeaderElectionTimeoutMaxMs() {
     return configNodeRatisRpcLeaderElectionTimeoutMaxMs;
   }
 
-  public void setConfigNodeRatisRpcLeaderElectionTimeoutMaxMs(long configNodeRatisRpcLeaderElectionTimeoutMaxMs) {
-    this.configNodeRatisRpcLeaderElectionTimeoutMaxMs = configNodeRatisRpcLeaderElectionTimeoutMaxMs;
+  public void setConfigNodeRatisRpcLeaderElectionTimeoutMaxMs(
+      long configNodeRatisRpcLeaderElectionTimeoutMaxMs) {
+    this.configNodeRatisRpcLeaderElectionTimeoutMaxMs =
+        configNodeRatisRpcLeaderElectionTimeoutMaxMs;
   }
 
   public long getSchemaRegionRatisRpcLeaderElectionTimeoutMaxMs() {
     return schemaRegionRatisRpcLeaderElectionTimeoutMaxMs;
   }
 
-  public void setSchemaRegionRatisRpcLeaderElectionTimeoutMaxMs(long schemaRegionRatisRpcLeaderElectionTimeoutMaxMs) {
-    this.schemaRegionRatisRpcLeaderElectionTimeoutMaxMs = schemaRegionRatisRpcLeaderElectionTimeoutMaxMs;
+  public void setSchemaRegionRatisRpcLeaderElectionTimeoutMaxMs(
+      long schemaRegionRatisRpcLeaderElectionTimeoutMaxMs) {
+    this.schemaRegionRatisRpcLeaderElectionTimeoutMaxMs =
+        schemaRegionRatisRpcLeaderElectionTimeoutMaxMs;
   }
 
   public long getDataRegionRatisRpcLeaderElectionTimeoutMaxMs() {
     return dataRegionRatisRpcLeaderElectionTimeoutMaxMs;
   }
 
-  public void setDataRegionRatisRpcLeaderElectionTimeoutMaxMs(long dataRegionRatisRpcLeaderElectionTimeoutMaxMs) {
-    this.dataRegionRatisRpcLeaderElectionTimeoutMaxMs = dataRegionRatisRpcLeaderElectionTimeoutMaxMs;
+  public void setDataRegionRatisRpcLeaderElectionTimeoutMaxMs(
+      long dataRegionRatisRpcLeaderElectionTimeoutMaxMs) {
+    this.dataRegionRatisRpcLeaderElectionTimeoutMaxMs =
+        dataRegionRatisRpcLeaderElectionTimeoutMaxMs;
   }
 
   public long getConfigNodeRatisRequestTimeoutMs() {
@@ -899,7 +1079,8 @@ public class CommonConfig {
     return schemaRegionRatisPreserveLogsWhenPurge;
   }
 
-  public void setSchemaRegionRatisPreserveLogsWhenPurge(long schemaRegionRatisPreserveLogsWhenPurge) {
+  public void setSchemaRegionRatisPreserveLogsWhenPurge(
+      long schemaRegionRatisPreserveLogsWhenPurge) {
     this.schemaRegionRatisPreserveLogsWhenPurge = schemaRegionRatisPreserveLogsWhenPurge;
   }
 
@@ -1039,6 +1220,493 @@ public class CommonConfig {
     this.handleSystemErrorStrategy = handleSystemErrorStrategy;
   }
 
+  public boolean isEnableMemControl() {
+    return enableMemControl;
+  }
+
+  public void setEnableMemControl(boolean enableMemControl) {
+    this.enableMemControl = enableMemControl;
+  }
+
+  public long getAllocateMemoryForStorageEngine() {
+    return allocateMemoryForStorageEngine;
+  }
+
+  public void setAllocateMemoryForStorageEngine(long allocateMemoryForStorageEngine) {
+    this.allocateMemoryForStorageEngine = allocateMemoryForStorageEngine;
+  }
+
+  public long getAllocateMemoryForRead() {
+    return allocateMemoryForRead;
+  }
+
+  public void setAllocateMemoryForRead(long allocateMemoryForRead) {
+    this.allocateMemoryForRead = allocateMemoryForRead;
+  }
+
+  public long getAllocateMemoryForSchema() {
+    return allocateMemoryForSchema;
+  }
+
+  public void setAllocateMemoryForSchema(long allocateMemoryForSchema) {
+    this.allocateMemoryForSchema = allocateMemoryForSchema;
+  }
+
+  public long getAllocateMemoryForConsensus() {
+    return allocateMemoryForConsensus;
+  }
+
+  public void setAllocateMemoryForConsensus(long allocateMemoryForConsensus) {
+    this.allocateMemoryForConsensus = allocateMemoryForConsensus;
+  }
+
+  public int getCoordinatorReadExecutorSize() {
+    return coordinatorReadExecutorSize;
+  }
+
+  public void setCoordinatorReadExecutorSize(int coordinatorReadExecutorSize) {
+    this.coordinatorReadExecutorSize = coordinatorReadExecutorSize;
+  }
+
+  public int getCoordinatorWriteExecutorSize() {
+    return coordinatorWriteExecutorSize;
+  }
+
+  public void setCoordinatorWriteExecutorSize(int coordinatorWriteExecutorSize) {
+    this.coordinatorWriteExecutorSize = coordinatorWriteExecutorSize;
+  }
+
+  public int getPartitionCacheSize() {
+    return partitionCacheSize;
+  }
+
+  public void setPartitionCacheSize(int partitionCacheSize) {
+    this.partitionCacheSize = partitionCacheSize;
+  }
+
+  public int getMlogBufferSize() {
+    return mlogBufferSize;
+  }
+
+  public void setMlogBufferSize(int mlogBufferSize) {
+    this.mlogBufferSize = mlogBufferSize;
+  }
+
+  public long getSyncMlogPeriodInMs() {
+    return syncMlogPeriodInMs;
+  }
+
+  public void setSyncMlogPeriodInMs(long syncMlogPeriodInMs) {
+    this.syncMlogPeriodInMs = syncMlogPeriodInMs;
+  }
+
+  public int getTagAttributeFlushInterval() {
+    return tagAttributeFlushInterval;
+  }
+
+  public void setTagAttributeFlushInterval(int tagAttributeFlushInterval) {
+    this.tagAttributeFlushInterval = tagAttributeFlushInterval;
+  }
+
+  public int getTagAttributeTotalSize() {
+    return tagAttributeTotalSize;
+  }
+
+  public void setTagAttributeTotalSize(int tagAttributeTotalSize) {
+    this.tagAttributeTotalSize = tagAttributeTotalSize;
+  }
+
+  public int getMaxMeasurementNumOfInternalRequest() {
+    return maxMeasurementNumOfInternalRequest;
+  }
+
+  public void setMaxMeasurementNumOfInternalRequest(int maxMeasurementNumOfInternalRequest) {
+    this.maxMeasurementNumOfInternalRequest = maxMeasurementNumOfInternalRequest;
+  }
+
+  public boolean isEnableAutoCreateSchema() {
+    return enableAutoCreateSchema;
+  }
+
+  public void setEnableAutoCreateSchema(boolean enableAutoCreateSchema) {
+    this.enableAutoCreateSchema = enableAutoCreateSchema;
+  }
+
+  public int getDefaultStorageGroupLevel() {
+    return defaultStorageGroupLevel;
+  }
+
+  public void setDefaultStorageGroupLevel(int defaultStorageGroupLevel) {
+    this.defaultStorageGroupLevel = defaultStorageGroupLevel;
+  }
+
+  public TSDataType getBooleanStringInferType() {
+    return booleanStringInferType;
+  }
+
+  public void setBooleanStringInferType(TSDataType booleanStringInferType) {
+    this.booleanStringInferType = booleanStringInferType;
+  }
+
+  public TSDataType getIntegerStringInferType() {
+    return integerStringInferType;
+  }
+
+  public void setIntegerStringInferType(TSDataType integerStringInferType) {
+    this.integerStringInferType = integerStringInferType;
+  }
+
+  public TSDataType getLongStringInferType() {
+    return longStringInferType;
+  }
+
+  public void setLongStringInferType(TSDataType longStringInferType) {
+    this.longStringInferType = longStringInferType;
+  }
+
+  public TSDataType getFloatingStringInferType() {
+    return floatingStringInferType;
+  }
+
+  public void setFloatingStringInferType(TSDataType floatingStringInferType) {
+    this.floatingStringInferType = floatingStringInferType;
+  }
+
+  public TSDataType getNanStringInferType() {
+    return nanStringInferType;
+  }
+
+  public void setNanStringInferType(TSDataType nanStringInferType) {
+    if (nanStringInferType != TSDataType.DOUBLE
+        && nanStringInferType != TSDataType.FLOAT
+        && nanStringInferType != TSDataType.TEXT) {
+      throw new IllegalArgumentException(
+          "Config Property nan_string_infer_type can only be FLOAT, DOUBLE or TEXT but is "
+              + nanStringInferType);
+    }
+    this.nanStringInferType = nanStringInferType;
+  }
+
+  public TSEncoding getDefaultBooleanEncoding() {
+    return defaultBooleanEncoding;
+  }
+
+  public void setDefaultBooleanEncoding(TSEncoding defaultBooleanEncoding) {
+    this.defaultBooleanEncoding = defaultBooleanEncoding;
+  }
+
+  public TSEncoding getDefaultInt32Encoding() {
+    return defaultInt32Encoding;
+  }
+
+  public void setDefaultInt32Encoding(TSEncoding defaultInt32Encoding) {
+    this.defaultInt32Encoding = defaultInt32Encoding;
+  }
+
+  public TSEncoding getDefaultInt64Encoding() {
+    return defaultInt64Encoding;
+  }
+
+  public void setDefaultInt64Encoding(TSEncoding defaultInt64Encoding) {
+    this.defaultInt64Encoding = defaultInt64Encoding;
+  }
+
+  public TSEncoding getDefaultFloatEncoding() {
+    return defaultFloatEncoding;
+  }
+
+  public void setDefaultFloatEncoding(TSEncoding defaultFloatEncoding) {
+    this.defaultFloatEncoding = defaultFloatEncoding;
+  }
+
+  public TSEncoding getDefaultDoubleEncoding() {
+    return defaultDoubleEncoding;
+  }
+
+  public void setDefaultDoubleEncoding(TSEncoding defaultDoubleEncoding) {
+    this.defaultDoubleEncoding = defaultDoubleEncoding;
+  }
+
+  public TSEncoding getDefaultTextEncoding() {
+    return defaultTextEncoding;
+  }
+
+  public void setDefaultTextEncoding(TSEncoding defaultTextEncoding) {
+    this.defaultTextEncoding = defaultTextEncoding;
+  }
+
+  public boolean isMetaDataCacheEnable() {
+    return metaDataCacheEnable;
+  }
+
+  public void setMetaDataCacheEnable(boolean metaDataCacheEnable) {
+    this.metaDataCacheEnable = metaDataCacheEnable;
+  }
+
+  public boolean isLastCacheEnable() {
+    return lastCacheEnable;
+  }
+
+  public void setLastCacheEnable(boolean lastCacheEnable) {
+    this.lastCacheEnable = lastCacheEnable;
+  }
+
+  public int getMaxDeduplicatedPathNum() {
+    return maxDeduplicatedPathNum;
+  }
+
+  public void setMaxDeduplicatedPathNum(int maxDeduplicatedPathNum) {
+    this.maxDeduplicatedPathNum = maxDeduplicatedPathNum;
+  }
+
+  public int getMppDataExchangeCorePoolSize() {
+    return mppDataExchangeCorePoolSize;
+  }
+
+  public void setMppDataExchangeCorePoolSize(int mppDataExchangeCorePoolSize) {
+    this.mppDataExchangeCorePoolSize = mppDataExchangeCorePoolSize;
+  }
+
+  public int getMppDataExchangeMaxPoolSize() {
+    return mppDataExchangeMaxPoolSize;
+  }
+
+  public void setMppDataExchangeMaxPoolSize(int mppDataExchangeMaxPoolSize) {
+    this.mppDataExchangeMaxPoolSize = mppDataExchangeMaxPoolSize;
+  }
+
+  public int getMppDataExchangeKeepAliveTimeInMs() {
+    return mppDataExchangeKeepAliveTimeInMs;
+  }
+
+  public void setMppDataExchangeKeepAliveTimeInMs(int mppDataExchangeKeepAliveTimeInMs) {
+    this.mppDataExchangeKeepAliveTimeInMs = mppDataExchangeKeepAliveTimeInMs;
+  }
+
+  public int getDriverTaskExecutionTimeSliceInMs() {
+    return driverTaskExecutionTimeSliceInMs;
+  }
+
+  public void setDriverTaskExecutionTimeSliceInMs(int driverTaskExecutionTimeSliceInMs) {
+    this.driverTaskExecutionTimeSliceInMs = driverTaskExecutionTimeSliceInMs;
+  }
+
+  public int getMaxTsBlockSizeInBytes() {
+    return maxTsBlockSizeInBytes;
+  }
+
+  public void setMaxTsBlockSizeInBytes(int maxTsBlockSizeInBytes) {
+    this.maxTsBlockSizeInBytes = maxTsBlockSizeInBytes;
+  }
+
+  public int getMaxTsBlockLineNumber() {
+    return maxTsBlockLineNumber;
+  }
+
+  public void setMaxTsBlockLineNumber(int maxTsBlockLineNumber) {
+    this.maxTsBlockLineNumber = maxTsBlockLineNumber;
+  }
+
+  public long getSlowQueryThreshold() {
+    return slowQueryThreshold;
+  }
+
+  public void setSlowQueryThreshold(long slowQueryThreshold) {
+    this.slowQueryThreshold = slowQueryThreshold;
+  }
+
+  public long getQueryTimeoutThreshold() {
+    return queryTimeoutThreshold;
+  }
+
+  public void setQueryTimeoutThreshold(long queryTimeoutThreshold) {
+    this.queryTimeoutThreshold = queryTimeoutThreshold;
+  }
+
+  public int getMaxAllowedConcurrentQueries() {
+    return maxAllowedConcurrentQueries;
+  }
+
+  public void setMaxAllowedConcurrentQueries(int maxAllowedConcurrentQueries) {
+    this.maxAllowedConcurrentQueries = maxAllowedConcurrentQueries;
+  }
+
+  public int getQueryThreadCount() {
+    return queryThreadCount;
+  }
+
+  public void setQueryThreadCount(int queryThreadCount) {
+    this.queryThreadCount = queryThreadCount;
+  }
+
+  public int getBatchSize() {
+    return batchSize;
+  }
+
+  public void setBatchSize(int batchSize) {
+    this.batchSize = batchSize;
+  }
+
+  public String getTimestampPrecision() {
+    return timestampPrecision;
+  }
+
+  public void setTimestampPrecision(String timestampPrecision) {
+    if (!("ms".equals(timestampPrecision)
+        || "us".equals(timestampPrecision)
+        || "ns".equals(timestampPrecision))) {
+      logger.error(
+          "Wrong timestamp precision, please set as: ms, us or ns ! Current is: {}",
+          timestampPrecision);
+      System.exit(-1);
+    }
+    this.timestampPrecision = timestampPrecision;
+  }
+
+  public int getMaxWaitingTimeWhenInsertBlockedInMs() {
+    return maxWaitingTimeWhenInsertBlockedInMs;
+  }
+
+  public void setMaxWaitingTimeWhenInsertBlockedInMs(int maxWaitingTimeWhenInsertBlockedInMs) {
+    this.maxWaitingTimeWhenInsertBlockedInMs = maxWaitingTimeWhenInsertBlockedInMs;
+  }
+
+  public boolean isEnableDiscardOutOfOrderData() {
+    return enableDiscardOutOfOrderData;
+  }
+
+  public void setEnableDiscardOutOfOrderData(boolean enableDiscardOutOfOrderData) {
+    this.enableDiscardOutOfOrderData = enableDiscardOutOfOrderData;
+  }
+
+  public long getMemtableSizeThreshold() {
+    return memtableSizeThreshold;
+  }
+
+  public void setMemtableSizeThreshold(long memtableSizeThreshold) {
+    this.memtableSizeThreshold = memtableSizeThreshold;
+  }
+
+  public boolean isEnableTimedFlushSeqMemtable() {
+    return enableTimedFlushSeqMemtable;
+  }
+
+  public void setEnableTimedFlushSeqMemtable(boolean enableTimedFlushSeqMemtable) {
+    this.enableTimedFlushSeqMemtable = enableTimedFlushSeqMemtable;
+  }
+
+  public long getSeqMemtableFlushInterval() {
+    return seqMemtableFlushInterval;
+  }
+
+  public void setSeqMemtableFlushInterval(long seqMemtableFlushInterval) {
+    this.seqMemtableFlushInterval = seqMemtableFlushInterval;
+  }
+
+  public long getSeqMemtableFlushCheckInterval() {
+    return seqMemtableFlushCheckInterval;
+  }
+
+  public void setSeqMemtableFlushCheckInterval(long seqMemtableFlushCheckInterval) {
+    this.seqMemtableFlushCheckInterval = seqMemtableFlushCheckInterval;
+  }
+
+  public boolean isEnableTimedFlushUnseqMemtable() {
+    return enableTimedFlushUnseqMemtable;
+  }
+
+  public void setEnableTimedFlushUnseqMemtable(boolean enableTimedFlushUnseqMemtable) {
+    this.enableTimedFlushUnseqMemtable = enableTimedFlushUnseqMemtable;
+  }
+
+  public long getUnseqMemtableFlushInterval() {
+    return unseqMemtableFlushInterval;
+  }
+
+  public void setUnseqMemtableFlushInterval(long unseqMemtableFlushInterval) {
+    this.unseqMemtableFlushInterval = unseqMemtableFlushInterval;
+  }
+
+  public long getUnseqMemtableFlushCheckInterval() {
+    return unseqMemtableFlushCheckInterval;
+  }
+
+  public void setUnseqMemtableFlushCheckInterval(long unseqMemtableFlushCheckInterval) {
+    this.unseqMemtableFlushCheckInterval = unseqMemtableFlushCheckInterval;
+  }
+
+  public TVListSortAlgorithm getTvListSortAlgorithm() {
+    return tvListSortAlgorithm;
+  }
+
+  public void setTvListSortAlgorithm(TVListSortAlgorithm tvListSortAlgorithm) {
+    this.tvListSortAlgorithm = tvListSortAlgorithm;
+  }
+
+  public int getAvgSeriesPointNumberThreshold() {
+    return avgSeriesPointNumberThreshold;
+  }
+
+  public void setAvgSeriesPointNumberThreshold(int avgSeriesPointNumberThreshold) {
+    this.avgSeriesPointNumberThreshold = avgSeriesPointNumberThreshold;
+  }
+
+  public int getFlushThreadCount() {
+    return flushThreadCount;
+  }
+
+  public void setFlushThreadCount(int flushThreadCount) {
+    this.flushThreadCount = flushThreadCount;
+  }
+
+  public boolean isEnablePartialInsert() {
+    return enablePartialInsert;
+  }
+
+  public void setEnablePartialInsert(boolean enablePartialInsert) {
+    this.enablePartialInsert = enablePartialInsert;
+  }
+
+  public long getRecoveryLogIntervalInMs() {
+    return recoveryLogIntervalInMs;
+  }
+
+  public void setRecoveryLogIntervalInMs(long recoveryLogIntervalInMs) {
+    this.recoveryLogIntervalInMs = recoveryLogIntervalInMs;
+  }
+
+  public int getUpgradeThreadCount() {
+    return upgradeThreadCount;
+  }
+
+  public void setUpgradeThreadCount(int upgradeThreadCount) {
+    this.upgradeThreadCount = upgradeThreadCount;
+  }
+
+  public boolean isEnableSeqSpaceCompaction() {
+    return enableSeqSpaceCompaction;
+  }
+
+  public void setEnableSeqSpaceCompaction(boolean enableSeqSpaceCompaction) {
+    this.enableSeqSpaceCompaction = enableSeqSpaceCompaction;
+  }
+
+  public boolean isEnableUnseqSpaceCompaction() {
+    return enableUnseqSpaceCompaction;
+  }
+
+  public void setEnableUnseqSpaceCompaction(boolean enableUnseqSpaceCompaction) {
+    this.enableUnseqSpaceCompaction = enableUnseqSpaceCompaction;
+  }
+
+  public boolean isEnableCrossSpaceCompaction() {
+    return enableCrossSpaceCompaction;
+  }
+
+  public void setEnableCrossSpaceCompaction(boolean enableCrossSpaceCompaction) {
+    this.enableCrossSpaceCompaction = enableCrossSpaceCompaction;
+  }
+
   public boolean isReadOnly() {
     return status == NodeStatus.ReadOnly;
   }
diff --git a/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonDescriptor.java b/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonDescriptor.java
index 3928f48c4c..a17c973deb 100644
--- a/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonDescriptor.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonDescriptor.java
@@ -23,7 +23,9 @@ import org.apache.iotdb.commons.consensus.ConsensusProtocolClass;
 import org.apache.iotdb.commons.enums.HandleSystemErrorStrategy;
 import org.apache.iotdb.commons.loadbalance.LeaderDistributionPolicy;
 import org.apache.iotdb.commons.loadbalance.RegionGroupExtensionPolicy;
+import org.apache.iotdb.commons.utils.datastructure.TVListSortAlgorithm;
 import org.apache.iotdb.confignode.rpc.thrift.TGlobalConfig;
+import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -65,193 +67,335 @@ public class CommonDescriptor {
     CONF.setProcedureWalFolder(systemDir + File.separator + "procedure");
   }
 
-
-
   private void loadCommonProps(Properties properties) {
+
+    /* Cluster Configuration */
     CONF.setClusterName(
-      properties.getProperty(IoTDBConstant.CLUSTER_NAME, CONF.getClusterName()).trim());
+        properties.getProperty(IoTDBConstant.CLUSTER_NAME, CONF.getClusterName()).trim());
 
+    /* Replication configuration */
     try {
       CONF.setConfigNodeConsensusProtocolClass(
-        ConsensusProtocolClass.parse(
-          properties
-            .getProperty(
-              "config_node_consensus_protocol_class", CONF.getConfigNodeConsensusProtocolClass().getProtocol())
-            .trim()));
+          ConsensusProtocolClass.parse(
+              properties
+                  .getProperty(
+                      "config_node_consensus_protocol_class",
+                      CONF.getConfigNodeConsensusProtocolClass().getProtocol())
+                  .trim()));
     } catch (IOException e) {
-      LOGGER.warn("Unknown config_node_consensus_protocol_class in iotdb-common.properties file, use default config", e);
+      LOGGER.warn(
+          "Unknown config_node_consensus_protocol_class in iotdb-common.properties file, use default config",
+          e);
     }
 
     CONF.setSchemaReplicationFactor(
-      Integer.parseInt(
-        properties
-          .getProperty(
-            "schema_replication_factor", String.valueOf(CONF.getSchemaReplicationFactor()))
-          .trim()));
+        Integer.parseInt(
+            properties
+                .getProperty(
+                    "schema_replication_factor", String.valueOf(CONF.getSchemaReplicationFactor()))
+                .trim()));
 
     try {
       CONF.setSchemaRegionConsensusProtocolClass(
-        ConsensusProtocolClass.parse(
-          properties
-            .getProperty(
-              "schema_region_consensus_protocol_class", CONF.getSchemaRegionConsensusProtocolClass().getProtocol())
-            .trim()));
+          ConsensusProtocolClass.parse(
+              properties
+                  .getProperty(
+                      "schema_region_consensus_protocol_class",
+                      CONF.getSchemaRegionConsensusProtocolClass().getProtocol())
+                  .trim()));
     } catch (IOException e) {
-      LOGGER.warn("Unknown schema_region_consensus_protocol_class in iotdb-common.properties file, use default config", e);
+      LOGGER.warn(
+          "Unknown schema_region_consensus_protocol_class in iotdb-common.properties file, use default config",
+          e);
     }
 
     CONF.setDataReplicationFactor(
-      Integer.parseInt(
-        properties
-          .getProperty(
-            "data_replication_factor", String.valueOf(CONF.getDataReplicationFactor()))
-          .trim()));
+        Integer.parseInt(
+            properties
+                .getProperty(
+                    "data_replication_factor", String.valueOf(CONF.getDataReplicationFactor()))
+                .trim()));
 
     try {
       CONF.setDataRegionConsensusProtocolClass(
-        ConsensusProtocolClass.parse(
-          properties
-            .getProperty(
-              "data_region_consensus_protocol_class", CONF.getDataRegionConsensusProtocolClass().getProtocol())
-            .trim()));
+          ConsensusProtocolClass.parse(
+              properties
+                  .getProperty(
+                      "data_region_consensus_protocol_class",
+                      CONF.getDataRegionConsensusProtocolClass().getProtocol())
+                  .trim()));
     } catch (IOException e) {
-      LOGGER.warn("Unknown data_region_consensus_protocol_class in iotdb-common.properties file, use default config", e);
+      LOGGER.warn(
+          "Unknown data_region_consensus_protocol_class in iotdb-common.properties file, use default config",
+          e);
     }
 
+    /* Load balancing configuration */
     CONF.setSeriesSlotNum(
-      Integer.parseInt(
-        properties
-          .getProperty("series_slot_num", String.valueOf(CONF.getSeriesSlotNum()))
-          .trim()));
+        Integer.parseInt(
+            properties
+                .getProperty("series_slot_num", String.valueOf(CONF.getSeriesSlotNum()))
+                .trim()));
 
     CONF.setSeriesPartitionExecutorClass(
-      properties
-        .getProperty("series_partition_executor_class", CONF.getSeriesPartitionExecutorClass())
-        .trim());
+        properties
+            .getProperty("series_partition_executor_class", CONF.getSeriesPartitionExecutorClass())
+            .trim());
 
     CONF.setSchemaRegionPerDataNode(
-      Double.parseDouble(
-        properties
-          .getProperty(
-            "schema_region_per_data_node",
-            String.valueOf(CONF.getSchemaReplicationFactor()))
-          .trim()));
+        Double.parseDouble(
+            properties
+                .getProperty(
+                    "schema_region_per_data_node",
+                    String.valueOf(CONF.getSchemaReplicationFactor()))
+                .trim()));
 
     CONF.setDataRegionPerProcessor(
-      Double.parseDouble(
-        properties
-          .getProperty(
-            "data_region_per_processor", String.valueOf(CONF.getDataRegionPerProcessor()))
-          .trim()));
+        Double.parseDouble(
+            properties
+                .getProperty(
+                    "data_region_per_processor", String.valueOf(CONF.getDataRegionPerProcessor()))
+                .trim()));
 
     try {
       CONF.setSchemaRegionGroupExtensionPolicy(
-        RegionGroupExtensionPolicy.parse(
-          properties.getProperty(
-            "schema_region_group_extension_policy",
-            CONF.getSchemaRegionGroupExtensionPolicy().getPolicy().trim())));
+          RegionGroupExtensionPolicy.parse(
+              properties.getProperty(
+                  "schema_region_group_extension_policy",
+                  CONF.getSchemaRegionGroupExtensionPolicy().getPolicy().trim())));
     } catch (IOException e) {
-      LOGGER.warn("Unknown schema_region_group_extension_policy in iotdb-common.properties file, use default config", e);
+      LOGGER.warn(
+          "Unknown schema_region_group_extension_policy in iotdb-common.properties file, use default config",
+          e);
     }
 
     CONF.setSchemaRegionGroupPerDatabase(
-      Integer.parseInt(
-        properties.getProperty(
-          "schema_region_group_per_database",
-          String.valueOf(CONF.getSchemaRegionGroupPerDatabase()).trim())));
+        Integer.parseInt(
+            properties.getProperty(
+                "schema_region_group_per_database",
+                String.valueOf(CONF.getSchemaRegionGroupPerDatabase()).trim())));
 
     try {
       CONF.setDataRegionGroupExtensionPolicy(
-        RegionGroupExtensionPolicy.parse(
-          properties.getProperty(
-            "data_region_group_extension_policy",
-            CONF.getDataRegionGroupExtensionPolicy().getPolicy().trim())));
+          RegionGroupExtensionPolicy.parse(
+              properties.getProperty(
+                  "data_region_group_extension_policy",
+                  CONF.getDataRegionGroupExtensionPolicy().getPolicy().trim())));
     } catch (IOException e) {
-      LOGGER.warn("Unknown data_region_group_extension_policy in iotdb-common.properties file, use default config", e);
+      LOGGER.warn(
+          "Unknown data_region_group_extension_policy in iotdb-common.properties file, use default config",
+          e);
     }
 
     CONF.setDataRegionGroupPerDatabase(
-      Integer.parseInt(
-        properties.getProperty(
-          "data_region_group_per_database",
-          String.valueOf(CONF.getDataRegionGroupPerDatabase()).trim())));
+        Integer.parseInt(
+            properties.getProperty(
+                "data_region_group_per_database",
+                String.valueOf(CONF.getDataRegionGroupPerDatabase()).trim())));
 
     CONF.setLeastDataRegionGroupNum(
-      Integer.parseInt(
-        properties.getProperty(
-          "least_data_region_group_num", String.valueOf(CONF.getLeastDataRegionGroupNum()))));
+        Integer.parseInt(
+            properties.getProperty(
+                "least_data_region_group_num", String.valueOf(CONF.getLeastDataRegionGroupNum()))));
 
     CONF.setEnableDataPartitionInheritPolicy(
-      Boolean.parseBoolean(
-        properties.getProperty(
-          "enable_data_partition_inherit_policy",
-          String.valueOf(CONF.isEnableDataPartitionInheritPolicy()))));
+        Boolean.parseBoolean(
+            properties.getProperty(
+                "enable_data_partition_inherit_policy",
+                String.valueOf(CONF.isEnableDataPartitionInheritPolicy()))));
 
     try {
       CONF.setLeaderDistributionPolicy(
-        LeaderDistributionPolicy.parse(
-          properties.getProperty(
-            "leader_distribution_policy",
-            CONF.getLeaderDistributionPolicy().getPolicy().trim())));
+          LeaderDistributionPolicy.parse(
+              properties.getProperty(
+                  "leader_distribution_policy",
+                  CONF.getLeaderDistributionPolicy().getPolicy().trim())));
     } catch (IOException e) {
-      LOGGER.warn("Unknown leader_distribution_policy in iotdb-common.properties file, use default config", e);
+      LOGGER.warn(
+          "Unknown leader_distribution_policy in iotdb-common.properties file, use default config",
+          e);
     }
 
     CONF.setEnableAutoLeaderBalanceForRatisConsensus(
-      Boolean.parseBoolean(
-        properties
-          .getProperty(
-            "enable_auto_leader_balance_for_ratis_consensus",
-            String.valueOf(CONF.isEnableAutoLeaderBalanceForRatisConsensus()))
-          .trim()));
+        Boolean.parseBoolean(
+            properties
+                .getProperty(
+                    "enable_auto_leader_balance_for_ratis_consensus",
+                    String.valueOf(CONF.isEnableAutoLeaderBalanceForRatisConsensus()))
+                .trim()));
 
     CONF.setEnableAutoLeaderBalanceForIoTConsensus(
-      Boolean.parseBoolean(
-        properties
-          .getProperty(
-            "enable_auto_leader_balance_for_iot_consensus",
-            String.valueOf(CONF.isEnableAutoLeaderBalanceForIoTConsensus()))
-          .trim()));
+        Boolean.parseBoolean(
+            properties
+                .getProperty(
+                    "enable_auto_leader_balance_for_iot_consensus",
+                    String.valueOf(CONF.isEnableAutoLeaderBalanceForIoTConsensus()))
+                .trim()));
 
+    /* Cluster management */
     CONF.setTimePartitionInterval(
-      Long.parseLong(
-        properties
-          .getProperty(
-            "time_partition_interval", String.valueOf(CONF.getTimePartitionInterval()))
-          .trim()));
+        Long.parseLong(
+            properties
+                .getProperty(
+                    "time_partition_interval", String.valueOf(CONF.getTimePartitionInterval()))
+                .trim()));
 
     CONF.setHeartbeatIntervalInMs(
-      Long.parseLong(
-        properties
-          .getProperty(
-            "heartbeat_interval_in_ms", String.valueOf(CONF.getHeartbeatIntervalInMs()))
-          .trim()));
+        Long.parseLong(
+            properties
+                .getProperty(
+                    "heartbeat_interval_in_ms", String.valueOf(CONF.getHeartbeatIntervalInMs()))
+                .trim()));
 
     CONF.setDiskSpaceWarningThreshold(
-      Double.parseDouble(
-        properties
-          .getProperty(
-            "disk_space_warning_threshold",
-            String.valueOf(CONF.getDiskSpaceWarningThreshold()))
-          .trim()));
+        Double.parseDouble(
+            properties
+                .getProperty(
+                    "disk_space_warning_threshold",
+                    String.valueOf(CONF.getDiskSpaceWarningThreshold()))
+                .trim()));
+
+    /* Schema Engine Configuration */
+    CONF.setCoordinatorReadExecutorSize(
+        Integer.parseInt(
+            properties.getProperty(
+                "coordinator_read_executor_size",
+                Integer.toString(CONF.getCoordinatorReadExecutorSize()))));
+
+    CONF.setCoordinatorWriteExecutorSize(
+        Integer.parseInt(
+            properties.getProperty(
+                "coordinator_write_executor_size",
+                Integer.toString(CONF.getCoordinatorWriteExecutorSize()))));
+
+    CONF.setPartitionCacheSize(
+        Integer.parseInt(
+            properties.getProperty(
+                "partition_cache_size", Integer.toString(CONF.getPartitionCacheSize()))));
+
+    int mlogBufferSize =
+        Integer.parseInt(
+            properties.getProperty("mlog_buffer_size", Integer.toString(CONF.getMlogBufferSize())));
+    if (mlogBufferSize > 0) {
+      CONF.setMlogBufferSize(mlogBufferSize);
+    }
+
+    long forceMlogPeriodInMs =
+        Long.parseLong(
+            properties.getProperty(
+                "sync_mlog_period_in_ms", Long.toString(CONF.getSyncMlogPeriodInMs())));
+    if (forceMlogPeriodInMs > 0) {
+      CONF.setSyncMlogPeriodInMs(forceMlogPeriodInMs);
+    }
+
+    CONF.setTagAttributeFlushInterval(
+        Integer.parseInt(
+            properties.getProperty(
+                "tag_attribute_flush_interval",
+                String.valueOf(CONF.getTagAttributeFlushInterval()))));
+
+    CONF.setTagAttributeTotalSize(
+        Integer.parseInt(
+            properties.getProperty(
+                "tag_attribute_total_size", String.valueOf(CONF.getTagAttributeTotalSize()))));
+
+    CONF.setMaxMeasurementNumOfInternalRequest(
+        Integer.parseInt(
+            properties.getProperty(
+                "max_measurement_num_of_internal_request",
+                String.valueOf(CONF.getMaxMeasurementNumOfInternalRequest()))));
+
+    /* Configurations for creating schema automatically */
+    loadAutoCreateSchemaProps(properties);
+
+    /* Query Configurations */
+
+    /* Storage Engine Configuration */
+    CONF.setTimestampPrecision(
+        properties.getProperty("timestamp_precision", CONF.getTimestampPrecision()).trim());
+
+    CONF.setDefaultTtlInMs(
+        Long.parseLong(
+            properties
+                .getProperty("default_ttl_in_ms", String.valueOf(CONF.getDefaultTtlInMs()))
+                .trim()));
+
+    CONF.setMaxWaitingTimeWhenInsertBlockedInMs(
+        Integer.parseInt(
+            properties.getProperty(
+                "max_waiting_time_when_insert_blocked",
+                Integer.toString(CONF.getMaxWaitingTimeWhenInsertBlockedInMs()))));
+
+    CONF.setEnableDiscardOutOfOrderData(
+        Boolean.parseBoolean(
+            properties.getProperty(
+                "enable_discard_out_of_order_data",
+                Boolean.toString(CONF.isEnableDiscardOutOfOrderData()))));
+
+    CONF.setHandleSystemErrorStrategy(
+        HandleSystemErrorStrategy.valueOf(
+            properties
+                .getProperty(
+                    "handle_system_error", String.valueOf(CONF.getHandleSystemErrorStrategy()))
+                .trim()));
+
+    long memTableSizeThreshold =
+        Long.parseLong(
+            properties
+                .getProperty(
+                    "memtable_size_threshold", Long.toString(CONF.getMemtableSizeThreshold()))
+                .trim());
+    if (memTableSizeThreshold > 0) {
+      CONF.setMemtableSizeThreshold(memTableSizeThreshold);
+    }
+
+    loadTimedService(properties);
+
+    CONF.setTvListSortAlgorithm(
+        TVListSortAlgorithm.valueOf(
+            properties.getProperty(
+                "tvlist_sort_algorithm", CONF.getTvListSortAlgorithm().toString())));
+
+    CONF.setAvgSeriesPointNumberThreshold(
+        Integer.parseInt(
+            properties.getProperty(
+                "avg_series_point_number_threshold",
+                Integer.toString(CONF.getAvgSeriesPointNumberThreshold()))));
+
+    CONF.setFlushThreadCount(
+        Integer.parseInt(
+            properties.getProperty(
+                "flush_thread_count", Integer.toString(CONF.getFlushThreadCount()))));
+    if (CONF.getFlushThreadCount() <= 0) {
+      CONF.setFlushThreadCount(Runtime.getRuntime().availableProcessors());
+    }
+
+    CONF.setEnablePartialInsert(
+        Boolean.parseBoolean(
+            properties.getProperty(
+                "enable_partial_insert", String.valueOf(CONF.isEnablePartialInsert()))));
+
+    CONF.setRecoveryLogIntervalInMs(
+        Long.parseLong(
+            properties.getProperty(
+                "recovery_log_interval_in_ms", String.valueOf(CONF.getRecoveryLogIntervalInMs()))));
+
+    CONF.setUpgradeThreadCount(
+        Integer.parseInt(
+            properties.getProperty(
+                "upgrade_thread_count", Integer.toString(CONF.getUpgradeThreadCount()))));
 
     String readConsistencyLevel =
-      properties.getProperty("read_consistency_level", CONF.getReadConsistencyLevel()).trim();
+        properties.getProperty("read_consistency_level", CONF.getReadConsistencyLevel()).trim();
     if (readConsistencyLevel.equals("strong") || readConsistencyLevel.equals("weak")) {
       CONF.setReadConsistencyLevel(readConsistencyLevel);
     } else {
       LOGGER.warn(
-        String.format(
-          "Unknown read_consistency_level: %s, please set to \"strong\" or \"weak\"",
-          readConsistencyLevel));
+          String.format(
+              "Unknown read_consistency_level: %s, please set to \"strong\" or \"weak\"",
+              readConsistencyLevel));
     }
 
-    CONF.setDefaultTtlInMs(
-      Long.parseLong(
-        properties
-          .getProperty("default_ttl_in_ms", String.valueOf(CONF.getDefaultTtlInMs()))
-          .trim()));
-
     CONF.setAuthorizerProvider(
         properties.getProperty("authorizer_provider_class", CONF.getAuthorizerProvider()).trim());
 
@@ -261,13 +405,11 @@ public class CommonDescriptor {
 
     CONF.setAdminName(properties.getProperty("admin_name", CONF.getAdminName()).trim());
 
-    CONF.setAdminPassword(
-        properties.getProperty("admin_password", CONF.getAdminPassword()).trim());
+    CONF.setAdminPassword(properties.getProperty("admin_password", CONF.getAdminPassword()).trim());
 
     CONF.setEncryptDecryptProvider(
         properties
-            .getProperty(
-                "iotdb_server_encrypt_decrypt_provider", CONF.getEncryptDecryptProvider())
+            .getProperty("iotdb_server_encrypt_decrypt_provider", CONF.getEncryptDecryptProvider())
             .trim());
 
     CONF.setEncryptDecryptProviderParameter(
@@ -275,7 +417,6 @@ public class CommonDescriptor {
             "iotdb_server_encrypt_decrypt_provider_parameter",
             CONF.getEncryptDecryptProviderParameter()));
 
-
     CONF.setUdfDir(properties.getProperty("udf_lib_dir", CONF.getUdfDir()).trim());
 
     CONF.setTriggerDir(properties.getProperty("trigger_lib_dir", CONF.getTriggerDir()).trim());
@@ -287,60 +428,119 @@ public class CommonDescriptor {
             .getProperty("dn_wal_dirs", String.join(",", CONF.getWalDirs()))
             .trim()
             .split(","));
+  }
 
-    CONF.setRpcThriftCompressionEnabled(
+  private void loadAutoCreateSchemaProps(Properties properties) {
+
+    CONF.setEnableAutoCreateSchema(
         Boolean.parseBoolean(
-            properties
-                .getProperty(
-                    "cn_rpc_thrift_compression_enable",
-                    String.valueOf(CONF.isRpcThriftCompressionEnabled()))
-                .trim()));
+            properties.getProperty(
+                "enable_auto_create_schema",
+                Boolean.toString(CONF.isEnableAutoCreateSchema()).trim())));
 
-    CONF.setConnectionTimeoutInMS(
+    CONF.setDefaultStorageGroupLevel(
         Integer.parseInt(
-            properties
-                .getProperty(
-                    "dn_connection_timeout_ms", String.valueOf(CONF.getConnectionTimeoutInMS()))
-                .trim()));
+            properties.getProperty(
+                "default_storage_group_level",
+                Integer.toString(CONF.getDefaultStorageGroupLevel()))));
+
+    CONF.setBooleanStringInferType(
+        TSDataType.valueOf(
+            properties.getProperty(
+                "boolean_string_infer_type", CONF.getBooleanStringInferType().toString())));
+    CONF.setIntegerStringInferType(
+        TSDataType.valueOf(
+            properties.getProperty(
+                "integer_string_infer_type", CONF.getIntegerStringInferType().toString())));
+    CONF.setLongStringInferType(
+        TSDataType.valueOf(
+            properties.getProperty(
+                "long_string_infer_type", CONF.getLongStringInferType().toString())));
+    CONF.setFloatingStringInferType(
+        TSDataType.valueOf(
+            properties.getProperty(
+                "floating_string_infer_type", CONF.getFloatingStringInferType().toString())));
+    CONF.setNanStringInferType(
+        TSDataType.valueOf(
+            properties.getProperty(
+                "nan_string_infer_type", CONF.getNanStringInferType().toString())));
+
+    CONF.setDefaultBooleanEncoding(
+        properties.getProperty(
+            "default_boolean_encoding", CONF.getDefaultBooleanEncoding().toString()));
+    CONF.setDefaultInt32Encoding(
+        properties.getProperty(
+            "default_int32_encoding", CONF.getDefaultInt32Encoding().toString()));
+    CONF.setDefaultInt64Encoding(
+        properties.getProperty(
+            "default_int64_encoding", CONF.getDefaultInt64Encoding().toString()));
+    CONF.setDefaultFloatEncoding(
+        properties.getProperty(
+            "default_float_encoding", CONF.getDefaultFloatEncoding().toString()));
+    CONF.setDefaultDoubleEncoding(
+        properties.getProperty(
+            "default_double_encoding", CONF.getDefaultDoubleEncoding().toString()));
+    CONF.setDefaultTextEncoding(
+        properties.getProperty("default_text_encoding", CONF.getDefaultTextEncoding().toString()));
+  }
 
-    CONF.setRpcThriftCompressionEnabled(
+  // Timed flush memtable
+  private void loadTimedService(Properties properties) {
+    CONF.setEnableTimedFlushSeqMemtable(
         Boolean.parseBoolean(
-            properties
-                .getProperty(
-                    "dn_rpc_thrift_compression_enable",
-                    String.valueOf(CONF.isRpcThriftCompressionEnabled()))
-                .trim()));
+            properties.getProperty(
+                "enable_timed_flush_seq_memtable",
+                Boolean.toString(CONF.isEnableTimedFlushSeqMemtable()))));
 
-    CONF.setSelectorNumOfClientManager(
-        Integer.parseInt(
+    long seqMemTableFlushInterval =
+        Long.parseLong(
             properties
                 .getProperty(
-                    "dn_selector_thread_nums_of_client_manager",
-                    String.valueOf(CONF.getSelectorNumOfClientManager()))
-                .trim()));
+                    "seq_memtable_flush_interval_in_ms",
+                    Long.toString(CONF.getSeqMemtableFlushInterval()))
+                .trim());
+    if (seqMemTableFlushInterval > 0) {
+      CONF.setSeqMemtableFlushInterval(seqMemTableFlushInterval);
+    }
 
-    CONF.setMaxTotalClientForEachNode(
-        Integer.parseInt(
+    long seqMemTableFlushCheckInterval =
+        Long.parseLong(
             properties
                 .getProperty(
-                    "dn_max_connection_for_internal_service",
-                    String.valueOf(CONF.getMaxTotalClientForEachNode()))
-                .trim()));
+                    "seq_memtable_flush_check_interval_in_ms",
+                    Long.toString(CONF.getSeqMemtableFlushCheckInterval()))
+                .trim());
+    if (seqMemTableFlushCheckInterval > 0) {
+      CONF.setSeqMemtableFlushCheckInterval(seqMemTableFlushCheckInterval);
+    }
 
-    CONF.setMaxIdleClientForEachNode(
-        Integer.parseInt(
+    CONF.setEnableTimedFlushUnseqMemtable(
+        Boolean.parseBoolean(
+            properties.getProperty(
+                "enable_timed_flush_unseq_memtable",
+                Boolean.toString(CONF.isEnableTimedFlushUnseqMemtable()))));
+
+    long unseqMemTableFlushInterval =
+        Long.parseLong(
             properties
                 .getProperty(
-                    "dn_core_connection_for_internal_service",
-                    String.valueOf(CONF.getMaxIdleClientForEachNode()))
-                .trim()));
+                    "unseq_memtable_flush_interval_in_ms",
+                    Long.toString(CONF.getUnseqMemtableFlushInterval()))
+                .trim());
+    if (unseqMemTableFlushInterval > 0) {
+      CONF.setUnseqMemtableFlushInterval(unseqMemTableFlushInterval);
+    }
 
-    CONF.setHandleSystemErrorStrategy(
-        HandleSystemErrorStrategy.valueOf(
+    long unseqMemTableFlushCheckInterval =
+        Long.parseLong(
             properties
                 .getProperty(
-                    "handle_system_error", String.valueOf(CONF.getHandleSystemErrorStrategy()))
-                .trim()));
+                    "unseq_memtable_flush_check_interval_in_ms",
+                    Long.toString(CONF.getUnseqMemtableFlushCheckInterval()))
+                .trim());
+    if (unseqMemTableFlushCheckInterval > 0) {
+      CONF.setUnseqMemtableFlushCheckInterval(unseqMemTableFlushCheckInterval);
+    }
   }
 
   public void loadGlobalConfig(TGlobalConfig globalConfig) {
diff --git a/server/src/main/java/org/apache/iotdb/db/utils/datastructure/TVListSortAlgorithm.java b/node-commons/src/main/java/org/apache/iotdb/commons/utils/datastructure/TVListSortAlgorithm.java
similarity index 94%
rename from server/src/main/java/org/apache/iotdb/db/utils/datastructure/TVListSortAlgorithm.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/utils/datastructure/TVListSortAlgorithm.java
index e067da3f15..11d7ce1e6a 100644
--- a/server/src/main/java/org/apache/iotdb/db/utils/datastructure/TVListSortAlgorithm.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/utils/datastructure/TVListSortAlgorithm.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.db.utils.datastructure;
+package org.apache.iotdb.commons.utils.datastructure;
 
 public enum TVListSortAlgorithm {
   TIM,
diff --git a/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/RSchemaReadWriteHandler.java b/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/RSchemaReadWriteHandler.java
index ea127b46df..b61b41a962 100644
--- a/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/RSchemaReadWriteHandler.java
+++ b/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/RSchemaReadWriteHandler.java
@@ -89,7 +89,7 @@ public class RSchemaReadWriteHandler {
   private static final String[] INNER_TABLES =
       new String[] {new String(RocksDB.DEFAULT_COLUMN_FAMILY), TABLE_NAME_TAGS};
 
-  public static final String ROCKSDB_PATH = config.getSystemDir() + File.separator + ROCKSDB_FOLDER;
+  public static final String ROCKSDB_PATH = config.getDnSystemDir() + File.separator + ROCKSDB_FOLDER;
 
   private RocksDB rocksDB;
 
diff --git a/server/src/assembly/resources/conf/iotdb-datanode.properties b/server/src/assembly/resources/conf/iotdb-datanode.properties
index 4993cbf0cb..143455f8c2 100644
--- a/server/src/assembly/resources/conf/iotdb-datanode.properties
+++ b/server/src/assembly/resources/conf/iotdb-datanode.properties
@@ -18,7 +18,7 @@
 #
 
 ####################
-### Data Node RPC Configuration
+### DataNode RPC Configuration
 ####################
 
 # Used for connection of IoTDB native clients(Session)
@@ -61,7 +61,7 @@ dn_data_region_consensus_port=10760
 # dn_join_cluster_retry_interval_ms=5000
 
 ####################
-### Target Config Nodes
+### Target ConfigNodes
 ####################
 
 # For the first ConfigNode to start, cn_target_config_node_list points to its own cn_internal_address:cn_internal_port.
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 5dda4be62d..1625c99299 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
@@ -22,7 +22,7 @@ import org.apache.iotdb.common.rpc.thrift.TEndPoint;
 import org.apache.iotdb.commons.client.property.ClientPoolProperty.DefaultProperty;
 import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.utils.TestOnly;
-import org.apache.iotdb.consensus.ConsensusFactory;
+import org.apache.iotdb.commons.utils.datastructure.TVListSortAlgorithm;
 import org.apache.iotdb.db.audit.AuditLogOperation;
 import org.apache.iotdb.db.audit.AuditLogStorage;
 import org.apache.iotdb.db.conf.directories.DirectoryManager;
@@ -37,14 +37,11 @@ import org.apache.iotdb.db.engine.storagegroup.timeindex.TimeIndexLevel;
 import org.apache.iotdb.db.exception.LoadConfigurationException;
 import org.apache.iotdb.db.service.thrift.impl.ClientRPCServiceImpl;
 import org.apache.iotdb.db.service.thrift.impl.NewInfluxDBServiceImpl;
-import org.apache.iotdb.db.utils.datastructure.TVListSortAlgorithm;
 import org.apache.iotdb.db.wal.utils.WALMode;
 import org.apache.iotdb.rpc.RpcTransportFactory;
 import org.apache.iotdb.rpc.RpcUtils;
 import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
 import org.apache.iotdb.tsfile.common.constant.TsFileConstant;
-import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
-import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
 import org.apache.iotdb.tsfile.fileSystem.FSType;
 
 import org.slf4j.Logger;
@@ -65,6 +62,32 @@ import static org.apache.iotdb.tsfile.common.constant.TsFileConstant.PATH_SEPARA
 
 public class IoTDBConfig {
 
+  public static final String CONFIG_NAME = "iotdb-datanode.properties";
+  private static final Logger logger = LoggerFactory.getLogger(IoTDBConfig.class);
+
+  /** DataNode RPC Configuration */
+  // Rpc binding address
+  private String dnRpcAddress = "127.0.0.1";
+  // Port which the JDBC server listens to
+  private int dnRpcPort = 6667;
+  // Internal address for DataNode
+  private String dnInternalAddress = "127.0.0.1";
+  // Internal port for coordinator
+  private int dnInternalPort = 10730;
+  // Port that mpp data exchange thrift service listen to
+  private int dnMppDataExchangePort = 10740;
+  // Internal port for SchemaRegion consensus protocol
+  private int dnSchemaRegionConsensusPort = 10750;
+  // Internal port for dataRegion consensus protocol
+  private int dnDataRegionConsensusPort = 10760;
+  // The time of data node waiting for the next retry to join into the cluster
+  private long dnJoinClusterRetryIntervalMs = TimeUnit.SECONDS.toMillis(5);
+
+  /** Target ConfigNodes */
+  // Ip and port of ConfigNodes
+  private List<TEndPoint> dnTargetConfigNodeList =
+      Collections.singletonList(new TEndPoint("127.0.0.1", 10710));
+
   /** Connection Configuration */
   // The max time to live of a session in ms. Unit: millisecond
   private int dnSessionTimeoutThreshold = 0;
@@ -81,25 +104,56 @@ public class IoTDBConfig {
   // Thrift max frame size, 512MB by default
   private int dnThriftMaxFrameSize = 536870912;
   // Thrift init buffer size
-  private int dnThriftDefaultBufferSize = RpcUtils.THRIFT_DEFAULT_BUF_CAPACITY;
+  private int dnThriftInitBufferSize = RpcUtils.THRIFT_DEFAULT_BUF_CAPACITY;
   // Thrift socket and connection timeout between DataNode and ConfigNode
   private int dnConnectionTimeoutInMS = (int) TimeUnit.SECONDS.toMillis(20);
-  // The maximum number of clients that can be idle for a node's InternalService. When the number of idle clients on a node exceeds this number, newly returned clients will be released
-  private int dnCoreConnectionForInternalService = 100;
-  // The maximum number of clients that can be applied for a node's InternalService
-  private int dnMaxConnectionForInternalService = 100;
-  // ClientManager will have so many selector threads (TAsyncClientManager) to distribute to its clients
+  // ClientManager will have so many selector threads (TAsyncClientManager) to distribute to its
+  // clients
   private int dnSelectorThreadCountOfClientManager =
-    Runtime.getRuntime().availableProcessors() / 4 > 0
-      ? Runtime.getRuntime().availableProcessors() / 4
-      : 1;
+      Runtime.getRuntime().availableProcessors() / 4 > 0
+          ? Runtime.getRuntime().availableProcessors() / 4
+          : 1;
+  // The maximum number of clients that can be idle for a node's InternalService. When the number of
+  // idle clients on a node exceeds this number, newly returned clients will be released
+  private int dnCoreClientCountForEachNodeInClientManager = 200;
+  // The maximum number of clients that can be applied for a node's InternalService
+  private int dnMaxClientCountForEachNodeInClientManager = 300;
+
+  /** Directory Configuration */
+  // System directory, including version file for each database and metadata
+  private String dnSystemDir =
+      IoTDBConstant.DEFAULT_BASE_DIR + File.separator + IoTDBConstant.SYSTEM_FOLDER_NAME;
+
+  // Data directories. It can be settled as dataDirs = {"data1", "data2", "data3"};
+  private String[] dnDataDirs = {
+    IoTDBConstant.DEFAULT_BASE_DIR + File.separator + IoTDBConstant.DATA_FOLDER_NAME
+  };
+  // Strategy of multiple directories
+  private String dnMultiDirStrategyClassName = null;
+
+  // Consensus directory
+  private String dnConsensusDir = IoTDBConstant.DEFAULT_BASE_DIR + File.separator + "consensus";
+
+  // WAL directories
+  private String[] dnWalDirs = {
+    IoTDBConstant.DEFAULT_BASE_DIR + File.separator + IoTDBConstant.WAL_FOLDER_NAME
+  };
+
+  // Performance tracing directory, stores performance tracing files
+  private String dnTracingDir =
+      IoTDBConstant.DEFAULT_BASE_DIR + File.separator + IoTDBConstant.TRACING_FOLDER_NAME;
+
+  // Sync directory, including the log and hardlink tsfiles
+  private String dnSyncDir =
+      IoTDBConstant.DEFAULT_BASE_DIR + File.separator + IoTDBConstant.SYNC_FOLDER_NAME;
+
+  /** Metric Configuration */
+  // TODO: Add if necessary
 
   /* Names of Watermark methods */
-  public static final String WATERMARK_GROUPED_LSB = "GroupBasedLSBMethod";
-  public static final String CONFIG_NAME = "iotdb-datanode.properties";
-  private static final Logger logger = LoggerFactory.getLogger(IoTDBConfig.class);
   private static final String MULTI_DIR_STRATEGY_PREFIX =
       "org.apache.iotdb.db.conf.directories.strategy.";
+
   private static final String DEFAULT_MULTI_DIR_STRATEGY = "MaxDiskUsableSpaceFirstStrategy";
 
   private static final String STORAGE_GROUP_MATCHER = "([a-zA-Z0-9`_.\\-\\u2E80-\\u9FFF]+)";
@@ -134,29 +188,9 @@ public class IoTDBConfig {
   /** max mqtt message size. Unit: byte */
   private int mqttMaxMessageSize = 1048576;
 
-  /** Rpc binding address. */
-  private String rpcAddress = "127.0.0.1";
-
-  /** Port which the JDBC server listens to. */
-  private int rpcPort = 6667;
-
   /** Port which the influxdb protocol server listens to. */
   private int influxDBRpcPort = 8086;
 
-  /** Memory allocated for the write process */
-  private long allocateMemoryForStorageEngine = Runtime.getRuntime().maxMemory() * 3 / 10;
-
-  /** Memory allocated for the read process */
-  private long allocateMemoryForRead = Runtime.getRuntime().maxMemory() * 3 / 10;
-
-  /** Memory allocated for the mtree */
-  private long allocateMemoryForSchema = Runtime.getRuntime().maxMemory() / 10;
-
-  /** Memory allocated for the consensus layer */
-  private long allocateMemoryForConsensus = Runtime.getRuntime().maxMemory() / 10;
-
-  private volatile int maxQueryDeduplicatedPathNum = 1000;
-
   /** Ratio of memory allocated for buffered arrays */
   private double bufferedArraysMemoryProportion = 0.6;
 
@@ -185,12 +219,6 @@ public class IoTDBConfig {
   /** When inserting rejected, waiting period to check system again. Unit: millisecond */
   private int checkPeriodWhenInsertBlocked = 50;
 
-  /** When inserting rejected exceeds this, throw an exception. Unit: millisecond */
-  private int maxWaitingTimeWhenInsertBlockedInMs = 10000;
-
-  /** this variable set timestamp precision as millisecond, microsecond or nanosecond */
-  private String timestampPrecision = "ms";
-
   // region Write Ahead Log Configuration
   /** Write mode of wal */
   private volatile WALMode walMode = WALMode.ASYNC;
@@ -233,19 +261,6 @@ public class IoTDBConfig {
   private volatile long deleteWalFilesPeriodInMs = 20 * 1000L;
   // endregion
 
-  /**
-   * Size of log buffer for every MetaData operation. If the size of a MetaData operation plan is
-   * larger than this parameter, then the MetaData operation plan will be rejected by SchemaRegion.
-   * Unit: byte
-   */
-  private int mlogBufferSize = 1024 * 1024;
-
-  /**
-   * The cycle when metadata log is periodically forced to be written to disk(in milliseconds) If
-   * set this parameter to 0 it means call channel.force(true) after every each operation
-   */
-  private long syncMlogPeriodInMs = 100;
-
   /**
    * The size of log buffer for every trigger management operation plan. If the size of a trigger
    * management operation plan is larger than this parameter, the trigger management operation plan
@@ -253,10 +268,6 @@ public class IoTDBConfig {
    */
   private int tlogBufferSize = 1024 * 1024;
 
-  /** System directory, including version file for each database and metadata */
-  private String systemDir =
-      IoTDBConstant.DEFAULT_BASE_DIR + File.separator + IoTDBConstant.SYSTEM_FOLDER_NAME;
-
   /** Schema directory, including storage set of values. */
   private String schemaDir =
       IoTDBConstant.DEFAULT_BASE_DIR
@@ -265,10 +276,6 @@ public class IoTDBConfig {
           + File.separator
           + IoTDBConstant.SCHEMA_FOLDER_NAME;
 
-  /** Performance tracing directory, stores performance tracing files */
-  private String tracingDir =
-      IoTDBConstant.DEFAULT_BASE_DIR + File.separator + IoTDBConstant.TRACING_FOLDER_NAME;
-
   /** Query directory, stores temporary files of query */
   private String queryDir =
       IoTDBConstant.DEFAULT_BASE_DIR + File.separator + IoTDBConstant.QUERY_FOLDER_NAME;
@@ -299,16 +306,8 @@ public class IoTDBConfig {
   private String mqttDir =
       IoTDBConstant.EXT_FOLDER_NAME + File.separator + IoTDBConstant.MQTT_FOLDER_NAME;
 
-  /** Data directories. It can be settled as dataDirs = {"data1", "data2", "data3"}; */
-  private String[] dataDirs = {
-    IoTDBConstant.DEFAULT_BASE_DIR + File.separator + IoTDBConstant.DATA_FOLDER_NAME
-  };
-
   private String loadTsFileDir =
-      dataDirs[0] + File.separator + IoTDBConstant.LOAD_TSFILE_FOLDER_NAME;
-
-  /** Strategy of multiple directories. */
-  private String multiDirStrategyClassName = null;
+      dnDataDirs[0] + File.separator + IoTDBConstant.LOAD_TSFILE_FOLDER_NAME;
 
   private String ratisDataRegionSnapshotDir =
       IoTDBConstant.DEFAULT_BASE_DIR
@@ -317,28 +316,13 @@ public class IoTDBConfig {
           + File.separator
           + IoTDBConstant.SNAPSHOT_FOLDER_NAME;
 
-  /** Consensus directory. */
-  private String consensusDir = IoTDBConstant.DEFAULT_BASE_DIR + File.separator + "consensus";
-
-  private String dataRegionConsensusDir = consensusDir + File.separator + "data_region";
+  private String dataRegionConsensusDir = dnConsensusDir + File.separator + "data_region";
 
-  private String schemaRegionConsensusDir = consensusDir + File.separator + "schema_region";
+  private String schemaRegionConsensusDir = dnConsensusDir + File.separator + "schema_region";
 
   /** Maximum MemTable number. Invalid when enableMemControl is true. */
   private int maxMemtableNumber = 0;
 
-  /** The amount of data iterate each time in server */
-  private int batchSize = 100000;
-
-  /** How many threads can concurrently flush. When <= 0, use CPU core number. */
-  private int flushThreadCount = Runtime.getRuntime().availableProcessors();
-
-  /** How many threads can concurrently execute query statement. When <= 0, use CPU core number. */
-  private int queryThreadCount = Runtime.getRuntime().availableProcessors();
-
-  /** How many queries can be concurrently executed. When <= 0, use 1000. */
-  private int maxAllowedConcurrentQueries = 1000;
-
   /**
    * How many threads can concurrently read data for raw data query. When <= 0, use CPU core number.
    */
@@ -356,9 +340,6 @@ public class IoTDBConfig {
    */
   private int maxPendingWindowEvaluationTasks = 64;
 
-  /** Is the write mem control for writing enable. */
-  private boolean enableMemControl = true;
-
   /** Is the write ahead log enable. */
   private boolean enableIndex = false;
 
@@ -380,48 +361,6 @@ public class IoTDBConfig {
   /** When a sequence TsFile's file size (in byte) exceed this, the TsFile is forced closed. */
   private long seqTsFileSize = 0L;
 
-  /** When a memTable's size (in byte) exceeds this, the memtable is flushed to disk. Unit: byte */
-  private long memtableSizeThreshold = 1024 * 1024 * 1024L;
-
-  /** Whether to timed flush sequence tsfiles' memtables. */
-  private boolean enableTimedFlushSeqMemtable = true;
-
-  /**
-   * If a memTable's created time is older than current time minus this, the memtable will be
-   * flushed to disk.(only check sequence tsfiles' memtables) Unit: ms
-   */
-  private long seqMemtableFlushInterval = 3 * 60 * 60 * 1000L;
-
-  /** The interval to check whether sequence memtables need flushing. Unit: ms */
-  private long seqMemtableFlushCheckInterval = 10 * 60 * 1000L;
-
-  /** Whether to timed flush unsequence tsfiles' memtables. */
-  private boolean enableTimedFlushUnseqMemtable = true;
-
-  /**
-   * If a memTable's created time is older than current time minus this, the memtable will be
-   * flushed to disk.(only check unsequence tsfiles' memtables) Unit: ms
-   */
-  private long unseqMemtableFlushInterval = 3 * 60 * 60 * 1000L;
-
-  /** The interval to check whether unsequence memtables need flushing. Unit: ms */
-  private long unseqMemtableFlushCheckInterval = 10 * 60 * 1000L;
-
-  /** The sort algorithm used in TVList */
-  private TVListSortAlgorithm tvListSortAlgorithm = TVListSortAlgorithm.TIM;
-
-  /** When average series point number reaches this, flush the memtable to disk */
-  private int avgSeriesPointNumberThreshold = 100000;
-
-  /** Enable inner space compaction for sequence files */
-  private boolean enableSeqSpaceCompaction = true;
-
-  /** Enable inner space compaction for unsequence files */
-  private boolean enableUnseqSpaceCompaction = true;
-
-  /** Compact the unsequence files into the overlapped sequence files */
-  private boolean enableCrossSpaceCompaction = true;
-
   /**
    * The strategy of inner space compaction task. There are just one inner space compaction strategy
    * SIZE_TIRED_COMPACTION:
@@ -438,12 +377,11 @@ public class IoTDBConfig {
   private InnerUnseqCompactionPerformer innerUnseqCompactionPerformer =
       InnerUnseqCompactionPerformer.READ_POINT;
 
-  /**
-   * The strategy of cross space compaction task. There are just one cross space compaction strategy
-   * SIZE_TIRED_COMPACTION:
-   */
+  // TODO: Move it to CommonConfig
+  // The strategy of cross space compaction task. There are just one cross space compaction strategy
+  // SIZE_TIRED_COMPACTION:
   private CrossCompactionSelector crossCompactionSelector = CrossCompactionSelector.REWRITE;
-
+  // TODO: Move it to CommonConfig
   private CrossCompactionPerformer crossCompactionPerformer = CrossCompactionPerformer.READ_POINT;
 
   /**
@@ -506,9 +444,6 @@ public class IoTDBConfig {
 
   private boolean enableCompactionValidation = true;
 
-  /** whether to cache meta data(ChunkMetaData and TsFileMetaData) or not. */
-  private boolean metaDataCacheEnable = true;
-
   /** Memory allocated for bloomFilter cache in read process */
   private long allocateMemoryForBloomFilterCache = allocateMemoryForRead / 1001;
 
@@ -541,9 +476,6 @@ public class IoTDBConfig {
    */
   private boolean enableQueryMemoryEstimation = true;
 
-  /** Whether to enable Last cache */
-  private boolean lastCacheEnable = true;
-
   /** Set true to enable statistics monitor service, false to disable statistics service. */
   private boolean enableStatMonitor = false;
 
@@ -576,9 +508,6 @@ public class IoTDBConfig {
   /** Examining period of cache file reader : 100 seconds. Unit: millisecond */
   private long cacheFileReaderClearPeriod = 100000;
 
-  /** the max executing time of query in ms. Unit: millisecond */
-  private long queryTimeoutThreshold = 60000;
-
   /** Replace implementation class of JDBC service */
   private String rpcImplClassName = ClientRPCServiceImpl.class.getName();
 
@@ -615,54 +544,6 @@ public class IoTDBConfig {
   /** Watermark method and parameters */
   private String watermarkMethod = "GroupBasedLSBMethod(embed_row_cycle=2,embed_lsb_num=5)";
 
-  /** Switch of creating schema automatically */
-  private boolean enableAutoCreateSchema = true;
-
-  /** register time series as which type when receiving boolean string "true" or "false" */
-  private TSDataType booleanStringInferType = TSDataType.BOOLEAN;
-
-  /** register time series as which type when receiving an integer string "67" */
-  private TSDataType integerStringInferType = TSDataType.FLOAT;
-
-  /**
-   * register time series as which type when receiving an integer string and using float may lose
-   * precision num > 2 ^ 24
-   */
-  private TSDataType longStringInferType = TSDataType.DOUBLE;
-
-  /** register time series as which type when receiving a floating number string "6.7" */
-  private TSDataType floatingStringInferType = TSDataType.FLOAT;
-
-  /**
-   * register time series as which type when receiving the Literal NaN. Values can be DOUBLE, FLOAT
-   * or TEXT
-   */
-  private TSDataType nanStringInferType = TSDataType.DOUBLE;
-
-  /** Database level when creating schema automatically is enabled */
-  private int defaultStorageGroupLevel = 1;
-
-  /** BOOLEAN encoding when creating schema automatically is enabled */
-  private TSEncoding defaultBooleanEncoding = TSEncoding.RLE;
-
-  /** INT32 encoding when creating schema automatically is enabled */
-  private TSEncoding defaultInt32Encoding = TSEncoding.RLE;
-
-  /** INT64 encoding when creating schema automatically is enabled */
-  private TSEncoding defaultInt64Encoding = TSEncoding.RLE;
-
-  /** FLOAT encoding when creating schema automatically is enabled */
-  private TSEncoding defaultFloatEncoding = TSEncoding.GORILLA;
-
-  /** DOUBLE encoding when creating schema automatically is enabled */
-  private TSEncoding defaultDoubleEncoding = TSEncoding.GORILLA;
-
-  /** TEXT encoding when creating schema automatically is enabled */
-  private TSEncoding defaultTextEncoding = TSEncoding.PLAIN;
-
-  /** How many threads will be set up to perform upgrade tasks. */
-  private int upgradeThreadCount = 1;
-
   /** How many threads will be set up to perform settle tasks. */
   private int settleThreadNum = 1;
 
@@ -771,16 +652,6 @@ public class IoTDBConfig {
   // wait for 60 second by default.
   private int thriftServerAwaitTimeForStopService = 60;
 
-  // max size for tag and attribute of one time series
-  private int tagAttributeTotalSize = 700;
-
-  // Interval num of tag and attribute records when force flushing to disk
-  private int tagAttributeFlushInterval = 1000;
-
-  // In one insert (one device, one timestamp, multiple measurements),
-  // if enable partial insert, one measurement failure will not impact other measurements
-  private boolean enablePartialInsert = true;
-
   /**
    * Used to estimate the memory usage of text fields in a UDF query. It is recommended to set this
    * value to be slightly larger than the average length of all text records.
@@ -812,9 +683,6 @@ public class IoTDBConfig {
   /** time interval in minute for calculating query frequency. Unit: minute */
   private int frequencyIntervalInMinute = 1;
 
-  /** time cost(ms) threshold for slow query. Unit: millisecond */
-  private long slowQueryThreshold = 5000;
-
   private int patternMatchingThreshold = 1000000;
 
   /**
@@ -832,14 +700,6 @@ public class IoTDBConfig {
   /** the size of ioTaskQueue */
   private int ioTaskQueueSizeForFlushing = 10;
 
-  /** the number of data regions per user-defined database */
-  private int dataRegionNum = 1;
-
-  /** the interval to log recover progress of each vsg when starting iotdb */
-  private long recoveryLogIntervalInMs = 5_000L;
-
-  private boolean enableDiscardOutOfOrderData = false;
-
   /** the method to transform device path to device id, can be 'Plain' or 'SHA256' */
   private String deviceIDTransformationMethod = "Plain";
 
@@ -866,68 +726,6 @@ public class IoTDBConfig {
   /** maximum number of logged pages before log erased */
   private int schemaFileLogSize = 16384;
 
-  /**
-   * Maximum number of measurement in one create timeseries plan node. If the number of measurement
-   * in user request exceeds this limit, the request will be split.
-   */
-  private int maxMeasurementNumOfInternalRequest = 10000;
-
-  /** Internal address for data node */
-  private String internalAddress = "127.0.0.1";
-
-  /** Internal port for coordinator */
-  private int internalPort = 10730;
-
-  /** Internal port for dataRegion consensus protocol */
-  private int dataRegionConsensusPort = 10760;
-
-  /** Internal port for schemaRegion consensus protocol */
-  private int schemaRegionConsensusPort = 10750;
-
-  /** Ip and port of config nodes. */
-  private List<TEndPoint> targetConfigNodeList =
-      Collections.singletonList(new TEndPoint("127.0.0.1", 10710));
-
-  /** The time of data node waiting for the next retry to join into the cluster */
-  private long joinClusterRetryIntervalMs = TimeUnit.SECONDS.toMillis(5);
-
-  /**
-   * The consensus protocol class for data region. The Datanode should communicate with ConfigNode
-   * on startup and set this variable so that the correct class name can be obtained later when the
-   * data region consensus layer singleton is initialized
-   */
-  private String dataRegionConsensusProtocolClass = ConsensusFactory.RATIS_CONSENSUS;
-
-  /**
-   * The consensus protocol class for schema region. The Datanode should communicate with ConfigNode
-   * on startup and set this variable so that the correct class name can be obtained later when the
-   * schema region consensus layer singleton is initialized
-   */
-  private String schemaRegionConsensusProtocolClass = ConsensusFactory.RATIS_CONSENSUS;
-
-  /**
-   * The series partition executor class. The Datanode should communicate with ConfigNode on startup
-   * and set this variable so that the correct class name can be obtained later when calculating the
-   * series partition
-   */
-  private String seriesPartitionExecutorClass =
-      "org.apache.iotdb.commons.partition.executor.hash.APHashExecutor";
-
-  /** The number of series partitions in a database */
-  private int seriesPartitionSlotNum = 10000;
-
-  /** Port that mpp data exchange thrift service listen to. */
-  private int mppDataExchangePort = 10740;
-
-  /** Core pool size of mpp data exchange. */
-  private int mppDataExchangeCorePoolSize = 10;
-
-  /** Max pool size of mpp data exchange. */
-  private int mppDataExchangeMaxPoolSize = 10;
-
-  /** Thread keep alive time in ms of mpp data exchange. */
-  private int mppDataExchangeKeepAliveTimeInMs = 1000;
-
   /** Thrift socket and connection timeout between data node and config node. */
   private int connectionTimeoutInMS = (int) TimeUnit.SECONDS.toMillis(20);
 
@@ -954,12 +752,6 @@ public class IoTDBConfig {
    */
   private int maxClientNumForEachNode = DefaultProperty.MAX_CLIENT_NUM_FOR_EACH_NODE;
 
-  /**
-   * Cache size of partition cache in {@link
-   * org.apache.iotdb.db.mpp.plan.analyze.ClusterPartitionFetcher}
-   */
-  private int partitionCacheSize = 1000;
-
   /** Cache size of user and role */
   private int authorCacheSize = 100;
 
@@ -986,12 +778,6 @@ public class IoTDBConfig {
   /** How many times will we retry to find an instance of stateful trigger */
   private int retryNumToFindStatefulTrigger = 3;
 
-  /** ThreadPool size for read operation in coordinator */
-  private int coordinatorReadExecutorSize = 20;
-
-  /** ThreadPool size for write operation in coordinator */
-  private int coordinatorWriteExecutorSize = 50;
-
   /**
    * Whether the schema memory allocation is default config. Used for cluster mode initialization
    * judgement
@@ -1010,11 +796,6 @@ public class IoTDBConfig {
   /** Memory allocated for LastCache */
   private long allocateMemoryForLastCache = allocateMemoryForSchema / 10;
 
-  private String readConsistencyLevel = "strong";
-
-  /** Maximum execution time of a DriverTask */
-  private int driverTaskExecutionTimeSliceInMs = 100;
-
   /** Maximum size of wal buffer used in IoTConsensus. Unit: byte */
   private long throttleThreshold = 50 * 1024 * 1024 * 1024L;
 
@@ -1171,11 +952,11 @@ public class IoTDBConfig {
 
   /** if the folders are relative paths, add IOTDB_DATA_HOME as the path prefix */
   private void formulateFolders() {
-    systemDir = addDataHomeDir(systemDir);
+    dnSystemDir = addDataHomeDir(dnSystemDir);
     schemaDir = addDataHomeDir(schemaDir);
     loadTsFileDir = addDataHomeDir(loadTsFileDir);
-    tracingDir = addDataHomeDir(tracingDir);
-    consensusDir = addDataHomeDir(consensusDir);
+    dnTracingDir = addDataHomeDir(dnTracingDir);
+    dnConsensusDir = addDataHomeDir(dnConsensusDir);
     dataRegionConsensusDir = addDataHomeDir(dataRegionConsensusDir);
     ratisDataRegionSnapshotDir = addDataHomeDir(ratisDataRegionSnapshotDir);
     schemaRegionConsensusDir = addDataHomeDir(schemaRegionConsensusDir);
@@ -1192,13 +973,13 @@ public class IoTDBConfig {
     if (TSFileDescriptor.getInstance().getConfig().getTSFileStorageFs().equals(FSType.HDFS)) {
       String hdfsDir = getHdfsDir();
       queryDir = hdfsDir + File.separatorChar + queryDir;
-      for (int i = 0; i < dataDirs.length; i++) {
-        dataDirs[i] = hdfsDir + File.separatorChar + dataDirs[i];
+      for (int i = 0; i < dnDataDirs.length; i++) {
+        dnDataDirs[i] = hdfsDir + File.separatorChar + dnDataDirs[i];
       }
     } else {
       queryDir = addDataHomeDir(queryDir);
-      for (int i = 0; i < dataDirs.length; i++) {
-        dataDirs[i] = addDataHomeDir(dataDirs[i]);
+      for (int i = 0; i < dnDataDirs.length; i++) {
+        dnDataDirs[i] = addDataHomeDir(dnDataDirs[i]);
       }
     }
   }
@@ -1217,7 +998,7 @@ public class IoTDBConfig {
     }
     // make sure old data directories not removed
     HashSet<String> newDirs = new HashSet<>(Arrays.asList(dataDirs));
-    for (String oldDir : this.dataDirs) {
+    for (String oldDir : this.dnDataDirs) {
       if (!newDirs.contains(oldDir)) {
         String msg =
             String.format("%s is removed from data_dirs parameter, please add it back.", oldDir);
@@ -1225,7 +1006,7 @@ public class IoTDBConfig {
         throw new LoadConfigurationException(msg);
       }
     }
-    this.dataDirs = dataDirs;
+    this.dnDataDirs = dataDirs;
     DirectoryManager.getInstance().updateFileFolders();
   }
 
@@ -1255,21 +1036,21 @@ public class IoTDBConfig {
   }
 
   void confirmMultiDirStrategy() {
-    if (getMultiDirStrategyClassName() == null) {
-      multiDirStrategyClassName = DEFAULT_MULTI_DIR_STRATEGY;
+    if (getDnMultiDirStrategyClassName() == null) {
+      dnMultiDirStrategyClassName = DEFAULT_MULTI_DIR_STRATEGY;
     }
-    if (!getMultiDirStrategyClassName().contains(TsFileConstant.PATH_SEPARATOR)) {
-      multiDirStrategyClassName = MULTI_DIR_STRATEGY_PREFIX + multiDirStrategyClassName;
+    if (!getDnMultiDirStrategyClassName().contains(TsFileConstant.PATH_SEPARATOR)) {
+      dnMultiDirStrategyClassName = MULTI_DIR_STRATEGY_PREFIX + dnMultiDirStrategyClassName;
     }
 
     try {
-      Class.forName(multiDirStrategyClassName);
+      Class.forName(dnMultiDirStrategyClassName);
     } catch (ClassNotFoundException e) {
       logger.warn(
           "Cannot find given directory strategy {}, using the default value",
-          getMultiDirStrategyClassName(),
+          getDnMultiDirStrategyClassName(),
           e);
-      setMultiDirStrategyClassName(MULTI_DIR_STRATEGY_PREFIX + DEFAULT_MULTI_DIR_STRATEGY);
+      setDnMultiDirStrategyClassName(MULTI_DIR_STRATEGY_PREFIX + DEFAULT_MULTI_DIR_STRATEGY);
     }
   }
 
@@ -1284,32 +1065,32 @@ public class IoTDBConfig {
     return hdfsDir;
   }
 
-  public String[] getDataDirs() {
-    return dataDirs;
+  public String[] getDnDataDirs() {
+    return dnDataDirs;
   }
 
-  public void setDataDirs(String[] dataDirs) {
-    this.dataDirs = dataDirs;
+  public void setDnDataDirs(String[] dnDataDirs) {
+    this.dnDataDirs = dnDataDirs;
     // TODO(szywilliam): rewrite the logic here when ratis supports complete snapshot semantic
     setRatisDataRegionSnapshotDir(
-        dataDirs[0] + File.separator + IoTDBConstant.SNAPSHOT_FOLDER_NAME);
-    setLoadTsFileDir(dataDirs[0] + File.separator + IoTDBConstant.LOAD_TSFILE_FOLDER_NAME);
+        dnDataDirs[0] + File.separator + IoTDBConstant.SNAPSHOT_FOLDER_NAME);
+    setLoadTsFileDir(dnDataDirs[0] + File.separator + IoTDBConstant.LOAD_TSFILE_FOLDER_NAME);
   }
 
-  public String getRpcAddress() {
-    return rpcAddress;
+  public String getDnRpcAddress() {
+    return dnRpcAddress;
   }
 
-  public void setRpcAddress(String rpcAddress) {
-    this.rpcAddress = rpcAddress;
+  public void setDnRpcAddress(String dnRpcAddress) {
+    this.dnRpcAddress = dnRpcAddress;
   }
 
-  public int getRpcPort() {
-    return rpcPort;
+  public int getDnRpcPort() {
+    return dnRpcPort;
   }
 
-  public void setRpcPort(int rpcPort) {
-    this.rpcPort = rpcPort;
+  public void setDnRpcPort(int dnRpcPort) {
+    this.dnRpcPort = dnRpcPort;
   }
 
   public int getInfluxDBRpcPort() {
@@ -1320,36 +1101,12 @@ public class IoTDBConfig {
     this.influxDBRpcPort = influxDBRpcPort;
   }
 
-  public String getTimestampPrecision() {
-    return timestampPrecision;
-  }
-
-  public void setTimestampPrecision(String timestampPrecision) {
-    if (!("ms".equals(timestampPrecision)
-        || "us".equals(timestampPrecision)
-        || "ns".equals(timestampPrecision))) {
-      logger.error(
-          "Wrong timestamp precision, please set as: ms, us or ns ! Current is: {}",
-          timestampPrecision);
-      System.exit(-1);
-    }
-    this.timestampPrecision = timestampPrecision;
-  }
-
-  public boolean isEnableDiscardOutOfOrderData() {
-    return enableDiscardOutOfOrderData;
-  }
-
-  public void setEnableDiscardOutOfOrderData(boolean enableDiscardOutOfOrderData) {
-    this.enableDiscardOutOfOrderData = enableDiscardOutOfOrderData;
+  public String getDnSystemDir() {
+    return dnSystemDir;
   }
 
-  public String getSystemDir() {
-    return systemDir;
-  }
-
-  void setSystemDir(String systemDir) {
-    this.systemDir = systemDir;
+  void setDnSystemDir(String dnSystemDir) {
+    this.dnSystemDir = dnSystemDir;
   }
 
   public String getLoadTsFileDir() {
@@ -1368,12 +1125,12 @@ public class IoTDBConfig {
     this.schemaDir = schemaDir;
   }
 
-  public String getTracingDir() {
-    return tracingDir;
+  public String getDnTracingDir() {
+    return dnTracingDir;
   }
 
-  void setTracingDir(String tracingDir) {
-    this.tracingDir = tracingDir;
+  void setDnTracingDir(String dnTracingDir) {
+    this.dnTracingDir = dnTracingDir;
   }
 
   public String getQueryDir() {
@@ -1392,14 +1149,14 @@ public class IoTDBConfig {
     this.ratisDataRegionSnapshotDir = ratisDataRegionSnapshotDir;
   }
 
-  public String getConsensusDir() {
-    return consensusDir;
+  public String getDnConsensusDir() {
+    return dnConsensusDir;
   }
 
-  public void setConsensusDir(String consensusDir) {
-    this.consensusDir = consensusDir;
-    setDataRegionConsensusDir(consensusDir + File.separator + "data_region");
-    setSchemaRegionConsensusDir(consensusDir + File.separator + "schema_region");
+  public void setDnConsensusDir(String dnConsensusDir) {
+    this.dnConsensusDir = dnConsensusDir;
+    setDataRegionConsensusDir(dnConsensusDir + File.separator + "data_region");
+    setSchemaRegionConsensusDir(dnConsensusDir + File.separator + "schema_region");
   }
 
   public String getDataRegionConsensusDir() {
@@ -1468,23 +1225,23 @@ public class IoTDBConfig {
     this.mqttDir = mqttDir;
   }
 
-  public String getMultiDirStrategyClassName() {
-    return multiDirStrategyClassName;
+  public String getDnMultiDirStrategyClassName() {
+    return dnMultiDirStrategyClassName;
   }
 
-  void setMultiDirStrategyClassName(String multiDirStrategyClassName) {
-    this.multiDirStrategyClassName = multiDirStrategyClassName;
+  void setDnMultiDirStrategyClassName(String dnMultiDirStrategyClassName) {
+    this.dnMultiDirStrategyClassName = dnMultiDirStrategyClassName;
   }
 
   public void checkMultiDirStrategyClassName() {
     if (isClusterMode
-        && !(multiDirStrategyClassName.equals(DEFAULT_MULTI_DIR_STRATEGY)
-            || multiDirStrategyClassName.equals(
+        && !(dnMultiDirStrategyClassName.equals(DEFAULT_MULTI_DIR_STRATEGY)
+            || dnMultiDirStrategyClassName.equals(
                 MULTI_DIR_STRATEGY_PREFIX + DEFAULT_MULTI_DIR_STRATEGY))) {
       String msg =
           String.format(
               "Cannot set multi_dir_strategy to %s, because cluster mode only allows MaxDiskUsableSpaceFirstStrategy.",
-              multiDirStrategyClassName);
+              dnMultiDirStrategyClassName);
       logger.error(msg);
       throw new RuntimeException(msg);
     }
@@ -2138,14 +1895,6 @@ public class IoTDBConfig {
     this.enableQueryMemoryEstimation = enableQueryMemoryEstimation;
   }
 
-  public boolean isLastCacheEnabled() {
-    return lastCacheEnable;
-  }
-
-  public void setEnableLastCache(boolean lastCacheEnable) {
-    this.lastCacheEnable = lastCacheEnable;
-  }
-
   public boolean isEnableWatermark() {
     return enableWatermark;
   }
@@ -2208,141 +1957,6 @@ public class IoTDBConfig {
     return null;
   }
 
-  public boolean isAutoCreateSchemaEnabled() {
-    return enableAutoCreateSchema;
-  }
-
-  public void setAutoCreateSchemaEnabled(boolean enableAutoCreateSchema) {
-    this.enableAutoCreateSchema = enableAutoCreateSchema;
-  }
-
-  public TSDataType getBooleanStringInferType() {
-    return booleanStringInferType;
-  }
-
-  public void setBooleanStringInferType(TSDataType booleanStringInferType) {
-    this.booleanStringInferType = booleanStringInferType;
-  }
-
-  public TSDataType getIntegerStringInferType() {
-    return integerStringInferType;
-  }
-
-  public void setIntegerStringInferType(TSDataType integerStringInferType) {
-    this.integerStringInferType = integerStringInferType;
-  }
-
-  public void setLongStringInferType(TSDataType longStringInferType) {
-    this.longStringInferType = longStringInferType;
-  }
-
-  public TSDataType getLongStringInferType() {
-    return longStringInferType;
-  }
-
-  public TSDataType getFloatingStringInferType() {
-    return floatingStringInferType;
-  }
-
-  public void setFloatingStringInferType(TSDataType floatingNumberStringInferType) {
-    this.floatingStringInferType = floatingNumberStringInferType;
-  }
-
-  public TSDataType getNanStringInferType() {
-    return nanStringInferType;
-  }
-
-  public void setNanStringInferType(TSDataType nanStringInferType) {
-    if (nanStringInferType != TSDataType.DOUBLE
-        && nanStringInferType != TSDataType.FLOAT
-        && nanStringInferType != TSDataType.TEXT) {
-      throw new IllegalArgumentException(
-          "Config Property nan_string_infer_type can only be FLOAT, DOUBLE or TEXT but is "
-              + nanStringInferType);
-    }
-    this.nanStringInferType = nanStringInferType;
-  }
-
-  public int getDefaultStorageGroupLevel() {
-    return defaultStorageGroupLevel;
-  }
-
-  void setDefaultStorageGroupLevel(int defaultStorageGroupLevel) {
-    this.defaultStorageGroupLevel = defaultStorageGroupLevel;
-  }
-
-  public TSEncoding getDefaultBooleanEncoding() {
-    return defaultBooleanEncoding;
-  }
-
-  public void setDefaultBooleanEncoding(TSEncoding defaultBooleanEncoding) {
-    this.defaultBooleanEncoding = defaultBooleanEncoding;
-  }
-
-  void setDefaultBooleanEncoding(String defaultBooleanEncoding) {
-    this.defaultBooleanEncoding = TSEncoding.valueOf(defaultBooleanEncoding);
-  }
-
-  public TSEncoding getDefaultInt32Encoding() {
-    return defaultInt32Encoding;
-  }
-
-  public void setDefaultInt32Encoding(TSEncoding defaultInt32Encoding) {
-    this.defaultInt32Encoding = defaultInt32Encoding;
-  }
-
-  void setDefaultInt32Encoding(String defaultInt32Encoding) {
-    this.defaultInt32Encoding = TSEncoding.valueOf(defaultInt32Encoding);
-  }
-
-  public TSEncoding getDefaultInt64Encoding() {
-    return defaultInt64Encoding;
-  }
-
-  public void setDefaultInt64Encoding(TSEncoding defaultInt64Encoding) {
-    this.defaultInt64Encoding = defaultInt64Encoding;
-  }
-
-  void setDefaultInt64Encoding(String defaultInt64Encoding) {
-    this.defaultInt64Encoding = TSEncoding.valueOf(defaultInt64Encoding);
-  }
-
-  public TSEncoding getDefaultFloatEncoding() {
-    return defaultFloatEncoding;
-  }
-
-  public void setDefaultFloatEncoding(TSEncoding defaultFloatEncoding) {
-    this.defaultFloatEncoding = defaultFloatEncoding;
-  }
-
-  void setDefaultFloatEncoding(String defaultFloatEncoding) {
-    this.defaultFloatEncoding = TSEncoding.valueOf(defaultFloatEncoding);
-  }
-
-  public TSEncoding getDefaultDoubleEncoding() {
-    return defaultDoubleEncoding;
-  }
-
-  public void setDefaultDoubleEncoding(TSEncoding defaultDoubleEncoding) {
-    this.defaultDoubleEncoding = defaultDoubleEncoding;
-  }
-
-  void setDefaultDoubleEncoding(String defaultDoubleEncoding) {
-    this.defaultDoubleEncoding = TSEncoding.valueOf(defaultDoubleEncoding);
-  }
-
-  public TSEncoding getDefaultTextEncoding() {
-    return defaultTextEncoding;
-  }
-
-  public void setDefaultTextEncoding(TSEncoding defaultTextEncoding) {
-    this.defaultTextEncoding = defaultTextEncoding;
-  }
-
-  void setDefaultTextEncoding(String defaultTextEncoding) {
-    this.defaultTextEncoding = TSEncoding.valueOf(defaultTextEncoding);
-  }
-
   FSType getTsFileStorageFs() {
     return tsFileStorageFs;
   }
@@ -2552,13 +2166,13 @@ public class IoTDBConfig {
     RpcTransportFactory.setThriftMaxFrameSize(this.dnThriftMaxFrameSize);
   }
 
-  public int getDnThriftDefaultBufferSize() {
-    return dnThriftDefaultBufferSize;
+  public int getDnThriftInitBufferSize() {
+    return dnThriftInitBufferSize;
   }
 
-  public void setDnThriftDefaultBufferSize(int dnThriftDefaultBufferSize) {
-    this.dnThriftDefaultBufferSize = dnThriftDefaultBufferSize;
-    RpcTransportFactory.setDefaultBufferCapacity(this.dnThriftDefaultBufferSize);
+  public void setDnThriftInitBufferSize(int dnThriftInitBufferSize) {
+    this.dnThriftInitBufferSize = dnThriftInitBufferSize;
+    RpcTransportFactory.setDefaultBufferCapacity(this.dnThriftInitBufferSize);
   }
 
   public int getMaxQueryDeduplicatedPathNum() {
@@ -2958,52 +2572,52 @@ public class IoTDBConfig {
     this.maxMeasurementNumOfInternalRequest = maxMeasurementNumOfInternalRequest;
   }
 
-  public String getInternalAddress() {
-    return internalAddress;
+  public String getDnInternalAddress() {
+    return dnInternalAddress;
   }
 
-  public void setInternalAddress(String internalAddress) {
-    this.internalAddress = internalAddress;
+  public void setDnInternalAddress(String dnInternalAddress) {
+    this.dnInternalAddress = dnInternalAddress;
   }
 
-  public int getInternalPort() {
-    return internalPort;
+  public int getDnInternalPort() {
+    return dnInternalPort;
   }
 
-  public void setInternalPort(int internalPort) {
-    this.internalPort = internalPort;
+  public void setDnInternalPort(int dnInternalPort) {
+    this.dnInternalPort = dnInternalPort;
   }
 
-  public int getDataRegionConsensusPort() {
-    return dataRegionConsensusPort;
+  public int getDnDataRegionConsensusPort() {
+    return dnDataRegionConsensusPort;
   }
 
-  public void setDataRegionConsensusPort(int dataRegionConsensusPort) {
-    this.dataRegionConsensusPort = dataRegionConsensusPort;
+  public void setDnDataRegionConsensusPort(int dnDataRegionConsensusPort) {
+    this.dnDataRegionConsensusPort = dnDataRegionConsensusPort;
   }
 
-  public int getSchemaRegionConsensusPort() {
-    return schemaRegionConsensusPort;
+  public int getDnSchemaRegionConsensusPort() {
+    return dnSchemaRegionConsensusPort;
   }
 
-  public void setSchemaRegionConsensusPort(int schemaRegionConsensusPort) {
-    this.schemaRegionConsensusPort = schemaRegionConsensusPort;
+  public void setDnSchemaRegionConsensusPort(int dnSchemaRegionConsensusPort) {
+    this.dnSchemaRegionConsensusPort = dnSchemaRegionConsensusPort;
   }
 
-  public List<TEndPoint> getTargetConfigNodeList() {
-    return targetConfigNodeList;
+  public List<TEndPoint> getDnTargetConfigNodeList() {
+    return dnTargetConfigNodeList;
   }
 
-  public void setTargetConfigNodeList(List<TEndPoint> targetConfigNodeList) {
-    this.targetConfigNodeList = targetConfigNodeList;
+  public void setDnTargetConfigNodeList(List<TEndPoint> dnTargetConfigNodeList) {
+    this.dnTargetConfigNodeList = dnTargetConfigNodeList;
   }
 
-  public long getJoinClusterRetryIntervalMs() {
-    return joinClusterRetryIntervalMs;
+  public long getDnJoinClusterRetryIntervalMs() {
+    return dnJoinClusterRetryIntervalMs;
   }
 
-  public void setJoinClusterRetryIntervalMs(long joinClusterRetryIntervalMs) {
-    this.joinClusterRetryIntervalMs = joinClusterRetryIntervalMs;
+  public void setDnJoinClusterRetryIntervalMs(long dnJoinClusterRetryIntervalMs) {
+    this.dnJoinClusterRetryIntervalMs = dnJoinClusterRetryIntervalMs;
   }
 
   public String getDataRegionConsensusProtocolClass() {
@@ -3038,12 +2652,12 @@ public class IoTDBConfig {
     this.seriesPartitionSlotNum = seriesPartitionSlotNum;
   }
 
-  public int getMppDataExchangePort() {
-    return mppDataExchangePort;
+  public int getDnMppDataExchangePort() {
+    return dnMppDataExchangePort;
   }
 
-  public void setMppDataExchangePort(int mppDataExchangePort) {
-    this.mppDataExchangePort = mppDataExchangePort;
+  public void setDnMppDataExchangePort(int dnMppDataExchangePort) {
+    this.dnMppDataExchangePort = dnMppDataExchangePort;
   }
 
   public int getMppDataExchangeCorePoolSize() {
@@ -3078,20 +2692,22 @@ public class IoTDBConfig {
     this.dnConnectionTimeoutInMS = dnConnectionTimeoutInMS;
   }
 
-  public int getDnMaxConnectionForInternalService() {
-    return dnMaxConnectionForInternalService;
+  public int getDnMaxClientCountForEachNodeInClientManager() {
+    return dnMaxClientCountForEachNodeInClientManager;
   }
 
-  public void setDnMaxConnectionForInternalService(int dnMaxConnectionForInternalService) {
-    this.dnMaxConnectionForInternalService = dnMaxConnectionForInternalService;
+  public void setDnMaxClientCountForEachNodeInClientManager(
+      int dnMaxClientCountForEachNodeInClientManager) {
+    this.dnMaxClientCountForEachNodeInClientManager = dnMaxClientCountForEachNodeInClientManager;
   }
 
-  public int getDnCoreConnectionForInternalService() {
-    return dnCoreConnectionForInternalService;
+  public int getDnCoreClientCountForEachNodeInClientManager() {
+    return dnCoreClientCountForEachNodeInClientManager;
   }
 
-  public void setDnCoreConnectionForInternalService(int dnCoreConnectionForInternalService) {
-    this.dnCoreConnectionForInternalService = dnCoreConnectionForInternalService;
+  public void setDnCoreClientCountForEachNodeInClientManager(
+      int dnCoreClientCountForEachNodeInClientManager) {
+    this.dnCoreClientCountForEachNodeInClientManager = dnCoreClientCountForEachNodeInClientManager;
   }
 
   public int getDnSelectorThreadCountOfClientManager() {
@@ -3232,7 +2848,7 @@ public class IoTDBConfig {
   }
 
   public TEndPoint getAddressAndPort() {
-    return new TEndPoint(rpcAddress, rpcPort);
+    return new TEndPoint(dnRpcAddress, dnRpcPort);
   }
 
   boolean isDefaultSchemaMemoryConfig() {
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 ff07d75747..07ff22c5d3 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
@@ -40,7 +40,6 @@ import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.rescon.SystemInfo;
 import org.apache.iotdb.db.service.metrics.IoTDBInternalLocalReporter;
 import org.apache.iotdb.db.utils.DateTimeUtils;
-import org.apache.iotdb.db.utils.datastructure.TVListSortAlgorithm;
 import org.apache.iotdb.db.wal.WALManager;
 import org.apache.iotdb.db.wal.utils.WALMode;
 import org.apache.iotdb.external.api.IPropertiesLoader;
@@ -74,7 +73,7 @@ public class IoTDBDescriptor {
 
   private final CommonDescriptor commonDescriptor = CommonDescriptor.getInstance();
 
-  private final IoTDBConfig conf = new IoTDBConfig();
+  private final IoTDBConfig CONF = new IoTDBConfig();
 
   protected IoTDBDescriptor() {
     loadProps();
@@ -84,7 +83,7 @@ public class IoTDBDescriptor {
       logger.info("Will reload properties from {} ", loader.getClass().getName());
       Properties properties = loader.loadProperties();
       loadProperties(properties);
-      conf.setCustomizedProperties(loader.getCustomizedProperties());
+      CONF.setCustomizedProperties(loader.getCustomizedProperties());
       TSFileDescriptor.getInstance().overwriteConfigByCustomSettings(properties);
       TSFileDescriptor.getInstance()
           .getConfig()
@@ -97,7 +96,7 @@ public class IoTDBDescriptor {
   }
 
   public IoTDBConfig getConfig() {
-    return conf;
+    return CONF;
   }
 
   /**
@@ -124,7 +123,7 @@ public class IoTDBDescriptor {
                 + "config file {}, use default configuration",
             configFileName);
         // update all data seriesPath
-        conf.updatePath();
+        CONF.updatePath();
         return null;
       }
     }
@@ -183,12 +182,12 @@ public class IoTDBDescriptor {
         logger.warn("Incorrect format in config file, use default configuration", e);
       } finally {
         // update all data seriesPath
-        conf.updatePath();
+        CONF.updatePath();
         commonDescriptor.getConfig().updatePath(System.getProperty(IoTDBConstant.IOTDB_HOME, null));
         MetricConfigDescriptor.getInstance().loadProps(commonProperties);
         MetricConfigDescriptor.getInstance()
             .getMetricConfig()
-            .updateRpcInstance(conf.getInternalAddress(), conf.getInternalPort());
+            .updateRpcInstance(CONF.getDnInternalAddress(), CONF.getDnInternalPort());
       }
     } else {
       logger.warn(
@@ -199,115 +198,112 @@ public class IoTDBDescriptor {
 
   public void loadProperties(Properties properties) {
 
-    conf.setClusterName(
-        properties.getProperty(IoTDBConstant.CLUSTER_NAME, conf.getClusterName()).trim());
+    CONF.setClusterName(
+        properties.getProperty(IoTDBConstant.CLUSTER_NAME, CONF.getClusterName()).trim());
 
-    conf.setRpcAddress(
-        properties.getProperty(IoTDBConstant.DN_RPC_ADDRESS, conf.getRpcAddress()).trim());
+    CONF.setDnRpcAddress(
+        properties.getProperty(IoTDBConstant.DN_RPC_ADDRESS, CONF.getDnRpcAddress()).trim());
 
-    conf.setDnRpcThriftCompressionEnable(
+    CONF.setDnRpcThriftCompressionEnable(
         Boolean.parseBoolean(
             properties
                 .getProperty(
                     "dn_rpc_thrift_compression_enable",
-                    Boolean.toString(conf.isDnRpcThriftCompressionEnable()))
+                    Boolean.toString(CONF.isDnRpcThriftCompressionEnable()))
                 .trim()));
 
-    conf.setDnRpcAdvancedCompressionEnable(
+    CONF.setDnRpcAdvancedCompressionEnable(
         Boolean.parseBoolean(
             properties
                 .getProperty(
                     "dn_rpc_advanced_compression_enable",
-                    Boolean.toString(conf.isDnRpcAdvancedCompressionEnable()))
+                    Boolean.toString(CONF.isDnRpcAdvancedCompressionEnable()))
                 .trim()));
 
-    conf.setDnConnectionTimeoutInMS(
+    CONF.setDnConnectionTimeoutInMS(
         Integer.parseInt(
             properties
                 .getProperty(
-                    "dn_connection_timeout_ms", String.valueOf(conf.getDnConnectionTimeoutInMS()))
+                    "dn_connection_timeout_ms", String.valueOf(CONF.getDnConnectionTimeoutInMS()))
                 .trim()));
 
-    conf.setCoreClientNumForEachNode(
+    CONF.setCoreClientNumForEachNode(
         Integer.parseInt(
             properties
                 .getProperty(
                     "dn_core_client_count_for_each_node_in_client_manager",
-                    String.valueOf(conf.getCoreClientNumForEachNode()))
+                    String.valueOf(CONF.getCoreClientNumForEachNode()))
                 .trim()));
 
-    conf.setMaxClientNumForEachNode(
+    CONF.setMaxClientNumForEachNode(
         Integer.parseInt(
             properties
                 .getProperty(
                     "dn_max_client_count_for_each_node_in_client_manager",
-                    String.valueOf(conf.getMaxClientNumForEachNode()))
+                    String.valueOf(CONF.getMaxClientNumForEachNode()))
                 .trim()));
 
-    conf.setDnSelectorThreadCountOfClientManager(
+    CONF.setDnSelectorThreadCountOfClientManager(
         Integer.parseInt(
             properties
                 .getProperty(
                     "dn_selector_thread_count_of_client_manager",
-                    String.valueOf(conf.getDnSelectorThreadCountOfClientManager()))
+                    String.valueOf(CONF.getDnSelectorThreadCountOfClientManager()))
                 .trim()));
 
-    conf.setRpcPort(
+    CONF.setDnRpcPort(
         Integer.parseInt(
             properties
-                .getProperty(IoTDBConstant.DN_RPC_PORT, Integer.toString(conf.getRpcPort()))
+                .getProperty(IoTDBConstant.DN_RPC_PORT, Integer.toString(CONF.getDnRpcPort()))
                 .trim()));
 
-    conf.setEnableInfluxDBRpcService(
+    CONF.setEnableInfluxDBRpcService(
         Boolean.parseBoolean(
             properties
                 .getProperty(
                     "enable_influxdb_rpc_service",
-                    Boolean.toString(conf.isEnableInfluxDBRpcService()))
+                    Boolean.toString(CONF.isEnableInfluxDBRpcService()))
                 .trim()));
 
-    conf.setInfluxDBRpcPort(
+    CONF.setInfluxDBRpcPort(
         Integer.parseInt(
             properties
-                .getProperty("influxdb_rpc_port", Integer.toString(conf.getInfluxDBRpcPort()))
+                .getProperty("influxdb_rpc_port", Integer.toString(CONF.getInfluxDBRpcPort()))
                 .trim()));
 
-    conf.setTimestampPrecision(
-        properties.getProperty("timestamp_precision", conf.getTimestampPrecision()).trim());
-
-    conf.setBufferedArraysMemoryProportion(
+    CONF.setBufferedArraysMemoryProportion(
         Double.parseDouble(
             properties
                 .getProperty(
                     "buffered_arrays_memory_proportion",
-                    Double.toString(conf.getBufferedArraysMemoryProportion()))
+                    Double.toString(CONF.getBufferedArraysMemoryProportion()))
                 .trim()));
 
-    conf.setFlushProportion(
+    CONF.setFlushProportion(
         Double.parseDouble(
             properties
-                .getProperty("flush_proportion", Double.toString(conf.getFlushProportion()))
+                .getProperty("flush_proportion", Double.toString(CONF.getFlushProportion()))
                 .trim()));
 
-    conf.setRejectProportion(
+    CONF.setRejectProportion(
         Double.parseDouble(
             properties
-                .getProperty("reject_proportion", Double.toString(conf.getRejectProportion()))
+                .getProperty("reject_proportion", Double.toString(CONF.getRejectProportion()))
                 .trim()));
 
-    conf.setWriteMemoryVariationReportProportion(
+    CONF.setWriteMemoryVariationReportProportion(
         Double.parseDouble(
             properties
                 .getProperty(
                     "write_memory_variation_report_proportion",
-                    Double.toString(conf.getWriteMemoryVariationReportProportion()))
+                    Double.toString(CONF.getWriteMemoryVariationReportProportion()))
                 .trim()));
 
-    conf.setMetaDataCacheEnable(
+    CONF.setMetaDataCacheEnable(
         Boolean.parseBoolean(
             properties
                 .getProperty(
-                    "meta_data_cache_enable", Boolean.toString(conf.isMetaDataCacheEnable()))
+                    "meta_data_cache_enable", Boolean.toString(CONF.isMetaDataCacheEnable()))
                 .trim()));
 
     initMemoryAllocate(properties);
@@ -320,656 +316,563 @@ public class IoTDBDescriptor {
       if (systemDir != null) {
         systemDir = FilePathUtils.regularizePath(systemDir) + IoTDBConstant.SYSTEM_FOLDER_NAME;
       } else {
-        systemDir = conf.getSystemDir();
+        systemDir = CONF.getDnSystemDir();
       }
     }
-    conf.setSystemDir(systemDir);
-
-    conf.setSchemaDir(
-        FilePathUtils.regularizePath(conf.getSystemDir()) + IoTDBConstant.SCHEMA_FOLDER_NAME);
+    CONF.setDnSystemDir(systemDir);
 
-    conf.setQueryDir(
-        FilePathUtils.regularizePath(conf.getSystemDir() + IoTDBConstant.QUERY_FOLDER_NAME));
+    CONF.setSchemaDir(
+        FilePathUtils.regularizePath(CONF.getDnSystemDir()) + IoTDBConstant.SCHEMA_FOLDER_NAME);
 
-    conf.setTracingDir(properties.getProperty("dn_tracing_dir", conf.getTracingDir()));
+    CONF.setQueryDir(
+        FilePathUtils.regularizePath(CONF.getDnSystemDir() + IoTDBConstant.QUERY_FOLDER_NAME));
 
-    conf.setDataDirs(properties.getProperty("dn_data_dirs", conf.getDataDirs()[0]).split(","));
+    CONF.setDnTracingDir(properties.getProperty("dn_tracing_dir", CONF.getDnTracingDir()));
 
-    conf.setConsensusDir(properties.getProperty("dn_consensus_dir", conf.getConsensusDir()));
+    CONF.setDnDataDirs(properties.getProperty("dn_data_dirs", CONF.getDnDataDirs()[0]).split(","));
 
-    int mlogBufferSize =
-        Integer.parseInt(
-            properties.getProperty("mlog_buffer_size", Integer.toString(conf.getMlogBufferSize())));
-    if (mlogBufferSize > 0) {
-      conf.setMlogBufferSize(mlogBufferSize);
-    }
+    CONF.setDnConsensusDir(properties.getProperty("dn_consensus_dir", CONF.getDnConsensusDir()));
 
-    long forceMlogPeriodInMs =
-        Long.parseLong(
-            properties.getProperty(
-                "sync_mlog_period_in_ms", Long.toString(conf.getSyncMlogPeriodInMs())));
-    if (forceMlogPeriodInMs > 0) {
-      conf.setSyncMlogPeriodInMs(forceMlogPeriodInMs);
-    }
-
-    String oldMultiDirStrategyClassName = conf.getMultiDirStrategyClassName();
-    conf.setMultiDirStrategyClassName(
-        properties.getProperty("dn_multi_dir_strategy", conf.getMultiDirStrategyClassName()));
+    String oldMultiDirStrategyClassName = CONF.getDnMultiDirStrategyClassName();
+    CONF.setDnMultiDirStrategyClassName(
+        properties.getProperty("dn_multi_dir_strategy", CONF.getDnMultiDirStrategyClassName()));
     try {
-      conf.checkMultiDirStrategyClassName();
+      CONF.checkMultiDirStrategyClassName();
     } catch (Exception e) {
-      conf.setMultiDirStrategyClassName(oldMultiDirStrategyClassName);
+      CONF.setDnMultiDirStrategyClassName(oldMultiDirStrategyClassName);
       throw e;
     }
 
-    conf.setBatchSize(
+    CONF.setBatchSize(
         Integer.parseInt(
-            properties.getProperty("batch_size", Integer.toString(conf.getBatchSize()))));
+            properties.getProperty("batch_size", Integer.toString(CONF.getBatchSize()))));
 
-    conf.setEnableMemControl(
+    CONF.setEnableMemControl(
         (Boolean.parseBoolean(
             properties.getProperty(
-                "enable_mem_control", Boolean.toString(conf.isEnableMemControl())))));
-    logger.info("IoTDB enable memory control: {}", conf.isEnableMemControl());
+                "enable_mem_control", Boolean.toString(CONF.isEnableMemControl())))));
+    logger.info("IoTDB enable memory control: {}", CONF.isEnableMemControl());
 
     long memTableSizeThreshold =
         Long.parseLong(
             properties
                 .getProperty(
-                    "memtable_size_threshold", Long.toString(conf.getMemtableSizeThreshold()))
+                    "memtable_size_threshold", Long.toString(CONF.getMemtableSizeThreshold()))
                 .trim());
     if (memTableSizeThreshold > 0) {
-      conf.setMemtableSizeThreshold(memTableSizeThreshold);
+      CONF.setMemtableSizeThreshold(memTableSizeThreshold);
     }
 
-    conf.setTvListSortAlgorithm(
-        TVListSortAlgorithm.valueOf(
-            properties.getProperty(
-                "tvlist_sort_algorithm", conf.getTvListSortAlgorithm().toString())));
-
-    conf.setAvgSeriesPointNumberThreshold(
-        Integer.parseInt(
-            properties.getProperty(
-                "avg_series_point_number_threshold",
-                Integer.toString(conf.getAvgSeriesPointNumberThreshold()))));
-
-    conf.setCheckPeriodWhenInsertBlocked(
+    CONF.setCheckPeriodWhenInsertBlocked(
         Integer.parseInt(
             properties.getProperty(
                 "check_period_when_insert_blocked",
-                Integer.toString(conf.getCheckPeriodWhenInsertBlocked()))));
+                Integer.toString(CONF.getCheckPeriodWhenInsertBlocked()))));
 
-    conf.setMaxWaitingTimeWhenInsertBlocked(
-        Integer.parseInt(
-            properties.getProperty(
-                "max_waiting_time_when_insert_blocked",
-                Integer.toString(conf.getMaxWaitingTimeWhenInsertBlocked()))));
-
-    conf.setIoTaskQueueSizeForFlushing(
+    CONF.setIoTaskQueueSizeForFlushing(
         Integer.parseInt(
             properties.getProperty(
                 "io_task_queue_size_for_flushing",
-                Integer.toString(conf.getIoTaskQueueSizeForFlushing()))));
+                Integer.toString(CONF.getIoTaskQueueSizeForFlushing()))));
 
-    conf.setCompactionScheduleIntervalInMs(
+    CONF.setCompactionScheduleIntervalInMs(
         Long.parseLong(
             properties.getProperty(
                 "compaction_schedule_interval_in_ms",
-                Long.toString(conf.getCompactionScheduleIntervalInMs()))));
+                Long.toString(CONF.getCompactionScheduleIntervalInMs()))));
 
-    conf.setCompactionSubmissionIntervalInMs(
+    CONF.setCompactionSubmissionIntervalInMs(
         Long.parseLong(
             properties.getProperty(
                 "compaction_submission_interval_in_ms",
-                Long.toString(conf.getCompactionSubmissionIntervalInMs()))));
+                Long.toString(CONF.getCompactionSubmissionIntervalInMs()))));
 
-    conf.setEnableCrossSpaceCompaction(
+    CONF.setEnableCrossSpaceCompaction(
         Boolean.parseBoolean(
             properties.getProperty(
                 "enable_cross_space_compaction",
-                Boolean.toString(conf.isEnableCrossSpaceCompaction()))));
+                Boolean.toString(CONF.isEnableCrossSpaceCompaction()))));
 
-    conf.setEnableSeqSpaceCompaction(
+    CONF.setEnableSeqSpaceCompaction(
         Boolean.parseBoolean(
             properties.getProperty(
                 "enable_seq_space_compaction",
-                Boolean.toString(conf.isEnableSeqSpaceCompaction()))));
+                Boolean.toString(CONF.isEnableSeqSpaceCompaction()))));
 
-    conf.setEnableUnseqSpaceCompaction(
+    CONF.setEnableUnseqSpaceCompaction(
         Boolean.parseBoolean(
             properties.getProperty(
                 "enable_unseq_space_compaction",
-                Boolean.toString(conf.isEnableUnseqSpaceCompaction()))));
+                Boolean.toString(CONF.isEnableUnseqSpaceCompaction()))));
 
-    conf.setCrossCompactionSelector(
+    CONF.setCrossCompactionSelector(
         CrossCompactionSelector.getCrossCompactionSelector(
             properties.getProperty(
-                "cross_selector", conf.getCrossCompactionSelector().toString())));
+                "cross_selector", CONF.getCrossCompactionSelector().toString())));
 
-    conf.setInnerSequenceCompactionSelector(
+    CONF.setInnerSequenceCompactionSelector(
         InnerSequenceCompactionSelector.getInnerSequenceCompactionSelector(
             properties.getProperty(
-                "inner_seq_selector", conf.getInnerSequenceCompactionSelector().toString())));
+                "inner_seq_selector", CONF.getInnerSequenceCompactionSelector().toString())));
 
-    conf.setInnerUnsequenceCompactionSelector(
+    CONF.setInnerUnsequenceCompactionSelector(
         InnerUnsequenceCompactionSelector.getInnerUnsequenceCompactionSelector(
             properties.getProperty(
-                "inner_unseq_selector", conf.getInnerUnsequenceCompactionSelector().toString())));
+                "inner_unseq_selector", CONF.getInnerUnsequenceCompactionSelector().toString())));
 
-    conf.setInnerSeqCompactionPerformer(
+    CONF.setInnerSeqCompactionPerformer(
         InnerSeqCompactionPerformer.getInnerSeqCompactionPerformer(
             properties.getProperty(
-                "inner_seq_performer", conf.getInnerSeqCompactionPerformer().toString())));
+                "inner_seq_performer", CONF.getInnerSeqCompactionPerformer().toString())));
 
-    conf.setInnerUnseqCompactionPerformer(
+    CONF.setInnerUnseqCompactionPerformer(
         InnerUnseqCompactionPerformer.getInnerUnseqCompactionPerformer(
             properties.getProperty(
-                "inner_unseq_performer", conf.getInnerUnseqCompactionPerformer().toString())));
+                "inner_unseq_performer", CONF.getInnerUnseqCompactionPerformer().toString())));
 
-    conf.setCrossCompactionPerformer(
+    CONF.setCrossCompactionPerformer(
         CrossCompactionPerformer.getCrossCompactionPerformer(
             properties.getProperty(
-                "cross_performer", conf.getCrossCompactionPerformer().toString())));
+                "cross_performer", CONF.getCrossCompactionPerformer().toString())));
 
-    conf.setCompactionPriority(
+    CONF.setCompactionPriority(
         CompactionPriority.valueOf(
             properties.getProperty(
-                "compaction_priority", conf.getCompactionPriority().toString())));
+                "compaction_priority", CONF.getCompactionPriority().toString())));
 
     int subtaskNum =
         Integer.parseInt(
             properties.getProperty(
-                "sub_compaction_thread_count", Integer.toString(conf.getSubCompactionTaskNum())));
+                "sub_compaction_thread_count", Integer.toString(CONF.getSubCompactionTaskNum())));
     subtaskNum = subtaskNum <= 0 ? 1 : subtaskNum;
-    conf.setSubCompactionTaskNum(subtaskNum);
+    CONF.setSubCompactionTaskNum(subtaskNum);
 
-    conf.setQueryTimeoutThreshold(
+    CONF.setQueryTimeoutThreshold(
         Long.parseLong(
             properties.getProperty(
-                "query_timeout_threshold", Long.toString(conf.getQueryTimeoutThreshold()))));
+                "query_timeout_threshold", Long.toString(CONF.getQueryTimeoutThreshold()))));
 
-    conf.setDnSessionTimeoutThreshold(
+    CONF.setDnSessionTimeoutThreshold(
         Integer.parseInt(
             properties.getProperty(
                 "dn_session_timeout_threshold",
-                Integer.toString(conf.getDnSessionTimeoutThreshold()))));
-    conf.setMaxNumberOfSyncFileRetry(
+                Integer.toString(CONF.getDnSessionTimeoutThreshold()))));
+    CONF.setMaxNumberOfSyncFileRetry(
         Integer.parseInt(
             properties
                 .getProperty(
                     "max_number_of_sync_file_retry",
-                    Integer.toString(conf.getMaxNumberOfSyncFileRetry()))
+                    Integer.toString(CONF.getMaxNumberOfSyncFileRetry()))
                 .trim()));
 
-    conf.setIpWhiteList(properties.getProperty("ip_white_list", conf.getIpWhiteList()));
-
-    conf.setFlushThreadCount(
-        Integer.parseInt(
-            properties.getProperty(
-                "flush_thread_count", Integer.toString(conf.getFlushThreadCount()))));
-
-    if (conf.getFlushThreadCount() <= 0) {
-      conf.setFlushThreadCount(Runtime.getRuntime().availableProcessors());
-    }
+    CONF.setIpWhiteList(properties.getProperty("ip_white_list", CONF.getIpWhiteList()));
 
     // start: index parameter setting
-    conf.setIndexRootFolder(properties.getProperty("index_root_dir", conf.getIndexRootFolder()));
+    CONF.setIndexRootFolder(properties.getProperty("index_root_dir", CONF.getIndexRootFolder()));
 
-    conf.setEnableIndex(
+    CONF.setEnableIndex(
         Boolean.parseBoolean(
-            properties.getProperty("enable_index", Boolean.toString(conf.isEnableIndex()))));
+            properties.getProperty("enable_index", Boolean.toString(CONF.isEnableIndex()))));
 
-    conf.setConcurrentIndexBuildThread(
+    CONF.setConcurrentIndexBuildThread(
         Integer.parseInt(
             properties.getProperty(
                 "concurrent_index_build_thread",
-                Integer.toString(conf.getConcurrentIndexBuildThread()))));
-    if (conf.getConcurrentIndexBuildThread() <= 0) {
-      conf.setConcurrentIndexBuildThread(Runtime.getRuntime().availableProcessors());
+                Integer.toString(CONF.getConcurrentIndexBuildThread()))));
+    if (CONF.getConcurrentIndexBuildThread() <= 0) {
+      CONF.setConcurrentIndexBuildThread(Runtime.getRuntime().availableProcessors());
     }
 
-    conf.setDefaultIndexWindowRange(
+    CONF.setDefaultIndexWindowRange(
         Integer.parseInt(
             properties.getProperty(
                 "default_index_window_range",
-                Integer.toString(conf.getDefaultIndexWindowRange()))));
+                Integer.toString(CONF.getDefaultIndexWindowRange()))));
 
-    conf.setQueryThreadCount(
+    CONF.setQueryThreadCount(
         Integer.parseInt(
             properties.getProperty(
-                "query_thread_count", Integer.toString(conf.getQueryThreadCount()))));
+                "query_thread_count", Integer.toString(CONF.getQueryThreadCount()))));
 
-    if (conf.getQueryThreadCount() <= 0) {
-      conf.setQueryThreadCount(Runtime.getRuntime().availableProcessors());
+    if (CONF.getQueryThreadCount() <= 0) {
+      CONF.setQueryThreadCount(Runtime.getRuntime().availableProcessors());
     }
 
-    conf.setMaxAllowedConcurrentQueries(
+    CONF.setMaxAllowedConcurrentQueries(
         Integer.parseInt(
             properties.getProperty(
                 "max_allowed_concurrent_queries",
-                Integer.toString(conf.getMaxAllowedConcurrentQueries()))));
+                Integer.toString(CONF.getMaxAllowedConcurrentQueries()))));
 
-    if (conf.getMaxAllowedConcurrentQueries() <= 0) {
-      conf.setMaxAllowedConcurrentQueries(1000);
+    if (CONF.getMaxAllowedConcurrentQueries() <= 0) {
+      CONF.setMaxAllowedConcurrentQueries(1000);
     }
 
-    conf.setSubRawQueryThreadCount(
+    CONF.setSubRawQueryThreadCount(
         Integer.parseInt(
             properties.getProperty(
-                "sub_rawQuery_thread_count", Integer.toString(conf.getSubRawQueryThreadCount()))));
+                "sub_rawQuery_thread_count", Integer.toString(CONF.getSubRawQueryThreadCount()))));
 
-    if (conf.getSubRawQueryThreadCount() <= 0) {
-      conf.setSubRawQueryThreadCount(Runtime.getRuntime().availableProcessors());
+    if (CONF.getSubRawQueryThreadCount() <= 0) {
+      CONF.setSubRawQueryThreadCount(Runtime.getRuntime().availableProcessors());
     }
 
-    conf.setRawQueryBlockingQueueCapacity(
+    CONF.setRawQueryBlockingQueueCapacity(
         Integer.parseInt(
             properties.getProperty(
                 "raw_query_blocking_queue_capacity",
-                Integer.toString(conf.getRawQueryBlockingQueueCapacity()))));
+                Integer.toString(CONF.getRawQueryBlockingQueueCapacity()))));
 
-    conf.setmRemoteSchemaCacheSize(
+    CONF.setmRemoteSchemaCacheSize(
         Integer.parseInt(
             properties
                 .getProperty(
-                    "remote_schema_cache_size", Integer.toString(conf.getmRemoteSchemaCacheSize()))
+                    "remote_schema_cache_size", Integer.toString(CONF.getmRemoteSchemaCacheSize()))
                 .trim()));
 
-    conf.setLanguageVersion(
-        properties.getProperty("language_version", conf.getLanguageVersion()).trim());
+    CONF.setLanguageVersion(
+        properties.getProperty("language_version", CONF.getLanguageVersion()).trim());
 
     if (properties.containsKey("chunk_buffer_pool_enable")) {
-      conf.setChunkBufferPoolEnable(
+      CONF.setChunkBufferPoolEnable(
           Boolean.parseBoolean(properties.getProperty("chunk_buffer_pool_enable")));
     }
 
-    conf.setEnableExternalSort(
+    CONF.setEnableExternalSort(
         Boolean.parseBoolean(
             properties.getProperty(
-                "enable_external_sort", Boolean.toString(conf.isEnableExternalSort()))));
-    conf.setExternalSortThreshold(
-        Integer.parseInt(
-            properties.getProperty(
-                "external_sort_threshold", Integer.toString(conf.getExternalSortThreshold()))));
-    conf.setUpgradeThreadCount(
+                "enable_external_sort", Boolean.toString(CONF.isEnableExternalSort()))));
+    CONF.setExternalSortThreshold(
         Integer.parseInt(
             properties.getProperty(
-                "upgrade_thread_count", Integer.toString(conf.getUpgradeThreadCount()))));
-    conf.setCrossCompactionFileSelectionTimeBudget(
+                "external_sort_threshold", Integer.toString(CONF.getExternalSortThreshold()))));
+    CONF.setCrossCompactionFileSelectionTimeBudget(
         Long.parseLong(
             properties.getProperty(
                 "cross_compaction_file_selection_time_budget",
-                Long.toString(conf.getCrossCompactionFileSelectionTimeBudget()))));
-    conf.setMergeIntervalSec(
+                Long.toString(CONF.getCrossCompactionFileSelectionTimeBudget()))));
+    CONF.setMergeIntervalSec(
         Long.parseLong(
             properties.getProperty(
-                "merge_interval_sec", Long.toString(conf.getMergeIntervalSec()))));
-    conf.setCompactionThreadCount(
+                "merge_interval_sec", Long.toString(CONF.getMergeIntervalSec()))));
+    CONF.setCompactionThreadCount(
         Integer.parseInt(
             properties.getProperty(
-                "compaction_thread_count", Integer.toString(conf.getCompactionThreadCount()))));
-    conf.setChunkMetadataSizeProportion(
+                "compaction_thread_count", Integer.toString(CONF.getCompactionThreadCount()))));
+    CONF.setChunkMetadataSizeProportion(
         Double.parseDouble(
             properties.getProperty(
                 "chunk_metadata_size_proportion",
-                Double.toString(conf.getChunkMetadataSizeProportion()))));
-    conf.setTargetCompactionFileSize(
+                Double.toString(CONF.getChunkMetadataSizeProportion()))));
+    CONF.setTargetCompactionFileSize(
         Long.parseLong(
             properties.getProperty(
-                "target_compaction_file_size", Long.toString(conf.getTargetCompactionFileSize()))));
-    conf.setTargetChunkSize(
+                "target_compaction_file_size", Long.toString(CONF.getTargetCompactionFileSize()))));
+    CONF.setTargetChunkSize(
         Long.parseLong(
-            properties.getProperty("target_chunk_size", Long.toString(conf.getTargetChunkSize()))));
-    conf.setTargetChunkPointNum(
+            properties.getProperty("target_chunk_size", Long.toString(CONF.getTargetChunkSize()))));
+    CONF.setTargetChunkPointNum(
         Long.parseLong(
             properties.getProperty(
-                "target_chunk_point_num", Long.toString(conf.getTargetChunkPointNum()))));
-    conf.setChunkPointNumLowerBoundInCompaction(
+                "target_chunk_point_num", Long.toString(CONF.getTargetChunkPointNum()))));
+    CONF.setChunkPointNumLowerBoundInCompaction(
         Long.parseLong(
             properties.getProperty(
                 "chunk_point_num_lower_bound_in_compaction",
-                Long.toString(conf.getChunkPointNumLowerBoundInCompaction()))));
-    conf.setChunkSizeLowerBoundInCompaction(
+                Long.toString(CONF.getChunkPointNumLowerBoundInCompaction()))));
+    CONF.setChunkSizeLowerBoundInCompaction(
         Long.parseLong(
             properties.getProperty(
                 "chunk_size_lower_bound_in_compaction",
-                Long.toString(conf.getChunkSizeLowerBoundInCompaction()))));
-    conf.setMaxInnerCompactionCandidateFileNum(
+                Long.toString(CONF.getChunkSizeLowerBoundInCompaction()))));
+    CONF.setMaxInnerCompactionCandidateFileNum(
         Integer.parseInt(
             properties.getProperty(
                 "max_inner_compaction_candidate_file_num",
-                Integer.toString(conf.getMaxInnerCompactionCandidateFileNum()))));
-    conf.setMaxCrossCompactionCandidateFileNum(
+                Integer.toString(CONF.getMaxInnerCompactionCandidateFileNum()))));
+    CONF.setMaxCrossCompactionCandidateFileNum(
         Integer.parseInt(
             properties.getProperty(
                 "max_cross_compaction_candidate_file_num",
-                Integer.toString(conf.getMaxCrossCompactionCandidateFileNum()))));
-    conf.setMaxCrossCompactionCandidateFileSize(
+                Integer.toString(CONF.getMaxCrossCompactionCandidateFileNum()))));
+    CONF.setMaxCrossCompactionCandidateFileSize(
         Long.parseLong(
             properties.getProperty(
                 "max_cross_compaction_candidate_file_size",
-                Long.toString(conf.getMaxCrossCompactionCandidateFileSize()))));
+                Long.toString(CONF.getMaxCrossCompactionCandidateFileSize()))));
 
-    conf.setCompactionWriteThroughputMbPerSec(
+    CONF.setCompactionWriteThroughputMbPerSec(
         Integer.parseInt(
             properties.getProperty(
                 "compaction_write_throughput_mb_per_sec",
-                Integer.toString(conf.getCompactionWriteThroughputMbPerSec()))));
+                Integer.toString(CONF.getCompactionWriteThroughputMbPerSec()))));
 
-    conf.setEnableCompactionValidation(
+    CONF.setEnableCompactionValidation(
         Boolean.parseBoolean(
             properties.getProperty(
                 "enable_compaction_validation",
-                Boolean.toString(conf.isEnableCompactionValidation()))));
-
-    conf.setEnablePartialInsert(
-        Boolean.parseBoolean(
-            properties.getProperty(
-                "enable_partial_insert", String.valueOf(conf.isEnablePartialInsert()))));
+                Boolean.toString(CONF.isEnableCompactionValidation()))));
 
     int rpcSelectorThreadNum =
         Integer.parseInt(
             properties.getProperty(
                 "dn_rpc_selector_thread_count",
-                Integer.toString(conf.getDnRpcSelectorThreadCount()).trim()));
+                Integer.toString(CONF.getDnRpcSelectorThreadCount()).trim()));
     if (rpcSelectorThreadNum <= 0) {
       rpcSelectorThreadNum = 1;
     }
 
-    conf.setDnRpcSelectorThreadCount(rpcSelectorThreadNum);
+    CONF.setDnRpcSelectorThreadCount(rpcSelectorThreadNum);
 
     int minConcurrentClientNum =
         Integer.parseInt(
             properties.getProperty(
                 "dn_rpc_min_concurrent_client_num",
-                Integer.toString(conf.getDnRpcMinConcurrentClientNum()).trim()));
+                Integer.toString(CONF.getDnRpcMinConcurrentClientNum()).trim()));
     if (minConcurrentClientNum <= 0) {
       minConcurrentClientNum = Runtime.getRuntime().availableProcessors();
     }
 
-    conf.setDnRpcMinConcurrentClientNum(minConcurrentClientNum);
+    CONF.setDnRpcMinConcurrentClientNum(minConcurrentClientNum);
 
     int maxConcurrentClientNum =
         Integer.parseInt(
             properties.getProperty(
                 "dn_rpc_max_concurrent_client_num",
-                Integer.toString(conf.getDnRpcMaxConcurrentClientNum()).trim()));
+                Integer.toString(CONF.getDnRpcMaxConcurrentClientNum()).trim()));
     if (maxConcurrentClientNum <= 0) {
       maxConcurrentClientNum = 65535;
     }
 
-    conf.setDnRpcMaxConcurrentClientNum(maxConcurrentClientNum);
+    CONF.setDnRpcMaxConcurrentClientNum(maxConcurrentClientNum);
 
-    conf.setEnableWatermark(
+    CONF.setEnableWatermark(
         Boolean.parseBoolean(
             properties.getProperty(
-                "watermark_module_opened", Boolean.toString(conf.isEnableWatermark()).trim())));
-    conf.setWatermarkSecretKey(
-        properties.getProperty("watermark_secret_key", conf.getWatermarkSecretKey()));
-    conf.setWatermarkBitString(
-        properties.getProperty("watermark_bit_string", conf.getWatermarkBitString()));
-    conf.setWatermarkMethod(properties.getProperty("watermark_method", conf.getWatermarkMethod()));
+                "watermark_module_opened", Boolean.toString(CONF.isEnableWatermark()).trim())));
+    CONF.setWatermarkSecretKey(
+        properties.getProperty("watermark_secret_key", CONF.getWatermarkSecretKey()));
+    CONF.setWatermarkBitString(
+        properties.getProperty("watermark_bit_string", CONF.getWatermarkBitString()));
+    CONF.setWatermarkMethod(properties.getProperty("watermark_method", CONF.getWatermarkMethod()));
 
     loadAutoCreateSchemaProps(properties);
 
-    conf.setTsFileStorageFs(
-        properties.getProperty("tsfile_storage_fs", conf.getTsFileStorageFs().toString()));
-    conf.setCoreSitePath(properties.getProperty("core_site_path", conf.getCoreSitePath()));
-    conf.setHdfsSitePath(properties.getProperty("hdfs_site_path", conf.getHdfsSitePath()));
-    conf.setHdfsIp(properties.getProperty("hdfs_ip", conf.getRawHDFSIp()).split(","));
-    conf.setHdfsPort(properties.getProperty("hdfs_port", conf.getHdfsPort()));
-    conf.setDfsNameServices(properties.getProperty("dfs_nameservices", conf.getDfsNameServices()));
-    conf.setDfsHaNamenodes(
-        properties.getProperty("dfs_ha_namenodes", conf.getRawDfsHaNamenodes()).split(","));
-    conf.setDfsHaAutomaticFailoverEnabled(
+    CONF.setTsFileStorageFs(
+        properties.getProperty("tsfile_storage_fs", CONF.getTsFileStorageFs().toString()));
+    CONF.setCoreSitePath(properties.getProperty("core_site_path", CONF.getCoreSitePath()));
+    CONF.setHdfsSitePath(properties.getProperty("hdfs_site_path", CONF.getHdfsSitePath()));
+    CONF.setHdfsIp(properties.getProperty("hdfs_ip", CONF.getRawHDFSIp()).split(","));
+    CONF.setHdfsPort(properties.getProperty("hdfs_port", CONF.getHdfsPort()));
+    CONF.setDfsNameServices(properties.getProperty("dfs_nameservices", CONF.getDfsNameServices()));
+    CONF.setDfsHaNamenodes(
+        properties.getProperty("dfs_ha_namenodes", CONF.getRawDfsHaNamenodes()).split(","));
+    CONF.setDfsHaAutomaticFailoverEnabled(
         Boolean.parseBoolean(
             properties.getProperty(
                 "dfs_ha_automatic_failover_enabled",
-                String.valueOf(conf.isDfsHaAutomaticFailoverEnabled()))));
-    conf.setDfsClientFailoverProxyProvider(
+                String.valueOf(CONF.isDfsHaAutomaticFailoverEnabled()))));
+    CONF.setDfsClientFailoverProxyProvider(
         properties.getProperty(
-            "dfs_client_failover_proxy_provider", conf.getDfsClientFailoverProxyProvider()));
-    conf.setUseKerberos(
+            "dfs_client_failover_proxy_provider", CONF.getDfsClientFailoverProxyProvider()));
+    CONF.setUseKerberos(
         Boolean.parseBoolean(
-            properties.getProperty("hdfs_use_kerberos", String.valueOf(conf.isUseKerberos()))));
-    conf.setKerberosKeytabFilePath(
-        properties.getProperty("kerberos_keytab_file_path", conf.getKerberosKeytabFilePath()));
-    conf.setKerberosPrincipal(
-        properties.getProperty("kerberos_principal", conf.getKerberosPrincipal()));
+            properties.getProperty("hdfs_use_kerberos", String.valueOf(CONF.isUseKerberos()))));
+    CONF.setKerberosKeytabFilePath(
+        properties.getProperty("kerberos_keytab_file_path", CONF.getKerberosKeytabFilePath()));
+    CONF.setKerberosPrincipal(
+        properties.getProperty("kerberos_principal", CONF.getKerberosPrincipal()));
 
     // the num of memtables in each database
-    conf.setConcurrentWritingTimePartition(
+    CONF.setConcurrentWritingTimePartition(
         Integer.parseInt(
             properties.getProperty(
                 "concurrent_writing_time_partition",
-                String.valueOf(conf.getConcurrentWritingTimePartition()))));
+                String.valueOf(CONF.getConcurrentWritingTimePartition()))));
 
     // the default fill interval in LinearFill and PreviousFill
-    conf.setDefaultFillInterval(
+    CONF.setDefaultFillInterval(
         Integer.parseInt(
             properties.getProperty(
-                "default_fill_interval", String.valueOf(conf.getDefaultFillInterval()))));
+                "default_fill_interval", String.valueOf(CONF.getDefaultFillInterval()))));
 
-    conf.setTagAttributeTotalSize(
-        Integer.parseInt(
-            properties.getProperty(
-                "tag_attribute_total_size", String.valueOf(conf.getTagAttributeTotalSize()))));
-
-    conf.setTagAttributeFlushInterval(
-        Integer.parseInt(
-            properties.getProperty(
-                "tag_attribute_flush_interval",
-                String.valueOf(conf.getTagAttributeFlushInterval()))));
-
-    conf.setPrimitiveArraySize(
+    CONF.setPrimitiveArraySize(
         (Integer.parseInt(
             properties.getProperty(
-                "primitive_array_size", String.valueOf(conf.getPrimitiveArraySize())))));
+                "primitive_array_size", String.valueOf(CONF.getPrimitiveArraySize())))));
 
-    conf.setDnThriftMaxFrameSize(
+    CONF.setDnThriftMaxFrameSize(
         Integer.parseInt(
             properties.getProperty(
-                "dn_thrift_max_frame_size", String.valueOf(conf.getDnThriftMaxFrameSize()))));
+                "dn_thrift_max_frame_size", String.valueOf(CONF.getDnThriftMaxFrameSize()))));
 
-    if (conf.getDnThriftMaxFrameSize() < IoTDBConstant.LEFT_SIZE_IN_REQUEST * 2) {
-      conf.setDnThriftMaxFrameSize(IoTDBConstant.LEFT_SIZE_IN_REQUEST * 2);
+    if (CONF.getDnThriftMaxFrameSize() < IoTDBConstant.LEFT_SIZE_IN_REQUEST * 2) {
+      CONF.setDnThriftMaxFrameSize(IoTDBConstant.LEFT_SIZE_IN_REQUEST * 2);
     }
 
-    conf.setDnThriftDefaultBufferSize(
+    CONF.setDnThriftInitBufferSize(
         Integer.parseInt(
             properties.getProperty(
-                "dn_thrift_init_buffer_size", String.valueOf(conf.getDnThriftDefaultBufferSize()))));
+                "dn_thrift_init_buffer_size", String.valueOf(CONF.getDnThriftInitBufferSize()))));
 
-    conf.setFrequencyIntervalInMinute(
+    CONF.setFrequencyIntervalInMinute(
         Integer.parseInt(
             properties.getProperty(
                 "frequency_interval_in_minute",
-                String.valueOf(conf.getFrequencyIntervalInMinute()))));
+                String.valueOf(CONF.getFrequencyIntervalInMinute()))));
 
-    conf.setSlowQueryThreshold(
+    CONF.setSlowQueryThreshold(
         Long.parseLong(
             properties.getProperty(
-                "slow_query_threshold", String.valueOf(conf.getSlowQueryThreshold()))));
-
-    conf.setDataRegionNum(
-        Integer.parseInt(
-            properties.getProperty("data_region_num", String.valueOf(conf.getDataRegionNum()))));
-
-    conf.setRecoveryLogIntervalInMs(
-        Long.parseLong(
-            properties.getProperty(
-                "recovery_log_interval_in_ms", String.valueOf(conf.getRecoveryLogIntervalInMs()))));
-
-    conf.setEnableDiscardOutOfOrderData(
-        Boolean.parseBoolean(
-            properties.getProperty(
-                "enable_discard_out_of_order_data",
-                Boolean.toString(conf.isEnableDiscardOutOfOrderData()))));
+                "slow_query_threshold", String.valueOf(CONF.getSlowQueryThreshold()))));
 
-    conf.setWindowEvaluationThreadCount(
+    CONF.setWindowEvaluationThreadCount(
         Integer.parseInt(
             properties.getProperty(
                 "window_evaluation_thread_count",
-                Integer.toString(conf.getWindowEvaluationThreadCount()))));
-    if (conf.getWindowEvaluationThreadCount() <= 0) {
-      conf.setWindowEvaluationThreadCount(Runtime.getRuntime().availableProcessors());
+                Integer.toString(CONF.getWindowEvaluationThreadCount()))));
+    if (CONF.getWindowEvaluationThreadCount() <= 0) {
+      CONF.setWindowEvaluationThreadCount(Runtime.getRuntime().availableProcessors());
     }
 
-    conf.setMaxPendingWindowEvaluationTasks(
+    CONF.setMaxPendingWindowEvaluationTasks(
         Integer.parseInt(
             properties.getProperty(
                 "max_pending_window_evaluation_tasks",
-                Integer.toString(conf.getMaxPendingWindowEvaluationTasks()))));
-    if (conf.getMaxPendingWindowEvaluationTasks() <= 0) {
-      conf.setMaxPendingWindowEvaluationTasks(64);
+                Integer.toString(CONF.getMaxPendingWindowEvaluationTasks()))));
+    if (CONF.getMaxPendingWindowEvaluationTasks() <= 0) {
+      CONF.setMaxPendingWindowEvaluationTasks(64);
     }
 
     // id table related configuration
-    conf.setDeviceIDTransformationMethod(
+    CONF.setDeviceIDTransformationMethod(
         properties.getProperty(
-            "device_id_transformation_method", conf.getDeviceIDTransformationMethod()));
+            "device_id_transformation_method", CONF.getDeviceIDTransformationMethod()));
 
-    conf.setEnableIDTable(
+    CONF.setEnableIDTable(
         Boolean.parseBoolean(
-            properties.getProperty("enable_id_table", String.valueOf(conf.isEnableIDTable()))));
+            properties.getProperty("enable_id_table", String.valueOf(CONF.isEnableIDTable()))));
 
-    conf.setEnableIDTableLogFile(
+    CONF.setEnableIDTableLogFile(
         Boolean.parseBoolean(
             properties.getProperty(
-                "enable_id_table_log_file", String.valueOf(conf.isEnableIDTableLogFile()))));
+                "enable_id_table_log_file", String.valueOf(CONF.isEnableIDTableLogFile()))));
 
-    conf.setSchemaEngineMode(
-        properties.getProperty("schema_engine_mode", String.valueOf(conf.getSchemaEngineMode())));
+    CONF.setSchemaEngineMode(
+        properties.getProperty("schema_engine_mode", String.valueOf(CONF.getSchemaEngineMode())));
 
-    conf.setEnableLastCache(
+    CONF.setEnableLastCache(
         Boolean.parseBoolean(
             properties.getProperty(
-                "enable_last_cache", Boolean.toString(conf.isLastCacheEnabled()))));
+                "enable_last_cache", Boolean.toString(CONF.isLastCacheEnabled()))));
 
-    if (conf.getSchemaEngineMode().equals("Rocksdb_based")) {
-      conf.setEnableLastCache(false);
+    if (CONF.getSchemaEngineMode().equals("Rocksdb_based")) {
+      CONF.setEnableLastCache(false);
     }
 
-    conf.setCachedMNodeSizeInSchemaFileMode(
+    CONF.setCachedMNodeSizeInSchemaFileMode(
         Integer.parseInt(
             properties.getProperty(
                 "cached_mnode_size_in_schema_file_mode",
-                String.valueOf(conf.getCachedMNodeSizeInSchemaFileMode()))));
+                String.valueOf(CONF.getCachedMNodeSizeInSchemaFileMode()))));
 
-    conf.setMinimumSegmentInSchemaFile(
+    CONF.setMinimumSegmentInSchemaFile(
         Short.parseShort(
             properties.getProperty(
                 "minimum_schema_file_segment_in_bytes",
-                String.valueOf(conf.getMinimumSegmentInSchemaFile()))));
-
-    conf.setPageCacheSizeInSchemaFile(
-        Integer.parseInt(
-            properties.getProperty(
-                "page_cache_in_schema_file", String.valueOf(conf.getPageCacheSizeInSchemaFile()))));
+                String.valueOf(CONF.getMinimumSegmentInSchemaFile()))));
 
-    conf.setSchemaFileLogSize(
+    CONF.setPageCacheSizeInSchemaFile(
         Integer.parseInt(
             properties.getProperty(
-                "schema_file_log_size", String.valueOf(conf.getSchemaFileLogSize()))));
+                "page_cache_in_schema_file", String.valueOf(CONF.getPageCacheSizeInSchemaFile()))));
 
-    conf.setMaxMeasurementNumOfInternalRequest(
+    CONF.setSchemaFileLogSize(
         Integer.parseInt(
             properties.getProperty(
-                "max_measurement_num_of_internal_request",
-                String.valueOf(conf.getMaxMeasurementNumOfInternalRequest()))));
+                "schema_file_log_size", String.valueOf(CONF.getSchemaFileLogSize()))));
 
     // mqtt
     loadMqttProps(properties);
 
-    conf.setSelectIntoInsertTabletPlanRowLimit(
+    CONF.setSelectIntoInsertTabletPlanRowLimit(
         Integer.parseInt(
             properties.getProperty(
                 "select_into_insert_tablet_plan_row_limit",
-                String.valueOf(conf.getSelectIntoInsertTabletPlanRowLimit()))));
-    conf.setIntoOperationExecutionThreadCount(
+                String.valueOf(CONF.getSelectIntoInsertTabletPlanRowLimit()))));
+    CONF.setIntoOperationExecutionThreadCount(
         Integer.parseInt(
             properties.getProperty(
                 "into_operation_execution_thread_count",
-                String.valueOf(conf.getIntoOperationExecutionThreadCount()))));
-    if (conf.getIntoOperationExecutionThreadCount() <= 0) {
-      conf.setIntoOperationExecutionThreadCount(2);
+                String.valueOf(CONF.getIntoOperationExecutionThreadCount()))));
+    if (CONF.getIntoOperationExecutionThreadCount() <= 0) {
+      CONF.setIntoOperationExecutionThreadCount(2);
     }
 
-    conf.setExtPipeDir(properties.getProperty("ext_pipe_dir", conf.getExtPipeDir()).trim());
+    CONF.setExtPipeDir(properties.getProperty("ext_pipe_dir", CONF.getExtPipeDir()).trim());
 
     // At the same time, set TSFileConfig
     TSFileDescriptor.getInstance()
         .getConfig()
         .setTSFileStorageFs(
             FSType.valueOf(
-                properties.getProperty("tsfile_storage_fs", conf.getTsFileStorageFs().name())));
+                properties.getProperty("tsfile_storage_fs", CONF.getTsFileStorageFs().name())));
     TSFileDescriptor.getInstance()
         .getConfig()
-        .setCoreSitePath(properties.getProperty("core_site_path", conf.getCoreSitePath()));
+        .setCoreSitePath(properties.getProperty("core_site_path", CONF.getCoreSitePath()));
     TSFileDescriptor.getInstance()
         .getConfig()
-        .setHdfsSitePath(properties.getProperty("hdfs_site_path", conf.getHdfsSitePath()));
+        .setHdfsSitePath(properties.getProperty("hdfs_site_path", CONF.getHdfsSitePath()));
     TSFileDescriptor.getInstance()
         .getConfig()
-        .setHdfsIp(properties.getProperty("hdfs_ip", conf.getRawHDFSIp()).split(","));
+        .setHdfsIp(properties.getProperty("hdfs_ip", CONF.getRawHDFSIp()).split(","));
     TSFileDescriptor.getInstance()
         .getConfig()
-        .setHdfsPort(properties.getProperty("hdfs_port", conf.getHdfsPort()));
+        .setHdfsPort(properties.getProperty("hdfs_port", CONF.getHdfsPort()));
     TSFileDescriptor.getInstance()
         .getConfig()
-        .setDfsNameServices(properties.getProperty("dfs_nameservices", conf.getDfsNameServices()));
+        .setDfsNameServices(properties.getProperty("dfs_nameservices", CONF.getDfsNameServices()));
     TSFileDescriptor.getInstance()
         .getConfig()
         .setDfsHaNamenodes(
-            properties.getProperty("dfs_ha_namenodes", conf.getRawDfsHaNamenodes()).split(","));
+            properties.getProperty("dfs_ha_namenodes", CONF.getRawDfsHaNamenodes()).split(","));
     TSFileDescriptor.getInstance()
         .getConfig()
         .setDfsHaAutomaticFailoverEnabled(
             Boolean.parseBoolean(
                 properties.getProperty(
                     "dfs_ha_automatic_failover_enabled",
-                    String.valueOf(conf.isDfsHaAutomaticFailoverEnabled()))));
+                    String.valueOf(CONF.isDfsHaAutomaticFailoverEnabled()))));
     TSFileDescriptor.getInstance()
         .getConfig()
         .setDfsClientFailoverProxyProvider(
             properties.getProperty(
-                "dfs_client_failover_proxy_provider", conf.getDfsClientFailoverProxyProvider()));
+                "dfs_client_failover_proxy_provider", CONF.getDfsClientFailoverProxyProvider()));
     TSFileDescriptor.getInstance()
         .getConfig()
         .setPatternMatchingThreshold(
             Integer.parseInt(
                 properties.getProperty(
                     "pattern_matching_threshold",
-                    String.valueOf(conf.getPatternMatchingThreshold()))));
+                    String.valueOf(CONF.getPatternMatchingThreshold()))));
     TSFileDescriptor.getInstance()
         .getConfig()
         .setUseKerberos(
             Boolean.parseBoolean(
-                properties.getProperty("hdfs_use_kerberos", String.valueOf(conf.isUseKerberos()))));
+                properties.getProperty("hdfs_use_kerberos", String.valueOf(CONF.isUseKerberos()))));
     TSFileDescriptor.getInstance()
         .getConfig()
         .setKerberosKeytabFilePath(
-            properties.getProperty("kerberos_keytab_file_path", conf.getKerberosKeytabFilePath()));
+            properties.getProperty("kerberos_keytab_file_path", CONF.getKerberosKeytabFilePath()));
     TSFileDescriptor.getInstance()
         .getConfig()
         .setKerberosPrincipal(
-            properties.getProperty("kerberos_principal", conf.getKerberosPrincipal()));
-    TSFileDescriptor.getInstance().getConfig().setBatchSize(conf.getBatchSize());
-
-    conf.setCoordinatorReadExecutorSize(
-        Integer.parseInt(
-            properties.getProperty(
-                "coordinator_read_executor_size",
-                Integer.toString(conf.getCoordinatorReadExecutorSize()))));
-    conf.setCoordinatorWriteExecutorSize(
-        Integer.parseInt(
-            properties.getProperty(
-                "coordinator_write_executor_size",
-                Integer.toString(conf.getCoordinatorWriteExecutorSize()))));
+            properties.getProperty("kerberos_principal", CONF.getKerberosPrincipal()));
+    TSFileDescriptor.getInstance().getConfig().setBatchSize(CONF.getBatchSize());
 
     // commons
     commonDescriptor.loadCommonProps(properties);
-    commonDescriptor.initCommonConfigDir(conf.getSystemDir());
+    commonDescriptor.initCommonConfigDir(CONF.getDnSystemDir());
 
     // timed flush memtable
     loadTimedService(properties);
@@ -998,56 +901,56 @@ public class IoTDBDescriptor {
     // author cache
     loadAuthorCache(properties);
 
-    conf.setTimePartitionInterval(
+    CONF.setTimePartitionInterval(
         DateTimeUtils.convertMilliTimeWithPrecision(
-            conf.getTimePartitionInterval(), conf.getTimestampPrecision()));
+            CONF.getTimePartitionInterval(), CONF.getTimestampPrecision()));
   }
 
   private void loadAuthorCache(Properties properties) {
-    conf.setAuthorCacheSize(
+    CONF.setAuthorCacheSize(
         Integer.parseInt(
             properties.getProperty(
-                "author_cache_size", String.valueOf(conf.getAuthorCacheSize()))));
-    conf.setAuthorCacheExpireTime(
+                "author_cache_size", String.valueOf(CONF.getAuthorCacheSize()))));
+    CONF.setAuthorCacheExpireTime(
         Integer.parseInt(
             properties.getProperty(
-                "author_cache_expire_time", String.valueOf(conf.getAuthorCacheExpireTime()))));
+                "author_cache_expire_time", String.valueOf(CONF.getAuthorCacheExpireTime()))));
   }
 
   private void loadWALProps(Properties properties) {
-    conf.setWalMode(
-        WALMode.valueOf((properties.getProperty("wal_mode", conf.getWalMode().toString()))));
+    CONF.setWalMode(
+        WALMode.valueOf((properties.getProperty("wal_mode", CONF.getWalMode().toString()))));
 
     int maxWalNodesNum =
         Integer.parseInt(
             properties.getProperty(
-                "max_wal_nodes_num", Integer.toString(conf.getMaxWalNodesNum())));
+                "max_wal_nodes_num", Integer.toString(CONF.getMaxWalNodesNum())));
     if (maxWalNodesNum > 0) {
-      conf.setMaxWalNodesNum(maxWalNodesNum);
+      CONF.setMaxWalNodesNum(maxWalNodesNum);
     }
 
     int walBufferSize =
         Integer.parseInt(
             properties.getProperty(
-                "wal_buffer_size_in_byte", Integer.toString(conf.getWalBufferSize())));
+                "wal_buffer_size_in_byte", Integer.toString(CONF.getWalBufferSize())));
     if (walBufferSize > 0) {
-      conf.setWalBufferSize(walBufferSize);
+      CONF.setWalBufferSize(walBufferSize);
     }
 
     int walBufferEntrySize =
         Integer.parseInt(
             properties.getProperty(
-                "wal_buffer_entry_size_in_byte", Integer.toString(conf.getWalBufferEntrySize())));
+                "wal_buffer_entry_size_in_byte", Integer.toString(CONF.getWalBufferEntrySize())));
     if (walBufferEntrySize > 0) {
-      conf.setWalBufferEntrySize(walBufferEntrySize);
+      CONF.setWalBufferEntrySize(walBufferEntrySize);
     }
 
     int walBufferQueueCapacity =
         Integer.parseInt(
             properties.getProperty(
-                "wal_buffer_queue_capacity", Integer.toString(conf.getWalBufferQueueCapacity())));
+                "wal_buffer_queue_capacity", Integer.toString(CONF.getWalBufferQueueCapacity())));
     if (walBufferQueueCapacity > 0) {
-      conf.setWalBufferQueueCapacity(walBufferQueueCapacity);
+      CONF.setWalBufferQueueCapacity(walBufferQueueCapacity);
     }
 
     loadWALHotModifiedProps(properties);
@@ -1057,125 +960,75 @@ public class IoTDBDescriptor {
     long fsyncWalDelayInMs =
         Long.parseLong(
             properties.getProperty(
-                "fsync_wal_delay_in_ms", Long.toString(conf.getFsyncWalDelayInMs())));
+                "fsync_wal_delay_in_ms", Long.toString(CONF.getFsyncWalDelayInMs())));
     if (fsyncWalDelayInMs > 0) {
-      conf.setFsyncWalDelayInMs(fsyncWalDelayInMs);
+      CONF.setFsyncWalDelayInMs(fsyncWalDelayInMs);
     }
 
     long walFileSizeThreshold =
         Long.parseLong(
             properties.getProperty(
                 "wal_file_size_threshold_in_byte",
-                Long.toString(conf.getWalFileSizeThresholdInByte())));
+                Long.toString(CONF.getWalFileSizeThresholdInByte())));
     if (walFileSizeThreshold > 0) {
-      conf.setWalFileSizeThresholdInByte(walFileSizeThreshold);
+      CONF.setWalFileSizeThresholdInByte(walFileSizeThreshold);
     }
 
     double walMinEffectiveInfoRatio =
         Double.parseDouble(
             properties.getProperty(
                 "wal_min_effective_info_ratio",
-                Double.toString(conf.getWalMinEffectiveInfoRatio())));
+                Double.toString(CONF.getWalMinEffectiveInfoRatio())));
     if (walMinEffectiveInfoRatio > 0) {
-      conf.setWalMinEffectiveInfoRatio(walMinEffectiveInfoRatio);
+      CONF.setWalMinEffectiveInfoRatio(walMinEffectiveInfoRatio);
     }
 
     long walMemTableSnapshotThreshold =
         Long.parseLong(
             properties.getProperty(
                 "wal_memtable_snapshot_threshold_in_byte",
-                Long.toString(conf.getWalMemTableSnapshotThreshold())));
+                Long.toString(CONF.getWalMemTableSnapshotThreshold())));
     if (walMemTableSnapshotThreshold > 0) {
-      conf.setWalMemTableSnapshotThreshold(walMemTableSnapshotThreshold);
+      CONF.setWalMemTableSnapshotThreshold(walMemTableSnapshotThreshold);
     }
 
     int maxWalMemTableSnapshotNum =
         Integer.parseInt(
             properties.getProperty(
                 "max_wal_memtable_snapshot_num",
-                Integer.toString(conf.getMaxWalMemTableSnapshotNum())));
+                Integer.toString(CONF.getMaxWalMemTableSnapshotNum())));
     if (maxWalMemTableSnapshotNum > 0) {
-      conf.setMaxWalMemTableSnapshotNum(maxWalMemTableSnapshotNum);
+      CONF.setMaxWalMemTableSnapshotNum(maxWalMemTableSnapshotNum);
     }
 
     long deleteWalFilesPeriod =
         Long.parseLong(
             properties.getProperty(
                 "delete_wal_files_period_in_ms",
-                Long.toString(conf.getDeleteWalFilesPeriodInMs())));
+                Long.toString(CONF.getDeleteWalFilesPeriodInMs())));
     if (deleteWalFilesPeriod > 0) {
-      conf.setDeleteWalFilesPeriodInMs(deleteWalFilesPeriod);
+      CONF.setDeleteWalFilesPeriodInMs(deleteWalFilesPeriod);
     }
 
     long throttleDownThresholdInByte =
         Long.parseLong(
             properties.getProperty(
                 "iot_consensus_throttle_threshold_in_byte",
-                Long.toString(conf.getThrottleThreshold())));
+                Long.toString(CONF.getThrottleThreshold())));
     if (throttleDownThresholdInByte > 0) {
-      conf.setThrottleThreshold(throttleDownThresholdInByte);
+      CONF.setThrottleThreshold(throttleDownThresholdInByte);
     }
 
     long cacheWindowInMs =
         Long.parseLong(
             properties.getProperty(
                 "iot_consensus_cache_window_time_in_ms",
-                Long.toString(conf.getCacheWindowTimeInMs())));
+                Long.toString(CONF.getCacheWindowTimeInMs())));
     if (cacheWindowInMs > 0) {
-      conf.setCacheWindowTimeInMs(cacheWindowInMs);
+      CONF.setCacheWindowTimeInMs(cacheWindowInMs);
     }
   }
 
-  private void loadAutoCreateSchemaProps(Properties properties) {
-    conf.setAutoCreateSchemaEnabled(
-        Boolean.parseBoolean(
-            properties.getProperty(
-                "enable_auto_create_schema",
-                Boolean.toString(conf.isAutoCreateSchemaEnabled()).trim())));
-    conf.setBooleanStringInferType(
-        TSDataType.valueOf(
-            properties.getProperty(
-                "boolean_string_infer_type", conf.getBooleanStringInferType().toString())));
-    conf.setIntegerStringInferType(
-        TSDataType.valueOf(
-            properties.getProperty(
-                "integer_string_infer_type", conf.getIntegerStringInferType().toString())));
-    conf.setLongStringInferType(
-        TSDataType.valueOf(
-            properties.getProperty(
-                "long_string_infer_type", conf.getLongStringInferType().toString())));
-    conf.setFloatingStringInferType(
-        TSDataType.valueOf(
-            properties.getProperty(
-                "floating_string_infer_type", conf.getFloatingStringInferType().toString())));
-    conf.setNanStringInferType(
-        TSDataType.valueOf(
-            properties.getProperty(
-                "nan_string_infer_type", conf.getNanStringInferType().toString())));
-    conf.setDefaultStorageGroupLevel(
-        Integer.parseInt(
-            properties.getProperty(
-                "default_storage_group_level",
-                Integer.toString(conf.getDefaultStorageGroupLevel()))));
-    conf.setDefaultBooleanEncoding(
-        properties.getProperty(
-            "default_boolean_encoding", conf.getDefaultBooleanEncoding().toString()));
-    conf.setDefaultInt32Encoding(
-        properties.getProperty(
-            "default_int32_encoding", conf.getDefaultInt32Encoding().toString()));
-    conf.setDefaultInt64Encoding(
-        properties.getProperty(
-            "default_int64_encoding", conf.getDefaultInt64Encoding().toString()));
-    conf.setDefaultFloatEncoding(
-        properties.getProperty(
-            "default_float_encoding", conf.getDefaultFloatEncoding().toString()));
-    conf.setDefaultDoubleEncoding(
-        properties.getProperty(
-            "default_double_encoding", conf.getDefaultDoubleEncoding().toString()));
-    conf.setDefaultTextEncoding(
-        properties.getProperty("default_text_encoding", conf.getDefaultTextEncoding().toString()));
-  }
-
   private void loadTsFileProps(Properties properties) {
     TSFileDescriptor.getInstance()
         .getConfig()
@@ -1272,7 +1125,7 @@ public class IoTDBDescriptor {
             (int)
                 Math.min(
                     TSFileDescriptor.getInstance().getConfig().getMaxTsBlockSizeInBytes(),
-                    conf.getMaxBytesPerFragmentInstance()));
+                    CONF.getMaxBytesPerFragmentInstance()));
 
     TSFileDescriptor.getInstance()
         .getConfig()
@@ -1286,110 +1139,51 @@ public class IoTDBDescriptor {
 
   // Mqtt related
   private void loadMqttProps(Properties properties) {
-    conf.setMqttDir(properties.getProperty("mqtt_root_dir", conf.getMqttDir()));
+    CONF.setMqttDir(properties.getProperty("mqtt_root_dir", CONF.getMqttDir()));
 
     if (properties.getProperty(IoTDBConstant.MQTT_HOST_NAME) != null) {
-      conf.setMqttHost(properties.getProperty(IoTDBConstant.MQTT_HOST_NAME));
+      CONF.setMqttHost(properties.getProperty(IoTDBConstant.MQTT_HOST_NAME));
     }
 
     if (properties.getProperty(IoTDBConstant.MQTT_PORT_NAME) != null) {
-      conf.setMqttPort(Integer.parseInt(properties.getProperty(IoTDBConstant.MQTT_PORT_NAME)));
+      CONF.setMqttPort(Integer.parseInt(properties.getProperty(IoTDBConstant.MQTT_PORT_NAME)));
     }
 
     if (properties.getProperty(IoTDBConstant.MQTT_HANDLER_POOL_SIZE_NAME) != null) {
-      conf.setMqttHandlerPoolSize(
+      CONF.setMqttHandlerPoolSize(
           Integer.parseInt(properties.getProperty(IoTDBConstant.MQTT_HANDLER_POOL_SIZE_NAME)));
     }
 
     if (properties.getProperty(IoTDBConstant.MQTT_PAYLOAD_FORMATTER_NAME) != null) {
-      conf.setMqttPayloadFormatter(
+      CONF.setMqttPayloadFormatter(
           properties.getProperty(IoTDBConstant.MQTT_PAYLOAD_FORMATTER_NAME));
     }
 
     if (properties.getProperty(IoTDBConstant.ENABLE_MQTT) != null) {
-      conf.setEnableMQTTService(
+      CONF.setEnableMQTTService(
           Boolean.parseBoolean(properties.getProperty(IoTDBConstant.ENABLE_MQTT)));
     }
 
     if (properties.getProperty(IoTDBConstant.MQTT_MAX_MESSAGE_SIZE) != null) {
-      conf.setMqttMaxMessageSize(
+      CONF.setMqttMaxMessageSize(
           Integer.parseInt(properties.getProperty(IoTDBConstant.MQTT_MAX_MESSAGE_SIZE)));
     }
   }
 
-  // timed flush memtable
-  private void loadTimedService(Properties properties) {
-    conf.setEnableTimedFlushSeqMemtable(
-        Boolean.parseBoolean(
-            properties.getProperty(
-                "enable_timed_flush_seq_memtable",
-                Boolean.toString(conf.isEnableTimedFlushSeqMemtable()))));
-
-    long seqMemTableFlushInterval =
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "seq_memtable_flush_interval_in_ms",
-                    Long.toString(conf.getSeqMemtableFlushInterval()))
-                .trim());
-    if (seqMemTableFlushInterval > 0) {
-      conf.setSeqMemtableFlushInterval(seqMemTableFlushInterval);
-    }
-
-    long seqMemTableFlushCheckInterval =
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "seq_memtable_flush_check_interval_in_ms",
-                    Long.toString(conf.getSeqMemtableFlushCheckInterval()))
-                .trim());
-    if (seqMemTableFlushCheckInterval > 0) {
-      conf.setSeqMemtableFlushCheckInterval(seqMemTableFlushCheckInterval);
-    }
-
-    conf.setEnableTimedFlushUnseqMemtable(
-        Boolean.parseBoolean(
-            properties.getProperty(
-                "enable_timed_flush_unseq_memtable",
-                Boolean.toString(conf.isEnableTimedFlushUnseqMemtable()))));
-
-    long unseqMemTableFlushInterval =
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "unseq_memtable_flush_interval_in_ms",
-                    Long.toString(conf.getUnseqMemtableFlushInterval()))
-                .trim());
-    if (unseqMemTableFlushInterval > 0) {
-      conf.setUnseqMemtableFlushInterval(unseqMemTableFlushInterval);
-    }
-
-    long unseqMemTableFlushCheckInterval =
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "unseq_memtable_flush_check_interval_in_ms",
-                    Long.toString(conf.getUnseqMemtableFlushCheckInterval()))
-                .trim());
-    if (unseqMemTableFlushCheckInterval > 0) {
-      conf.setUnseqMemtableFlushCheckInterval(unseqMemTableFlushCheckInterval);
-    }
-  }
-
   public void loadHotModifiedProps(Properties properties) throws QueryProcessException {
     try {
       // update data dirs
       String dataDirs = properties.getProperty("dn_data_dirs", null);
       if (dataDirs != null) {
-        conf.reloadDataDirs(dataDirs.split(","));
+        CONF.reloadDataDirs(dataDirs.split(","));
       }
 
       // update dir strategy, must update after data dirs
       String multiDirStrategyClassName = properties.getProperty("dn_multi_dir_strategy", null);
       if (multiDirStrategyClassName != null
-          && !multiDirStrategyClassName.equals(conf.getMultiDirStrategyClassName())) {
-        conf.setMultiDirStrategyClassName(multiDirStrategyClassName);
-        conf.confirmMultiDirStrategy();
+          && !multiDirStrategyClassName.equals(CONF.getDnMultiDirStrategyClassName())) {
+        CONF.setDnMultiDirStrategyClassName(multiDirStrategyClassName);
+        CONF.confirmMultiDirStrategy();
         DirectoryManager.getInstance().updateDirectoryStrategy();
       }
 
@@ -1397,73 +1191,60 @@ public class IoTDBDescriptor {
       loadTimedService(properties);
       StorageEngine.getInstance().rebootTimedService();
 
-      long memTableSizeThreshold =
-          Long.parseLong(
-              properties
-                  .getProperty(
-                      "memtable_size_threshold", Long.toString(conf.getMemtableSizeThreshold()))
-                  .trim());
-      if (memTableSizeThreshold > 0) {
-        conf.setMemtableSizeThreshold(memTableSizeThreshold);
-      }
-
-      // update params of creating schema automatically
-      loadAutoCreateSchemaProps(properties);
-
       // update tsfile-format config
       loadTsFileProps(properties);
 
       // update max_deduplicated_path_num
-      conf.setMaxQueryDeduplicatedPathNum(
+      CONF.setMaxQueryDeduplicatedPathNum(
           Integer.parseInt(
               properties.getProperty(
                   "max_deduplicated_path_num",
-                  Integer.toString(conf.getMaxQueryDeduplicatedPathNum()))));
+                  Integer.toString(CONF.getMaxQueryDeduplicatedPathNum()))));
       // update frequency_interval_in_minute
-      conf.setFrequencyIntervalInMinute(
+      CONF.setFrequencyIntervalInMinute(
           Integer.parseInt(
               properties.getProperty(
                   "frequency_interval_in_minute",
-                  Integer.toString(conf.getFrequencyIntervalInMinute()))));
+                  Integer.toString(CONF.getFrequencyIntervalInMinute()))));
       // update slow_query_threshold
-      conf.setSlowQueryThreshold(
+      CONF.setSlowQueryThreshold(
           Long.parseLong(
               properties.getProperty(
-                  "slow_query_threshold", Long.toString(conf.getSlowQueryThreshold()))));
+                  "slow_query_threshold", Long.toString(CONF.getSlowQueryThreshold()))));
       // update merge_write_throughput_mb_per_sec
-      conf.setCompactionWriteThroughputMbPerSec(
+      CONF.setCompactionWriteThroughputMbPerSec(
           Integer.parseInt(
               properties.getProperty(
                   "merge_write_throughput_mb_per_sec",
-                  Integer.toString(conf.getCompactionWriteThroughputMbPerSec()))));
+                  Integer.toString(CONF.getCompactionWriteThroughputMbPerSec()))));
       // update insert-tablet-plan's row limit for select-into
-      conf.setSelectIntoInsertTabletPlanRowLimit(
+      CONF.setSelectIntoInsertTabletPlanRowLimit(
           Integer.parseInt(
               properties.getProperty(
                   "select_into_insert_tablet_plan_row_limit",
-                  String.valueOf(conf.getSelectIntoInsertTabletPlanRowLimit()))));
+                  String.valueOf(CONF.getSelectIntoInsertTabletPlanRowLimit()))));
 
       // update sync config
-      conf.setMaxNumberOfSyncFileRetry(
+      CONF.setMaxNumberOfSyncFileRetry(
           Integer.parseInt(
               properties
                   .getProperty(
                       "max_number_of_sync_file_retry",
-                      Integer.toString(conf.getMaxNumberOfSyncFileRetry()))
+                      Integer.toString(CONF.getMaxNumberOfSyncFileRetry()))
                   .trim()));
-      conf.setIpWhiteList(properties.getProperty("ip_white_list", conf.getIpWhiteList()));
+      CONF.setIpWhiteList(properties.getProperty("ip_white_list", CONF.getIpWhiteList()));
 
       // update enable query memory estimation for memory control
-      conf.setEnableQueryMemoryEstimation(
+      CONF.setEnableQueryMemoryEstimation(
           Boolean.parseBoolean(
               properties.getProperty(
                   "enable_query_memory_estimation",
-                  Boolean.toString(conf.isEnableQueryMemoryEstimation()))));
+                  Boolean.toString(CONF.isEnableQueryMemoryEstimation()))));
 
       // update wal config
-      long prevDeleteWalFilesPeriodInMs = conf.getDeleteWalFilesPeriodInMs();
+      long prevDeleteWalFilesPeriodInMs = CONF.getDeleteWalFilesPeriodInMs();
       loadWALHotModifiedProps(properties);
-      if (prevDeleteWalFilesPeriodInMs != conf.getDeleteWalFilesPeriodInMs()) {
+      if (prevDeleteWalFilesPeriodInMs != CONF.getDeleteWalFilesPeriodInMs()) {
         WALManager.getInstance().rebootWALDeleteThread();
       }
     } catch (Exception e) {
@@ -1531,36 +1312,36 @@ public class IoTDBDescriptor {
       }
       long maxMemoryAvailable = Runtime.getRuntime().maxMemory();
       if (proportionSum != 0) {
-        conf.setAllocateMemoryForStorageEngine(
+        CONF.setAllocateMemoryForStorageEngine(
             maxMemoryAvailable * Integer.parseInt(proportions[0].trim()) / proportionSum);
-        conf.setAllocateMemoryForRead(
+        CONF.setAllocateMemoryForRead(
             maxMemoryAvailable * Integer.parseInt(proportions[1].trim()) / proportionSum);
-        conf.setAllocateMemoryForSchema(
+        CONF.setAllocateMemoryForSchema(
             maxMemoryAvailable * Integer.parseInt(proportions[2].trim()) / proportionSum);
-        conf.setAllocateMemoryForConsensus(
+        CONF.setAllocateMemoryForConsensus(
             maxMemoryAvailable * Integer.parseInt(proportions[3].trim()) / proportionSum);
       }
     }
 
-    logger.info("initial allocateMemoryForRead = {}", conf.getAllocateMemoryForRead());
-    logger.info("initial allocateMemoryForWrite = {}", conf.getAllocateMemoryForStorageEngine());
-    logger.info("initial allocateMemoryForSchema = {}", conf.getAllocateMemoryForSchema());
-    logger.info("initial allocateMemoryForConsensus = {}", conf.getAllocateMemoryForConsensus());
+    logger.info("initial allocateMemoryForRead = {}", CONF.getAllocateMemoryForRead());
+    logger.info("initial allocateMemoryForWrite = {}", CONF.getAllocateMemoryForStorageEngine());
+    logger.info("initial allocateMemoryForSchema = {}", CONF.getAllocateMemoryForSchema());
+    logger.info("initial allocateMemoryForConsensus = {}", CONF.getAllocateMemoryForConsensus());
 
     initSchemaMemoryAllocate(properties);
     initStorageEngineAllocate(properties);
 
-    conf.setMaxQueryDeduplicatedPathNum(
+    CONF.setMaxQueryDeduplicatedPathNum(
         Integer.parseInt(
             properties.getProperty(
                 "max_deduplicated_path_num",
-                Integer.toString(conf.getMaxQueryDeduplicatedPathNum()))));
+                Integer.toString(CONF.getMaxQueryDeduplicatedPathNum()))));
 
-    conf.setEnableQueryMemoryEstimation(
+    CONF.setEnableQueryMemoryEstimation(
         Boolean.parseBoolean(
             properties.getProperty(
                 "enable_query_memory_estimation",
-                Boolean.toString(conf.isEnableQueryMemoryEstimation()))));
+                Boolean.toString(CONF.isEnableQueryMemoryEstimation()))));
 
     String queryMemoryAllocateProportion =
         properties.getProperty("chunk_timeseriesmeta_free_memory_proportion");
@@ -1570,22 +1351,22 @@ public class IoTDBDescriptor {
       for (String proportion : proportions) {
         proportionSum += Integer.parseInt(proportion.trim());
       }
-      long maxMemoryAvailable = conf.getAllocateMemoryForRead();
+      long maxMemoryAvailable = CONF.getAllocateMemoryForRead();
       if (proportionSum != 0) {
         try {
-          conf.setAllocateMemoryForBloomFilterCache(
+          CONF.setAllocateMemoryForBloomFilterCache(
               maxMemoryAvailable * Integer.parseInt(proportions[0].trim()) / proportionSum);
-          conf.setAllocateMemoryForChunkCache(
+          CONF.setAllocateMemoryForChunkCache(
               maxMemoryAvailable * Integer.parseInt(proportions[1].trim()) / proportionSum);
-          conf.setAllocateMemoryForTimeSeriesMetaDataCache(
+          CONF.setAllocateMemoryForTimeSeriesMetaDataCache(
               maxMemoryAvailable * Integer.parseInt(proportions[2].trim()) / proportionSum);
-          conf.setAllocateMemoryForCoordinator(
+          CONF.setAllocateMemoryForCoordinator(
               maxMemoryAvailable * Integer.parseInt(proportions[3].trim()) / proportionSum);
-          conf.setAllocateMemoryForOperators(
+          CONF.setAllocateMemoryForOperators(
               maxMemoryAvailable * Integer.parseInt(proportions[4].trim()) / proportionSum);
-          conf.setAllocateMemoryForDataExchange(
+          CONF.setAllocateMemoryForDataExchange(
               maxMemoryAvailable * Integer.parseInt(proportions[5].trim()) / proportionSum);
-          conf.setAllocateMemoryForTimeIndex(
+          CONF.setAllocateMemoryForTimeIndex(
               maxMemoryAvailable * Integer.parseInt(proportions[6].trim()) / proportionSum);
         } catch (Exception e) {
           throw new RuntimeException(
@@ -1597,19 +1378,19 @@ public class IoTDBDescriptor {
     }
 
     // metadata cache is disabled, we need to move all their allocated memory to other parts
-    if (!conf.isMetaDataCacheEnable()) {
+    if (!CONF.isMetaDataCacheEnable()) {
       long sum =
-          conf.getAllocateMemoryForBloomFilterCache()
-              + conf.getAllocateMemoryForChunkCache()
-              + conf.getAllocateMemoryForTimeSeriesMetaDataCache();
-      conf.setAllocateMemoryForBloomFilterCache(0);
-      conf.setAllocateMemoryForChunkCache(0);
-      conf.setAllocateMemoryForTimeSeriesMetaDataCache(0);
+          CONF.getAllocateMemoryForBloomFilterCache()
+              + CONF.getAllocateMemoryForChunkCache()
+              + CONF.getAllocateMemoryForTimeSeriesMetaDataCache();
+      CONF.setAllocateMemoryForBloomFilterCache(0);
+      CONF.setAllocateMemoryForChunkCache(0);
+      CONF.setAllocateMemoryForTimeSeriesMetaDataCache(0);
       long partForDataExchange = sum / 2;
       long partForOperators = sum - partForDataExchange;
-      conf.setAllocateMemoryForDataExchange(
-          conf.getAllocateMemoryForDataExchange() + partForDataExchange);
-      conf.setAllocateMemoryForOperators(conf.getAllocateMemoryForOperators() + partForOperators);
+      CONF.setAllocateMemoryForDataExchange(
+          CONF.getAllocateMemoryForDataExchange() + partForDataExchange);
+      CONF.setAllocateMemoryForOperators(CONF.getAllocateMemoryForOperators() + partForOperators);
     }
   }
 
@@ -1634,20 +1415,20 @@ public class IoTDBDescriptor {
     double timePartitionInfoForWrite =
         ((double) (proportionForTimePartitionInfo)
             / (double) (proportionForMemTable + proportionForTimePartitionInfo));
-    conf.setWriteProportionForMemtable(writeProportion * memtableProportionForWrite);
+    CONF.setWriteProportionForMemtable(writeProportion * memtableProportionForWrite);
 
-    conf.setAllocateMemoryForTimePartitionInfo(
+    CONF.setAllocateMemoryForTimePartitionInfo(
         (long)
             ((writeProportion * timePartitionInfoForWrite)
-                * conf.getAllocateMemoryForStorageEngine()));
+                * CONF.getAllocateMemoryForStorageEngine()));
 
-    conf.setCompactionProportion(
+    CONF.setCompactionProportion(
         ((double) (proportionForCompaction)
             / (double) (proportionForCompaction + proportionForWrite)));
   }
 
   private void initSchemaMemoryAllocate(Properties properties) {
-    long schemaMemoryTotal = conf.getAllocateMemoryForSchema();
+    long schemaMemoryTotal = CONF.getAllocateMemoryForSchema();
 
     int proportionSum = 10;
     int schemaRegionProportion = 8;
@@ -1658,7 +1439,7 @@ public class IoTDBDescriptor {
     String schemaMemoryAllocatePortion =
         properties.getProperty("schema_memory_allocate_proportion");
     if (schemaMemoryAllocatePortion != null) {
-      conf.setDefaultSchemaMemoryConfig(false);
+      CONF.setDefaultSchemaMemoryConfig(false);
       String[] proportions = schemaMemoryAllocatePortion.split(":");
       int loadedProportionSum = 0;
       for (String proportion : proportions) {
@@ -1673,22 +1454,22 @@ public class IoTDBDescriptor {
         lastCacheProportion = Integer.parseInt(proportions[3].trim());
       }
     } else {
-      conf.setDefaultSchemaMemoryConfig(true);
+      CONF.setDefaultSchemaMemoryConfig(true);
     }
 
-    conf.setAllocateMemoryForSchemaRegion(
+    CONF.setAllocateMemoryForSchemaRegion(
         schemaMemoryTotal * schemaRegionProportion / proportionSum);
-    logger.info("allocateMemoryForSchemaRegion = {}", conf.getAllocateMemoryForSchemaRegion());
+    logger.info("allocateMemoryForSchemaRegion = {}", CONF.getAllocateMemoryForSchemaRegion());
 
-    conf.setAllocateMemoryForSchemaCache(schemaMemoryTotal * schemaCacheProportion / proportionSum);
-    logger.info("allocateMemoryForSchemaCache = {}", conf.getAllocateMemoryForSchemaCache());
+    CONF.setAllocateMemoryForSchemaCache(schemaMemoryTotal * schemaCacheProportion / proportionSum);
+    logger.info("allocateMemoryForSchemaCache = {}", CONF.getAllocateMemoryForSchemaCache());
 
-    conf.setAllocateMemoryForPartitionCache(
+    CONF.setAllocateMemoryForPartitionCache(
         schemaMemoryTotal * partitionCacheProportion / proportionSum);
-    logger.info("allocateMemoryForPartitionCache = {}", conf.getAllocateMemoryForPartitionCache());
+    logger.info("allocateMemoryForPartitionCache = {}", CONF.getAllocateMemoryForPartitionCache());
 
-    conf.setAllocateMemoryForLastCache(schemaMemoryTotal * lastCacheProportion / proportionSum);
-    logger.info("allocateMemoryForLastCache = {}", conf.getAllocateMemoryForLastCache());
+    CONF.setAllocateMemoryForLastCache(schemaMemoryTotal * lastCacheProportion / proportionSum);
+    logger.info("allocateMemoryForLastCache = {}", CONF.getAllocateMemoryForLastCache());
   }
 
   @SuppressWarnings("squid:S3518") // "proportionSum" can't be zero
@@ -1696,22 +1477,22 @@ public class IoTDBDescriptor {
     String initialByteArrayLengthForMemoryControl =
         properties.getProperty("udf_initial_byte_array_length_for_memory_control");
     if (initialByteArrayLengthForMemoryControl != null) {
-      conf.setUdfInitialByteArrayLengthForMemoryControl(
+      CONF.setUdfInitialByteArrayLengthForMemoryControl(
           Integer.parseInt(initialByteArrayLengthForMemoryControl));
     }
 
-    conf.setUdfDir(properties.getProperty("udf_lib_dir", conf.getUdfDir()));
+    CONF.setUdfDir(properties.getProperty("udf_lib_dir", CONF.getUdfDir()));
 
     String memoryBudgetInMb = properties.getProperty("udf_memory_budget_in_mb");
     if (memoryBudgetInMb != null) {
-      conf.setUdfMemoryBudgetInMB(
+      CONF.setUdfMemoryBudgetInMB(
           (float)
-              Math.min(Float.parseFloat(memoryBudgetInMb), 0.2 * conf.getAllocateMemoryForRead()));
+              Math.min(Float.parseFloat(memoryBudgetInMb), 0.2 * CONF.getAllocateMemoryForRead()));
     }
 
     String groupByFillCacheSizeInMB = properties.getProperty("group_by_fill_cache_size_in_mb");
     if (groupByFillCacheSizeInMB != null) {
-      conf.setGroupByFillCacheSizeInMB(Float.parseFloat(groupByFillCacheSizeInMB));
+      CONF.setGroupByFillCacheSizeInMB(Float.parseFloat(groupByFillCacheSizeInMB));
     }
 
     String readerTransformerCollectorMemoryProportion =
@@ -1722,13 +1503,13 @@ public class IoTDBDescriptor {
       for (String proportion : proportions) {
         proportionSum += Integer.parseInt(proportion.trim());
       }
-      float maxMemoryAvailable = conf.getUdfMemoryBudgetInMB();
+      float maxMemoryAvailable = CONF.getUdfMemoryBudgetInMB();
       try {
-        conf.setUdfReaderMemoryBudgetInMB(
+        CONF.setUdfReaderMemoryBudgetInMB(
             maxMemoryAvailable * Integer.parseInt(proportions[0].trim()) / proportionSum);
-        conf.setUdfTransformerMemoryBudgetInMB(
+        CONF.setUdfTransformerMemoryBudgetInMB(
             maxMemoryAvailable * Integer.parseInt(proportions[1].trim()) / proportionSum);
-        conf.setUdfCollectorMemoryBudgetInMB(
+        CONF.setUdfCollectorMemoryBudgetInMB(
             maxMemoryAvailable * Integer.parseInt(proportions[2].trim()) / proportionSum);
       } catch (Exception e) {
         throw new RuntimeException(
@@ -1740,234 +1521,229 @@ public class IoTDBDescriptor {
   }
 
   private void loadTriggerProps(Properties properties) {
-    conf.setTriggerDir(properties.getProperty("trigger_lib_dir", conf.getTriggerDir()));
-    conf.setRetryNumToFindStatefulTrigger(
+    CONF.setTriggerDir(properties.getProperty("trigger_lib_dir", CONF.getTriggerDir()));
+    CONF.setRetryNumToFindStatefulTrigger(
         Integer.parseInt(
             properties.getProperty(
                 "stateful_trigger_retry_num_when_not_found",
-                Integer.toString(conf.getRetryNumToFindStatefulTrigger()))));
+                Integer.toString(CONF.getRetryNumToFindStatefulTrigger()))));
 
     int tlogBufferSize =
         Integer.parseInt(
-            properties.getProperty("tlog_buffer_size", Integer.toString(conf.getTlogBufferSize())));
+            properties.getProperty("tlog_buffer_size", Integer.toString(CONF.getTlogBufferSize())));
     if (tlogBufferSize > 0) {
-      conf.setTlogBufferSize(tlogBufferSize);
+      CONF.setTlogBufferSize(tlogBufferSize);
     }
 
-    conf.setTriggerForwardMaxQueueNumber(
+    CONF.setTriggerForwardMaxQueueNumber(
         Integer.parseInt(
             properties.getProperty(
                 "trigger_forward_max_queue_number",
-                Integer.toString(conf.getTriggerForwardMaxQueueNumber()))));
-    conf.setTriggerForwardMaxSizePerQueue(
+                Integer.toString(CONF.getTriggerForwardMaxQueueNumber()))));
+    CONF.setTriggerForwardMaxSizePerQueue(
         Integer.parseInt(
             properties.getProperty(
                 "trigger_forward_max_size_per_queue",
-                Integer.toString(conf.getTriggerForwardMaxSizePerQueue()))));
-    conf.setTriggerForwardBatchSize(
+                Integer.toString(CONF.getTriggerForwardMaxSizePerQueue()))));
+    CONF.setTriggerForwardBatchSize(
         Integer.parseInt(
             properties.getProperty(
                 "trigger_forward_batch_size",
-                Integer.toString(conf.getTriggerForwardBatchSize()))));
-    conf.setTriggerForwardHTTPPoolSize(
+                Integer.toString(CONF.getTriggerForwardBatchSize()))));
+    CONF.setTriggerForwardHTTPPoolSize(
         Integer.parseInt(
             properties.getProperty(
                 "trigger_forward_http_pool_size",
-                Integer.toString(conf.getTriggerForwardHTTPPoolSize()))));
-    conf.setTriggerForwardHTTPPOOLMaxPerRoute(
+                Integer.toString(CONF.getTriggerForwardHTTPPoolSize()))));
+    CONF.setTriggerForwardHTTPPOOLMaxPerRoute(
         Integer.parseInt(
             properties.getProperty(
                 "trigger_forward_http_pool_max_per_route",
-                Integer.toString(conf.getTriggerForwardHTTPPOOLMaxPerRoute()))));
-    conf.setTriggerForwardMQTTPoolSize(
+                Integer.toString(CONF.getTriggerForwardHTTPPOOLMaxPerRoute()))));
+    CONF.setTriggerForwardMQTTPoolSize(
         Integer.parseInt(
             properties.getProperty(
                 "trigger_forward_mqtt_pool_size",
-                Integer.toString(conf.getTriggerForwardMQTTPoolSize()))));
+                Integer.toString(CONF.getTriggerForwardMQTTPoolSize()))));
   }
 
   private void loadCQProps(Properties properties) {
-    conf.setContinuousQueryThreadNum(
+    CONF.setContinuousQueryThreadNum(
         Integer.parseInt(
             properties.getProperty(
                 "continuous_query_thread_num",
-                Integer.toString(conf.getContinuousQueryThreadNum()))));
-    if (conf.getContinuousQueryThreadNum() <= 0) {
-      conf.setContinuousQueryThreadNum(Runtime.getRuntime().availableProcessors() / 2);
+                Integer.toString(CONF.getContinuousQueryThreadNum()))));
+    if (CONF.getContinuousQueryThreadNum() <= 0) {
+      CONF.setContinuousQueryThreadNum(Runtime.getRuntime().availableProcessors() / 2);
     }
 
-    conf.setContinuousQueryMinimumEveryInterval(
+    CONF.setContinuousQueryMinimumEveryInterval(
         DateTimeUtils.convertDurationStrToLong(
             properties.getProperty("continuous_query_minimum_every_interval", "1s"),
-            conf.getTimestampPrecision()));
+            CONF.getTimestampPrecision()));
   }
 
   public void loadClusterProps(Properties properties) {
     String configNodeUrls = properties.getProperty(IoTDBConstant.DN_TARGET_CONFIG_NODE_LIST);
     if (configNodeUrls != null) {
       try {
-        conf.setTargetConfigNodeList(NodeUrlUtils.parseTEndPointUrls(configNodeUrls));
+        CONF.setDnTargetConfigNodeList(NodeUrlUtils.parseTEndPointUrls(configNodeUrls));
       } catch (BadNodeUrlException e) {
         logger.error(
             "Config nodes are set in wrong format, please set them like 127.0.0.1:10710,127.0.0.1:10712");
       }
     }
 
-    conf.setInternalAddress(
-        properties.getProperty(IoTDBConstant.DN_INTERNAL_ADDRESS, conf.getInternalAddress()));
+    CONF.setDnInternalAddress(
+        properties.getProperty(IoTDBConstant.DN_INTERNAL_ADDRESS, CONF.getDnInternalAddress()));
 
-    conf.setInternalPort(
+    CONF.setDnInternalPort(
         Integer.parseInt(
             properties.getProperty(
-                IoTDBConstant.DN_INTERNAL_PORT, Integer.toString(conf.getInternalPort()))));
+                IoTDBConstant.DN_INTERNAL_PORT, Integer.toString(CONF.getDnInternalPort()))));
 
-    conf.setDataRegionConsensusPort(
+    CONF.setDnDataRegionConsensusPort(
         Integer.parseInt(
             properties.getProperty(
                 "dn_data_region_consensus_port",
-                Integer.toString(conf.getDataRegionConsensusPort()))));
+                Integer.toString(CONF.getDnDataRegionConsensusPort()))));
 
-    conf.setSchemaRegionConsensusPort(
+    CONF.setDnSchemaRegionConsensusPort(
         Integer.parseInt(
             properties.getProperty(
                 "dn_schema_region_consensus_port",
-                Integer.toString(conf.getSchemaRegionConsensusPort()))));
-    conf.setJoinClusterRetryIntervalMs(
+                Integer.toString(CONF.getDnSchemaRegionConsensusPort()))));
+    CONF.setDnJoinClusterRetryIntervalMs(
         Long.parseLong(
             properties.getProperty(
                 "dn_join_cluster_retry_interval_ms",
-                Long.toString(conf.getJoinClusterRetryIntervalMs()))));
+                Long.toString(CONF.getDnJoinClusterRetryIntervalMs()))));
   }
 
   public void loadShuffleProps(Properties properties) {
-    conf.setMppDataExchangePort(
+    CONF.setDnMppDataExchangePort(
         Integer.parseInt(
             properties.getProperty(
-                "dn_mpp_data_exchange_port", Integer.toString(conf.getMppDataExchangePort()))));
-    conf.setMppDataExchangeCorePoolSize(
+                "dn_mpp_data_exchange_port", Integer.toString(CONF.getDnMppDataExchangePort()))));
+    CONF.setMppDataExchangeCorePoolSize(
         Integer.parseInt(
             properties.getProperty(
                 "mpp_data_exchange_core_pool_size",
-                Integer.toString(conf.getMppDataExchangeCorePoolSize()))));
-    conf.setMppDataExchangeMaxPoolSize(
+                Integer.toString(CONF.getMppDataExchangeCorePoolSize()))));
+    CONF.setMppDataExchangeMaxPoolSize(
         Integer.parseInt(
             properties.getProperty(
                 "mpp_data_exchange_max_pool_size",
-                Integer.toString(conf.getMppDataExchangeMaxPoolSize()))));
-    conf.setMppDataExchangeKeepAliveTimeInMs(
+                Integer.toString(CONF.getMppDataExchangeMaxPoolSize()))));
+    CONF.setMppDataExchangeKeepAliveTimeInMs(
         Integer.parseInt(
             properties.getProperty(
                 "mpp_data_exchange_keep_alive_time_in_ms",
-                Integer.toString(conf.getMppDataExchangeKeepAliveTimeInMs()))));
-
-    conf.setPartitionCacheSize(
-        Integer.parseInt(
-            properties.getProperty(
-                "partition_cache_size", Integer.toString(conf.getPartitionCacheSize()))));
+                Integer.toString(CONF.getMppDataExchangeKeepAliveTimeInMs()))));
 
-    conf.setDriverTaskExecutionTimeSliceInMs(
+    CONF.setDriverTaskExecutionTimeSliceInMs(
         Integer.parseInt(
             properties.getProperty(
                 "driver_task_execution_time_slice_in_ms",
-                Integer.toString(conf.getDriverTaskExecutionTimeSliceInMs()))));
+                Integer.toString(CONF.getDriverTaskExecutionTimeSliceInMs()))));
   }
 
   /** Get default encode algorithm by data type */
   public TSEncoding getDefaultEncodingByType(TSDataType dataType) {
     switch (dataType) {
       case BOOLEAN:
-        return conf.getDefaultBooleanEncoding();
+        return CONF.getDefaultBooleanEncoding();
       case INT32:
-        return conf.getDefaultInt32Encoding();
+        return CONF.getDefaultInt32Encoding();
       case INT64:
-        return conf.getDefaultInt64Encoding();
+        return CONF.getDefaultInt64Encoding();
       case FLOAT:
-        return conf.getDefaultFloatEncoding();
+        return CONF.getDefaultFloatEncoding();
       case DOUBLE:
-        return conf.getDefaultDoubleEncoding();
+        return CONF.getDefaultDoubleEncoding();
       default:
-        return conf.getDefaultTextEncoding();
+        return CONF.getDefaultTextEncoding();
     }
   }
 
   // These configurations are received from config node when registering
   public void loadGlobalConfig(TGlobalConfig globalConfig) {
-    conf.setSeriesPartitionExecutorClass(globalConfig.getSeriesPartitionExecutorClass());
-    conf.setSeriesPartitionSlotNum(globalConfig.getSeriesPartitionSlotNum());
-    conf.setTimePartitionInterval(
+    CONF.setSeriesPartitionExecutorClass(globalConfig.getSeriesPartitionExecutorClass());
+    CONF.setSeriesPartitionSlotNum(globalConfig.getSeriesPartitionSlotNum());
+    CONF.setTimePartitionInterval(
         DateTimeUtils.convertMilliTimeWithPrecision(
-            globalConfig.timePartitionInterval, conf.getTimestampPrecision()));
-    conf.setReadConsistencyLevel(globalConfig.getReadConsistencyLevel());
+            globalConfig.timePartitionInterval, CONF.getTimestampPrecision()));
+    CONF.setReadConsistencyLevel(globalConfig.getReadConsistencyLevel());
   }
 
   public void loadRatisConfig(TRatisConfig ratisConfig) {
-    conf.setDataRatisConsensusLogAppenderBufferSizeMax(ratisConfig.getDataAppenderBufferSize());
-    conf.setSchemaRatisConsensusLogAppenderBufferSizeMax(ratisConfig.getSchemaAppenderBufferSize());
+    CONF.setDataRatisConsensusLogAppenderBufferSizeMax(ratisConfig.getDataAppenderBufferSize());
+    CONF.setSchemaRatisConsensusLogAppenderBufferSizeMax(ratisConfig.getSchemaAppenderBufferSize());
 
-    conf.setDataRatisConsensusSnapshotTriggerThreshold(
+    CONF.setDataRatisConsensusSnapshotTriggerThreshold(
         ratisConfig.getDataSnapshotTriggerThreshold());
-    conf.setSchemaRatisConsensusSnapshotTriggerThreshold(
+    CONF.setSchemaRatisConsensusSnapshotTriggerThreshold(
         ratisConfig.getSchemaSnapshotTriggerThreshold());
 
-    conf.setDataRatisConsensusLogUnsafeFlushEnable(ratisConfig.isDataLogUnsafeFlushEnable());
-    conf.setSchemaRatisConsensusLogUnsafeFlushEnable(ratisConfig.isSchemaLogUnsafeFlushEnable());
+    CONF.setDataRatisConsensusLogUnsafeFlushEnable(ratisConfig.isDataLogUnsafeFlushEnable());
+    CONF.setSchemaRatisConsensusLogUnsafeFlushEnable(ratisConfig.isSchemaLogUnsafeFlushEnable());
 
-    conf.setDataRatisConsensusLogSegmentSizeMax(ratisConfig.getDataLogSegmentSizeMax());
-    conf.setSchemaRatisConsensusLogSegmentSizeMax(ratisConfig.getSchemaLogSegmentSizeMax());
+    CONF.setDataRatisConsensusLogSegmentSizeMax(ratisConfig.getDataLogSegmentSizeMax());
+    CONF.setSchemaRatisConsensusLogSegmentSizeMax(ratisConfig.getSchemaLogSegmentSizeMax());
 
-    conf.setDataRatisConsensusGrpcFlowControlWindow(ratisConfig.getDataGrpcFlowControlWindow());
-    conf.setSchemaRatisConsensusGrpcFlowControlWindow(ratisConfig.getSchemaGrpcFlowControlWindow());
+    CONF.setDataRatisConsensusGrpcFlowControlWindow(ratisConfig.getDataGrpcFlowControlWindow());
+    CONF.setSchemaRatisConsensusGrpcFlowControlWindow(ratisConfig.getSchemaGrpcFlowControlWindow());
 
-    conf.setDataRatisConsensusLeaderElectionTimeoutMinMs(
+    CONF.setDataRatisConsensusLeaderElectionTimeoutMinMs(
         ratisConfig.getDataLeaderElectionTimeoutMin());
-    conf.setSchemaRatisConsensusLeaderElectionTimeoutMinMs(
+    CONF.setSchemaRatisConsensusLeaderElectionTimeoutMinMs(
         ratisConfig.getSchemaLeaderElectionTimeoutMin());
 
-    conf.setDataRatisConsensusLeaderElectionTimeoutMaxMs(
+    CONF.setDataRatisConsensusLeaderElectionTimeoutMaxMs(
         ratisConfig.getDataLeaderElectionTimeoutMax());
-    conf.setSchemaRatisConsensusLeaderElectionTimeoutMaxMs(
+    CONF.setSchemaRatisConsensusLeaderElectionTimeoutMaxMs(
         ratisConfig.getSchemaLeaderElectionTimeoutMax());
 
-    conf.setDataRatisConsensusRequestTimeoutMs(ratisConfig.getDataRequestTimeout());
-    conf.setSchemaRatisConsensusRequestTimeoutMs(ratisConfig.getSchemaRequestTimeout());
+    CONF.setDataRatisConsensusRequestTimeoutMs(ratisConfig.getDataRequestTimeout());
+    CONF.setSchemaRatisConsensusRequestTimeoutMs(ratisConfig.getSchemaRequestTimeout());
 
-    conf.setDataRatisConsensusMaxRetryAttempts(ratisConfig.getDataMaxRetryAttempts());
-    conf.setDataRatisConsensusInitialSleepTimeMs(ratisConfig.getDataInitialSleepTime());
-    conf.setDataRatisConsensusMaxSleepTimeMs(ratisConfig.getDataMaxSleepTime());
+    CONF.setDataRatisConsensusMaxRetryAttempts(ratisConfig.getDataMaxRetryAttempts());
+    CONF.setDataRatisConsensusInitialSleepTimeMs(ratisConfig.getDataInitialSleepTime());
+    CONF.setDataRatisConsensusMaxSleepTimeMs(ratisConfig.getDataMaxSleepTime());
 
-    conf.setSchemaRatisConsensusMaxRetryAttempts(ratisConfig.getSchemaMaxRetryAttempts());
-    conf.setSchemaRatisConsensusInitialSleepTimeMs(ratisConfig.getSchemaInitialSleepTime());
-    conf.setSchemaRatisConsensusMaxSleepTimeMs(ratisConfig.getSchemaMaxSleepTime());
+    CONF.setSchemaRatisConsensusMaxRetryAttempts(ratisConfig.getSchemaMaxRetryAttempts());
+    CONF.setSchemaRatisConsensusInitialSleepTimeMs(ratisConfig.getSchemaInitialSleepTime());
+    CONF.setSchemaRatisConsensusMaxSleepTimeMs(ratisConfig.getSchemaMaxSleepTime());
 
-    conf.setDataRatisConsensusPreserveWhenPurge(ratisConfig.getDataPreserveWhenPurge());
-    conf.setSchemaRatisConsensusPreserveWhenPurge(ratisConfig.getSchemaPreserveWhenPurge());
+    CONF.setDataRatisConsensusPreserveWhenPurge(ratisConfig.getDataPreserveWhenPurge());
+    CONF.setSchemaRatisConsensusPreserveWhenPurge(ratisConfig.getSchemaPreserveWhenPurge());
 
-    conf.setRatisFirstElectionTimeoutMinMs(ratisConfig.getFirstElectionTimeoutMin());
-    conf.setRatisFirstElectionTimeoutMaxMs(ratisConfig.getFirstElectionTimeoutMax());
+    CONF.setRatisFirstElectionTimeoutMinMs(ratisConfig.getFirstElectionTimeoutMin());
+    CONF.setRatisFirstElectionTimeoutMaxMs(ratisConfig.getFirstElectionTimeoutMax());
 
-    conf.setSchemaRatisLogMax(ratisConfig.getSchemaRegionRatisLogMax());
-    conf.setDataRatisLogMax(ratisConfig.getDataRegionRatisLogMax());
+    CONF.setSchemaRatisLogMax(ratisConfig.getSchemaRegionRatisLogMax());
+    CONF.setDataRatisLogMax(ratisConfig.getDataRegionRatisLogMax());
   }
 
   public void loadCQConfig(TCQConfig cqConfig) {
-    conf.setCqMinEveryIntervalInMs(cqConfig.getCqMinEveryIntervalInMs());
+    CONF.setCqMinEveryIntervalInMs(cqConfig.getCqMinEveryIntervalInMs());
   }
 
   public void reclaimConsensusMemory() {
-    conf.setAllocateMemoryForStorageEngine(
-        conf.getAllocateMemoryForStorageEngine() + conf.getAllocateMemoryForConsensus());
+    CONF.setAllocateMemoryForStorageEngine(
+        CONF.getAllocateMemoryForStorageEngine() + CONF.getAllocateMemoryForConsensus());
     SystemInfo.getInstance().allocateWriteMemory();
   }
 
   public void initClusterSchemaMemoryAllocate() {
-    if (!conf.isDefaultSchemaMemoryConfig()) {
+    if (!CONF.isDefaultSchemaMemoryConfig()) {
       // the config has already been updated as user config in properties file
       return;
     }
 
     // process the default schema memory allocate
 
-    long schemaMemoryTotal = conf.getAllocateMemoryForSchema();
+    long schemaMemoryTotal = CONF.getAllocateMemoryForSchema();
 
     int proportionSum = 10;
     int schemaRegionProportion = 5;
@@ -1975,22 +1751,22 @@ public class IoTDBDescriptor {
     int partitionCacheProportion = 1;
     int lastCacheProportion = 1;
 
-    conf.setAllocateMemoryForSchemaRegion(
+    CONF.setAllocateMemoryForSchemaRegion(
         schemaMemoryTotal * schemaRegionProportion / proportionSum);
     logger.info(
-        "Cluster allocateMemoryForSchemaRegion = {}", conf.getAllocateMemoryForSchemaRegion());
+        "Cluster allocateMemoryForSchemaRegion = {}", CONF.getAllocateMemoryForSchemaRegion());
 
-    conf.setAllocateMemoryForSchemaCache(schemaMemoryTotal * schemaCacheProportion / proportionSum);
+    CONF.setAllocateMemoryForSchemaCache(schemaMemoryTotal * schemaCacheProportion / proportionSum);
     logger.info(
-        "Cluster allocateMemoryForSchemaCache = {}", conf.getAllocateMemoryForSchemaCache());
+        "Cluster allocateMemoryForSchemaCache = {}", CONF.getAllocateMemoryForSchemaCache());
 
-    conf.setAllocateMemoryForPartitionCache(
+    CONF.setAllocateMemoryForPartitionCache(
         schemaMemoryTotal * partitionCacheProportion / proportionSum);
     logger.info(
-        "Cluster allocateMemoryForPartitionCache = {}", conf.getAllocateMemoryForPartitionCache());
+        "Cluster allocateMemoryForPartitionCache = {}", CONF.getAllocateMemoryForPartitionCache());
 
-    conf.setAllocateMemoryForLastCache(schemaMemoryTotal * lastCacheProportion / proportionSum);
-    logger.info("Cluster allocateMemoryForLastCache = {}", conf.getAllocateMemoryForLastCache());
+    CONF.setAllocateMemoryForLastCache(schemaMemoryTotal * lastCacheProportion / proportionSum);
+    logger.info("Cluster allocateMemoryForLastCache = {}", CONF.getAllocateMemoryForLastCache());
   }
 
   private static class IoTDBDescriptorHolder {
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBStartCheck.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBStartCheck.java
index 48b4e30f6f..e523ab8936 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBStartCheck.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBStartCheck.java
@@ -120,16 +120,17 @@ public class IoTDBStartCheck {
 
   static {
     variableParamValueTable.put(
-        INTERNAL_ADDRESS, () -> String.valueOf(config.getInternalAddress()));
-    variableParamValueTable.put(INTERNAL_PORT, () -> String.valueOf(config.getInternalPort()));
-    variableParamValueTable.put(RPC_ADDRESS, () -> String.valueOf(config.getRpcAddress()));
-    variableParamValueTable.put(RPC_PORT, () -> String.valueOf(config.getRpcPort()));
+        INTERNAL_ADDRESS, () -> String.valueOf(config.getDnInternalAddress()));
+    variableParamValueTable.put(INTERNAL_PORT, () -> String.valueOf(config.getDnInternalPort()));
+    variableParamValueTable.put(RPC_ADDRESS, () -> String.valueOf(config.getDnRpcAddress()));
+    variableParamValueTable.put(RPC_PORT, () -> String.valueOf(config.getDnRpcPort()));
     variableParamValueTable.put(
-        MPP_DATA_EXCHANGE_PORT, () -> String.valueOf(config.getMppDataExchangePort()));
+        MPP_DATA_EXCHANGE_PORT, () -> String.valueOf(config.getDnMppDataExchangePort()));
     variableParamValueTable.put(
-        SCHEMA_REGION_CONSENSUS_PORT, () -> String.valueOf(config.getSchemaRegionConsensusPort()));
+        SCHEMA_REGION_CONSENSUS_PORT,
+        () -> String.valueOf(config.getDnSchemaRegionConsensusPort()));
     variableParamValueTable.put(
-        DATA_REGION_CONSENSUS_PORT, () -> String.valueOf(config.getDataRegionConsensusPort()));
+        DATA_REGION_CONSENSUS_PORT, () -> String.valueOf(config.getDnDataRegionConsensusPort()));
   }
   // endregion
   // region params don't need checking, determined by the system
@@ -254,18 +255,18 @@ public class IoTDBStartCheck {
    */
   public void checkDirectory() throws ConfigurationException, IOException {
     // check data dirs
-    for (String dataDir : config.getDataDirs()) {
+    for (String dataDir : config.getDnDataDirs()) {
       DirectoryChecker.getInstance().registerDirectory(new File(dataDir));
     }
     if (config.isClusterMode()
         && config.getDataRegionConsensusProtocolClass().equals(ConsensusFactory.RATIS_CONSENSUS)) {
-      if (DirectoryChecker.getInstance().isCrossDisk(config.getDataDirs())) {
+      if (DirectoryChecker.getInstance().isCrossDisk(config.getDnDataDirs())) {
         throw new ConfigurationException(
             "Configuring the data directories as cross-disk directories is not supported under RatisConsensus(it will be supported in a later version).");
       }
     }
     // check system dir
-    DirectoryChecker.getInstance().registerDirectory(new File(config.getSystemDir()));
+    DirectoryChecker.getInstance().registerDirectory(new File(config.getDnSystemDir()));
     // check WAL dir
     if (!(config.isClusterMode()
             && config
@@ -278,7 +279,7 @@ public class IoTDBStartCheck {
     }
     // in cluster mode, check consensus dir
     if (config.isClusterMode()) {
-      DirectoryChecker.getInstance().registerDirectory(new File(config.getConsensusDir()));
+      DirectoryChecker.getInstance().registerDirectory(new File(config.getDnConsensusDir()));
     }
   }
 
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/adapter/CompressionRatio.java b/server/src/main/java/org/apache/iotdb/db/conf/adapter/CompressionRatio.java
index 4800b87927..871d57c730 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/adapter/CompressionRatio.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/adapter/CompressionRatio.java
@@ -71,7 +71,7 @@ public class CompressionRatio {
   private CompressionRatio() {
     directory =
         SystemFileFactory.INSTANCE.getFile(
-            FilePathUtils.regularizePath(CONFIG.getSystemDir()) + COMPRESSION_RATIO_DIR);
+            FilePathUtils.regularizePath(CONFIG.getDnSystemDir()) + COMPRESSION_RATIO_DIR);
     restore();
   }
 
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/directories/DirectoryManager.java b/server/src/main/java/org/apache/iotdb/db/conf/directories/DirectoryManager.java
index 4b0d1471a7..e345059c8c 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/directories/DirectoryManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/directories/DirectoryManager.java
@@ -48,7 +48,7 @@ public class DirectoryManager {
 
   private DirectoryManager() {
     sequenceFileFolders =
-        new ArrayList<>(Arrays.asList(IoTDBDescriptor.getInstance().getConfig().getDataDirs()));
+        new ArrayList<>(Arrays.asList(IoTDBDescriptor.getInstance().getConfig().getDnDataDirs()));
     for (int i = 0; i < sequenceFileFolders.size(); i++) {
       sequenceFileFolders.set(
           i, sequenceFileFolders.get(i) + File.separator + IoTDBConstant.SEQUENCE_FLODER_NAME);
@@ -56,7 +56,7 @@ public class DirectoryManager {
     mkDataDirs(sequenceFileFolders);
 
     unsequenceFileFolders =
-        new ArrayList<>(Arrays.asList(IoTDBDescriptor.getInstance().getConfig().getDataDirs()));
+        new ArrayList<>(Arrays.asList(IoTDBDescriptor.getInstance().getConfig().getDnDataDirs()));
     for (int i = 0; i < unsequenceFileFolders.size(); i++) {
       unsequenceFileFolders.set(
           i, unsequenceFileFolders.get(i) + File.separator + IoTDBConstant.UNSEQUENCE_FLODER_NAME);
@@ -65,7 +65,7 @@ public class DirectoryManager {
 
     String strategyName = "";
     try {
-      strategyName = IoTDBDescriptor.getInstance().getConfig().getMultiDirStrategyClassName();
+      strategyName = IoTDBDescriptor.getInstance().getConfig().getDnMultiDirStrategyClassName();
       Class<?> clazz = Class.forName(strategyName);
       sequenceStrategy = (DirectoryStrategy) clazz.newInstance();
       sequenceStrategy.setFolders(sequenceFileFolders);
@@ -81,7 +81,7 @@ public class DirectoryManager {
   public void updateFileFolders() throws LoadConfigurationException {
     try {
       List<String> sequenceFileFolders =
-          new ArrayList<>(Arrays.asList(IoTDBDescriptor.getInstance().getConfig().getDataDirs()));
+          new ArrayList<>(Arrays.asList(IoTDBDescriptor.getInstance().getConfig().getDnDataDirs()));
       for (int i = 0; i < sequenceFileFolders.size(); i++) {
         sequenceFileFolders.set(
             i, sequenceFileFolders.get(i) + File.separator + IoTDBConstant.SEQUENCE_FLODER_NAME);
@@ -89,7 +89,7 @@ public class DirectoryManager {
       mkDataDirs(sequenceFileFolders);
 
       List<String> unsequenceFileFolders =
-          new ArrayList<>(Arrays.asList(IoTDBDescriptor.getInstance().getConfig().getDataDirs()));
+          new ArrayList<>(Arrays.asList(IoTDBDescriptor.getInstance().getConfig().getDnDataDirs()));
       for (int i = 0; i < unsequenceFileFolders.size(); i++) {
         unsequenceFileFolders.set(
             i,
@@ -111,7 +111,7 @@ public class DirectoryManager {
   public void updateDirectoryStrategy() throws LoadConfigurationException {
     String strategyName = "";
     try {
-      strategyName = IoTDBDescriptor.getInstance().getConfig().getMultiDirStrategyClassName();
+      strategyName = IoTDBDescriptor.getInstance().getConfig().getDnMultiDirStrategyClassName();
       Class<?> clazz = Class.forName(strategyName);
       sequenceStrategy = (DirectoryStrategy) clazz.newInstance();
       sequenceStrategy.setFolders(sequenceFileFolders);
@@ -180,13 +180,13 @@ public class DirectoryManager {
   @TestOnly
   public void resetFolders() {
     sequenceFileFolders =
-        new ArrayList<>(Arrays.asList(IoTDBDescriptor.getInstance().getConfig().getDataDirs()));
+        new ArrayList<>(Arrays.asList(IoTDBDescriptor.getInstance().getConfig().getDnDataDirs()));
     for (int i = 0; i < sequenceFileFolders.size(); i++) {
       sequenceFileFolders.set(
           i, sequenceFileFolders.get(i) + File.separator + IoTDBConstant.SEQUENCE_FLODER_NAME);
     }
     unsequenceFileFolders =
-        new ArrayList<>(Arrays.asList(IoTDBDescriptor.getInstance().getConfig().getDataDirs()));
+        new ArrayList<>(Arrays.asList(IoTDBDescriptor.getInstance().getConfig().getDnDataDirs()));
     for (int i = 0; i < unsequenceFileFolders.size(); i++) {
       unsequenceFileFolders.set(
           i, unsequenceFileFolders.get(i) + File.separator + IoTDBConstant.UNSEQUENCE_FLODER_NAME);
diff --git a/server/src/main/java/org/apache/iotdb/db/consensus/DataRegionConsensusImpl.java b/server/src/main/java/org/apache/iotdb/db/consensus/DataRegionConsensusImpl.java
index 8ff6585f55..535ffc1960 100644
--- a/server/src/main/java/org/apache/iotdb/db/consensus/DataRegionConsensusImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/consensus/DataRegionConsensusImpl.java
@@ -64,7 +64,7 @@ public class DataRegionConsensusImpl {
                       .setThisNodeId(conf.getDataNodeId())
                       .setThisNode(
                           new TEndPoint(
-                              conf.getInternalAddress(), conf.getDataRegionConsensusPort()))
+                              conf.getDnInternalAddress(), conf.getDnDataRegionConsensusPort()))
                       .setStorageDir(conf.getDataRegionConsensusDir())
                       .setIoTConsensusConfig(
                           IoTConsensusConfig.newBuilder()
diff --git a/server/src/main/java/org/apache/iotdb/db/consensus/SchemaRegionConsensusImpl.java b/server/src/main/java/org/apache/iotdb/db/consensus/SchemaRegionConsensusImpl.java
index eec582234d..f57dd5330b 100644
--- a/server/src/main/java/org/apache/iotdb/db/consensus/SchemaRegionConsensusImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/consensus/SchemaRegionConsensusImpl.java
@@ -61,7 +61,7 @@ public class SchemaRegionConsensusImpl {
                       .setThisNodeId(conf.getDataNodeId())
                       .setThisNode(
                           new TEndPoint(
-                              conf.getInternalAddress(), conf.getSchemaRegionConsensusPort()))
+                              conf.getDnInternalAddress(), conf.getDnSchemaRegionConsensusPort()))
                       .setRatisConfig(
                           RatisConfig.newBuilder()
                               .setSnapshot(
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/StorageEngine.java b/server/src/main/java/org/apache/iotdb/db/engine/StorageEngine.java
index 2ff2f66463..e165ba2d01 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/StorageEngine.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/StorageEngine.java
@@ -107,7 +107,7 @@ public class StorageEngine implements IService {
    * subfolder under the systemDir.
    */
   private final String systemDir =
-      FilePathUtils.regularizePath(config.getSystemDir()) + "databases";
+      FilePathUtils.regularizePath(config.getDnSystemDir()) + "databases";
 
   /** DataRegionId -> DataRegion */
   private final ConcurrentHashMap<DataRegionId, DataRegion> dataRegionMap =
@@ -659,7 +659,7 @@ public class StorageEngine implements IService {
               .deleteWALNode(
                   region.getDatabaseName() + FILE_NAME_SEPARATOR + region.getDataRegionId());
           // delete snapshot
-          for (String dataDir : config.getDataDirs()) {
+          for (String dataDir : config.getDnDataDirs()) {
             File regionSnapshotDir =
                 new File(
                     dataDir + File.separator + IoTDBConstant.SNAPSHOT_FOLDER_NAME,
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/recover/CompactionRecoverTask.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/recover/CompactionRecoverTask.java
index ebd5ac5177..7d1a81a388 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/recover/CompactionRecoverTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/recover/CompactionRecoverTask.java
@@ -275,7 +275,7 @@ public class CompactionRecoverTask {
    * the file is not found, it will return null.
    */
   private File getFileFromDataDirs(String filePath) {
-    String[] dataDirs = IoTDBDescriptor.getInstance().getConfig().getDataDirs();
+    String[] dataDirs = IoTDBDescriptor.getInstance().getConfig().getDnDataDirs();
     for (String dataDir : dataDirs) {
       File f = new File(dataDir, filePath);
       if (f.exists()) {
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/log/TsFileIdentifier.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/log/TsFileIdentifier.java
index 8897a811fc..c710adcd7f 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/log/TsFileIdentifier.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/utils/log/TsFileIdentifier.java
@@ -180,7 +180,7 @@ public class TsFileIdentifier {
    * the file is not found, it will return null.
    */
   public File getFileFromDataDirs() {
-    String[] dataDirs = IoTDBDescriptor.getInstance().getConfig().getDataDirs();
+    String[] dataDirs = IoTDBDescriptor.getInstance().getConfig().getDnDataDirs();
     String partialFileString =
         (sequence ? IoTDBConstant.SEQUENCE_FLODER_NAME : IoTDBConstant.UNSEQUENCE_FLODER_NAME)
             + File.separator
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/settle/SettleLog.java b/server/src/main/java/org/apache/iotdb/db/engine/settle/SettleLog.java
index 8eb102a4ae..be29a3a0b7 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/settle/SettleLog.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/settle/SettleLog.java
@@ -42,7 +42,7 @@ public class SettleLog {
   private static BufferedWriter settleLogWriter;
   private static File settleLogPath = // the path of upgrade log is "data/system/settle/settle.txt"
       SystemFileFactory.INSTANCE.getFile(
-          SystemFileFactory.INSTANCE.getFile(config.getSystemDir(), SETTLE_DIR), SETTLE_LOG_NAME);
+          SystemFileFactory.INSTANCE.getFile(config.getDnSystemDir(), SETTLE_DIR), SETTLE_LOG_NAME);
 
   private static final ReadWriteLock settleLogFileLock = new ReentrantReadWriteLock();
 
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/snapshot/SnapshotLoader.java b/server/src/main/java/org/apache/iotdb/db/engine/snapshot/SnapshotLoader.java
index a5922082d3..b95d92c4fb 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/snapshot/SnapshotLoader.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/snapshot/SnapshotLoader.java
@@ -60,7 +60,7 @@ public class SnapshotLoader {
   private DataRegion loadSnapshot() {
     try {
       return new DataRegion(
-          IoTDBDescriptor.getInstance().getConfig().getSystemDir()
+          IoTDBDescriptor.getInstance().getConfig().getDnSystemDir()
               + File.separator
               + "databases"
               + File.separator
@@ -171,7 +171,7 @@ public class SnapshotLoader {
   }
 
   private void deleteAllFilesInDataDirs() throws IOException {
-    String[] dataDirPaths = IoTDBDescriptor.getInstance().getConfig().getDataDirs();
+    String[] dataDirPaths = IoTDBDescriptor.getInstance().getConfig().getDnDataDirs();
 
     // delete
     List<File> timePartitions = new ArrayList<>();
@@ -250,7 +250,7 @@ public class SnapshotLoader {
     }
     FolderManager folderManager =
         new FolderManager(
-            Arrays.asList(IoTDBDescriptor.getInstance().getConfig().getDataDirs()),
+            Arrays.asList(IoTDBDescriptor.getInstance().getConfig().getDnDataDirs()),
             DirectoryStrategyType.SEQUENCE_STRATEGY);
     File[] timePartitionFolders = seqFileDir.listFiles();
     if (timePartitionFolders != null) {
@@ -318,7 +318,7 @@ public class SnapshotLoader {
     String snapshotId = logAnalyzer.getSnapshotId();
     int loggedFileNum = logAnalyzer.getTotalFileCountInSnapshot();
     Set<String> fileInfoSet = logAnalyzer.getFileInfoSet();
-    String[] dataDirs = IoTDBDescriptor.getInstance().getConfig().getDataDirs();
+    String[] dataDirs = IoTDBDescriptor.getInstance().getConfig().getDnDataDirs();
     int fileCnt = 0;
     for (String dataDir : dataDirs) {
       String snapshotDir =
@@ -454,7 +454,7 @@ public class SnapshotLoader {
     SnapshotLogAnalyzer analyzer = new SnapshotLogAnalyzer(logFile);
     try {
       String snapshotId = analyzer.getSnapshotId();
-      String[] dataDirs = IoTDBDescriptor.getInstance().getConfig().getDataDirs();
+      String[] dataDirs = IoTDBDescriptor.getInstance().getConfig().getDnDataDirs();
       List<File> fileList = new LinkedList<>();
       for (String dataDir : dataDirs) {
         String snapshotDir =
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/snapshot/SnapshotTaker.java b/server/src/main/java/org/apache/iotdb/db/engine/snapshot/SnapshotTaker.java
index c801e40ddd..78a81803a1 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/snapshot/SnapshotTaker.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/snapshot/SnapshotTaker.java
@@ -249,7 +249,7 @@ public class SnapshotTaker {
 
   private void cleanUpWhenFail(String snapshotId) {
     LOGGER.info("Cleaning up snapshot dir for {}", snapshotId);
-    for (String dataDir : IoTDBDescriptor.getInstance().getConfig().getDataDirs()) {
+    for (String dataDir : IoTDBDescriptor.getInstance().getConfig().getDnDataDirs()) {
       File dataDirForThisSnapshot =
           new File(
               dataDir
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/upgrade/UpgradeLog.java b/server/src/main/java/org/apache/iotdb/db/engine/upgrade/UpgradeLog.java
index 1dfb9da2be..1c4159a239 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/upgrade/UpgradeLog.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/upgrade/UpgradeLog.java
@@ -41,7 +41,8 @@ public class UpgradeLog {
   private static BufferedWriter upgradeLogWriter;
   private static File upgradeLogPath =
       SystemFileFactory.INSTANCE.getFile(
-          SystemFileFactory.INSTANCE.getFile(config.getSystemDir(), UPGRADE_DIR), UPGRADE_LOG_NAME);
+          SystemFileFactory.INSTANCE.getFile(config.getDnSystemDir(), UPGRADE_DIR),
+          UPGRADE_LOG_NAME);
 
   public static boolean createUpgradeLog() {
     try {
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/idtable/IDTableManager.java b/server/src/main/java/org/apache/iotdb/db/metadata/idtable/IDTableManager.java
index 41e92f425c..f904bd4e3a 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/idtable/IDTableManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/idtable/IDTableManager.java
@@ -44,7 +44,7 @@ public class IDTableManager {
 
   /** system dir */
   private final String systemDir =
-      FilePathUtils.regularizePath(IoTDBDescriptor.getInstance().getConfig().getSystemDir())
+      FilePathUtils.regularizePath(IoTDBDescriptor.getInstance().getConfig().getDnSystemDir())
           + "databases";
 
   // region IDManager Singleton
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/common/DataNodeEndPoints.java b/server/src/main/java/org/apache/iotdb/db/mpp/common/DataNodeEndPoints.java
index c01fe15946..8cf8055ce9 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/common/DataNodeEndPoints.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/common/DataNodeEndPoints.java
@@ -30,13 +30,13 @@ public class DataNodeEndPoints {
 
   public static final TEndPoint LOCAL_HOST_DATA_BLOCK_ENDPOINT =
       new TEndPoint(
-          IoTDBDescriptor.getInstance().getConfig().getInternalAddress(),
-          IoTDBDescriptor.getInstance().getConfig().getMppDataExchangePort());
+          IoTDBDescriptor.getInstance().getConfig().getDnInternalAddress(),
+          IoTDBDescriptor.getInstance().getConfig().getDnMppDataExchangePort());
 
   public static final TEndPoint LOCAL_HOST_INTERNAL_ENDPOINT =
       new TEndPoint(
-          IoTDBDescriptor.getInstance().getConfig().getInternalAddress(),
-          IoTDBDescriptor.getInstance().getConfig().getInternalPort());
+          IoTDBDescriptor.getInstance().getConfig().getDnInternalAddress(),
+          IoTDBDescriptor.getInstance().getConfig().getDnInternalPort());
 
   public static boolean isSameNode(TEndPoint endPoint) {
     return endPoint.equals(LOCAL_HOST_DATA_BLOCK_ENDPOINT);
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/execution/exchange/MPPDataExchangeService.java b/server/src/main/java/org/apache/iotdb/db/mpp/execution/exchange/MPPDataExchangeService.java
index b28e8f256f..d35a145004 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/execution/exchange/MPPDataExchangeService.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/execution/exchange/MPPDataExchangeService.java
@@ -109,12 +109,12 @@ public class MPPDataExchangeService extends ThriftService implements MPPDataExch
 
   @Override
   public String getBindIP() {
-    return IoTDBDescriptor.getInstance().getConfig().getInternalAddress();
+    return IoTDBDescriptor.getInstance().getConfig().getDnInternalAddress();
   }
 
   @Override
   public int getBindPort() {
-    return IoTDBDescriptor.getInstance().getConfig().getMppDataExchangePort();
+    return IoTDBDescriptor.getInstance().getConfig().getDnMppDataExchangePort();
   }
 
   @Override
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/load/LoadSingleTsFileNode.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/load/LoadSingleTsFileNode.java
index 1c965e5e69..974b1d63b4 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/load/LoadSingleTsFileNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/plan/node/load/LoadSingleTsFileNode.java
@@ -114,8 +114,8 @@ public class LoadSingleTsFileNode extends WritePlanNode {
   }
 
   private boolean isDispatchedToLocal(TEndPoint endPoint) {
-    return IoTDBDescriptor.getInstance().getConfig().getInternalAddress().equals(endPoint.getIp())
-        && IoTDBDescriptor.getInstance().getConfig().getInternalPort() == endPoint.port;
+    return IoTDBDescriptor.getInstance().getConfig().getDnInternalAddress().equals(endPoint.getIp())
+        && IoTDBDescriptor.getInstance().getConfig().getDnInternalPort() == endPoint.port;
   }
 
   public boolean needDecodeTsFile() {
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/scheduler/AbstractFragInsStateTracker.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/scheduler/AbstractFragInsStateTracker.java
index 92d289ee60..5763b96942 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/scheduler/AbstractFragInsStateTracker.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/scheduler/AbstractFragInsStateTracker.java
@@ -61,8 +61,8 @@ public abstract class AbstractFragInsStateTracker implements IFragInstanceStateT
     this.scheduledExecutor = scheduledExecutor;
     this.instances = instances;
     this.internalServiceClientManager = internalServiceClientManager;
-    this.localhostIpAddr = IoTDBDescriptor.getInstance().getConfig().getInternalAddress();
-    this.localhostInternalPort = IoTDBDescriptor.getInstance().getConfig().getInternalPort();
+    this.localhostIpAddr = IoTDBDescriptor.getInstance().getConfig().getDnInternalAddress();
+    this.localhostInternalPort = IoTDBDescriptor.getInstance().getConfig().getDnInternalPort();
   }
 
   public abstract void start();
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/scheduler/FragmentInstanceDispatcherImpl.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/scheduler/FragmentInstanceDispatcherImpl.java
index cedfdbb684..f896427090 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/scheduler/FragmentInstanceDispatcherImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/scheduler/FragmentInstanceDispatcherImpl.java
@@ -82,8 +82,8 @@ public class FragmentInstanceDispatcherImpl implements IFragInstanceDispatcher {
     this.executor = executor;
     this.writeOperationExecutor = writeOperationExecutor;
     this.internalServiceClientManager = internalServiceClientManager;
-    this.localhostIpAddr = IoTDBDescriptor.getInstance().getConfig().getInternalAddress();
-    this.localhostInternalPort = IoTDBDescriptor.getInstance().getConfig().getInternalPort();
+    this.localhostIpAddr = IoTDBDescriptor.getInstance().getConfig().getDnInternalAddress();
+    this.localhostInternalPort = IoTDBDescriptor.getInstance().getConfig().getDnInternalPort();
   }
 
   @Override
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/scheduler/load/LoadTsFileDispatcherImpl.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/scheduler/load/LoadTsFileDispatcherImpl.java
index 418bd8aa99..c7a47d71c7 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/scheduler/load/LoadTsFileDispatcherImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/scheduler/load/LoadTsFileDispatcherImpl.java
@@ -72,8 +72,8 @@ public class LoadTsFileDispatcherImpl implements IFragInstanceDispatcher {
   public LoadTsFileDispatcherImpl(
       IClientManager<TEndPoint, SyncDataNodeInternalServiceClient> internalServiceClientManager) {
     this.internalServiceClientManager = internalServiceClientManager;
-    this.localhostIpAddr = IoTDBDescriptor.getInstance().getConfig().getInternalAddress();
-    this.localhostInternalPort = IoTDBDescriptor.getInstance().getConfig().getInternalPort();
+    this.localhostIpAddr = IoTDBDescriptor.getInstance().getConfig().getDnInternalAddress();
+    this.localhostInternalPort = IoTDBDescriptor.getInstance().getConfig().getDnInternalPort();
     this.executor =
         IoTDBThreadPoolFactory.newCachedThreadPool(LoadTsFileDispatcherImpl.class.getName());
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/rescon/PrimitiveArrayManager.java b/server/src/main/java/org/apache/iotdb/db/rescon/PrimitiveArrayManager.java
index de450341cb..afa9e8f839 100644
--- a/server/src/main/java/org/apache/iotdb/db/rescon/PrimitiveArrayManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/rescon/PrimitiveArrayManager.java
@@ -18,9 +18,9 @@
  */
 package org.apache.iotdb.db.rescon;
 
+import org.apache.iotdb.commons.utils.datastructure.TVListSortAlgorithm;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.utils.datastructure.TVListSortAlgorithm;
 import org.apache.iotdb.tsfile.exception.write.UnSupportedDataTypeException;
 import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
 import org.apache.iotdb.tsfile.utils.Binary;
diff --git a/server/src/main/java/org/apache/iotdb/db/service/DataNode.java b/server/src/main/java/org/apache/iotdb/db/service/DataNode.java
index e3f50f7639..706a8a389e 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/DataNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/DataNode.java
@@ -115,7 +115,7 @@ public class DataNode implements DataNodeMBean {
    */
   private static final int DEFAULT_RETRY = 10;
 
-  private static final long DEFAULT_RETRY_INTERVAL_IN_MS = config.getJoinClusterRetryIntervalMs();
+  private static final long DEFAULT_RETRY_INTERVAL_IN_MS = config.getDnJoinClusterRetryIntervalMs();
 
   private final TEndPoint thisNode = new TEndPoint();
 
@@ -148,7 +148,7 @@ public class DataNode implements DataNodeMBean {
       isFirstStart = prepareDataNode();
 
       // Set target ConfigNodeList from iotdb-datanode.properties file
-      ConfigNodeInfo.getInstance().updateConfigNodeList(config.getTargetConfigNodeList());
+      ConfigNodeInfo.getInstance().updateConfigNodeList(config.getDnTargetConfigNodeList());
 
       // Pull and check system configurations from ConfigNode-leader
       pullAndCheckSystemConfigurations();
@@ -193,7 +193,7 @@ public class DataNode implements DataNodeMBean {
     boolean isFirstStart = IoTDBStartCheck.getInstance().checkIsFirstStart();
 
     // Check target ConfigNodes
-    for (TEndPoint endPoint : config.getTargetConfigNodeList()) {
+    for (TEndPoint endPoint : config.getDnTargetConfigNodeList()) {
       if (endPoint.getIp().equals("0.0.0.0")) {
         throw new StartupException(
             "The ip address of any target_config_node_list couldn't be 0.0.0.0");
@@ -201,8 +201,8 @@ public class DataNode implements DataNodeMBean {
     }
 
     // Set this node
-    thisNode.setIp(config.getInternalAddress());
-    thisNode.setPort(config.getInternalPort());
+    thisNode.setIp(config.getDnInternalAddress());
+    thisNode.setPort(config.getDnInternalPort());
 
     // Startup checks
     StartupChecks checks = new StartupChecks(IoTDBConstant.DN_ROLE).withDefaultTest();
@@ -561,15 +561,15 @@ public class DataNode implements DataNodeMBean {
   private TDataNodeLocation generateDataNodeLocation() {
     TDataNodeLocation location = new TDataNodeLocation();
     location.setDataNodeId(config.getDataNodeId());
-    location.setClientRpcEndPoint(new TEndPoint(config.getRpcAddress(), config.getRpcPort()));
+    location.setClientRpcEndPoint(new TEndPoint(config.getDnRpcAddress(), config.getDnRpcPort()));
     location.setInternalEndPoint(
-        new TEndPoint(config.getInternalAddress(), config.getInternalPort()));
+        new TEndPoint(config.getDnInternalAddress(), config.getDnInternalPort()));
     location.setMPPDataExchangeEndPoint(
-        new TEndPoint(config.getInternalAddress(), config.getMppDataExchangePort()));
+        new TEndPoint(config.getDnInternalAddress(), config.getDnMppDataExchangePort()));
     location.setDataRegionConsensusEndPoint(
-        new TEndPoint(config.getInternalAddress(), config.getDataRegionConsensusPort()));
+        new TEndPoint(config.getDnInternalAddress(), config.getDnDataRegionConsensusPort()));
     location.setSchemaRegionConsensusEndPoint(
-        new TEndPoint(config.getInternalAddress(), config.getSchemaRegionConsensusPort()));
+        new TEndPoint(config.getDnInternalAddress(), config.getDnSchemaRegionConsensusPort()));
     return location;
   }
 
diff --git a/server/src/main/java/org/apache/iotdb/db/service/DataNodeInternalRPCService.java b/server/src/main/java/org/apache/iotdb/db/service/DataNodeInternalRPCService.java
index b3ba29c387..4f722becea 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/DataNodeInternalRPCService.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/DataNodeInternalRPCService.java
@@ -78,12 +78,12 @@ public class DataNodeInternalRPCService extends ThriftService
 
   @Override
   public String getBindIP() {
-    return IoTDBDescriptor.getInstance().getConfig().getInternalAddress();
+    return IoTDBDescriptor.getInstance().getConfig().getDnInternalAddress();
   }
 
   @Override
   public int getBindPort() {
-    return IoTDBDescriptor.getInstance().getConfig().getInternalPort();
+    return IoTDBDescriptor.getInstance().getConfig().getDnInternalPort();
   }
 
   private static class DataNodeInternalRPCServiceHolder {
diff --git a/server/src/main/java/org/apache/iotdb/db/service/InfluxDBRPCService.java b/server/src/main/java/org/apache/iotdb/db/service/InfluxDBRPCService.java
index bbd0c0f1ea..dd0e4d513b 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/InfluxDBRPCService.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/InfluxDBRPCService.java
@@ -68,7 +68,7 @@ public class InfluxDBRPCService extends ThriftService implements InfluxDBRPCServ
               processor,
               getID().getName(),
               ThreadName.INFLUXDB_RPC_PROCESSOR.getName(),
-              config.getRpcAddress(),
+              config.getDnRpcAddress(),
               config.getInfluxDBRpcPort(),
               config.getDnRpcMaxConcurrentClientNum(),
               config.getThriftServerAwaitTimeForStopService(),
@@ -82,7 +82,7 @@ public class InfluxDBRPCService extends ThriftService implements InfluxDBRPCServ
 
   @Override
   public String getBindIP() {
-    return IoTDBDescriptor.getInstance().getConfig().getRpcAddress();
+    return IoTDBDescriptor.getInstance().getConfig().getDnRpcAddress();
   }
 
   @Override
diff --git a/server/src/main/java/org/apache/iotdb/db/service/RPCService.java b/server/src/main/java/org/apache/iotdb/db/service/RPCService.java
index 55e72401b4..5fcf98801a 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/RPCService.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/RPCService.java
@@ -63,8 +63,8 @@ public class RPCService extends ThriftService implements RPCServiceMBean {
               processor,
               getID().getName(),
               ThreadName.CLIENT_RPC_PROCESSOR.getName(),
-              config.getRpcAddress(),
-              config.getRpcPort(),
+              config.getDnRpcAddress(),
+              config.getDnRpcPort(),
               config.getDnRpcMaxConcurrentClientNum(),
               config.getThriftServerAwaitTimeForStopService(),
               new RPCServiceThriftHandler(impl),
@@ -78,12 +78,12 @@ public class RPCService extends ThriftService implements RPCServiceMBean {
 
   @Override
   public String getBindIP() {
-    return IoTDBDescriptor.getInstance().getConfig().getRpcAddress();
+    return IoTDBDescriptor.getInstance().getConfig().getDnRpcAddress();
   }
 
   @Override
   public int getBindPort() {
-    return IoTDBDescriptor.getInstance().getConfig().getRpcPort();
+    return IoTDBDescriptor.getInstance().getConfig().getDnRpcPort();
   }
 
   @Override
diff --git a/server/src/main/java/org/apache/iotdb/db/service/TemporaryQueryDataFileService.java b/server/src/main/java/org/apache/iotdb/db/service/TemporaryQueryDataFileService.java
index 4cd00dde1a..0f42a0720f 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/TemporaryQueryDataFileService.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/TemporaryQueryDataFileService.java
@@ -43,7 +43,7 @@ public class TemporaryQueryDataFileService implements IService {
   private static final Logger logger = LoggerFactory.getLogger(TemporaryQueryDataFileService.class);
 
   private static final String TEMPORARY_FILE_DIR =
-      IoTDBDescriptor.getInstance().getConfig().getSystemDir()
+      IoTDBDescriptor.getInstance().getConfig().getDnSystemDir()
           + File.separator
           + "udf"
           + File.separator
diff --git a/server/src/main/java/org/apache/iotdb/db/service/metrics/SystemMetrics.java b/server/src/main/java/org/apache/iotdb/db/service/metrics/SystemMetrics.java
index 7d14b5d9b3..1d77059475 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/metrics/SystemMetrics.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/metrics/SystemMetrics.java
@@ -186,7 +186,7 @@ public class SystemMetrics implements IMetricSet {
   }
 
   private void collectSystemDiskInfo(AbstractMetricService metricService) {
-    String[] dataDirs = IoTDBDescriptor.getInstance().getConfig().getDataDirs();
+    String[] dataDirs = IoTDBDescriptor.getInstance().getConfig().getDnDataDirs();
     for (String dataDir : dataDirs) {
       Path path = Paths.get(dataDir);
       FileStore fileStore = null;
diff --git a/server/src/main/java/org/apache/iotdb/db/utils/OpenFileNumUtil.java b/server/src/main/java/org/apache/iotdb/db/utils/OpenFileNumUtil.java
index d4fd49b76f..0f3e89d607 100644
--- a/server/src/main/java/org/apache/iotdb/db/utils/OpenFileNumUtil.java
+++ b/server/src/main/java/org/apache/iotdb/db/utils/OpenFileNumUtil.java
@@ -269,7 +269,7 @@ public class OpenFileNumUtil {
     SEQUENCE_FILE_OPEN_NUM(directoryManager.getAllSequenceFileFolders()),
     UNSEQUENCE_FILE_OPEN_NUM(directoryManager.getAllUnSequenceFileFolders()),
     WAL_OPEN_FILE_NUM(Arrays.asList(commonConfig.getWalDirs())),
-    DIGEST_OPEN_FILE_NUM(Collections.singletonList(config.getSystemDir())),
+    DIGEST_OPEN_FILE_NUM(Collections.singletonList(config.getDnSystemDir())),
     SOCKET_OPEN_FILE_NUM(null);
 
     // path is a list of directory corresponding to the OpenFileNumStatistics enum element,
diff --git a/server/src/test/java/org/apache/iotdb/db/conf/adapter/CompressionRatioTest.java b/server/src/test/java/org/apache/iotdb/db/conf/adapter/CompressionRatioTest.java
index 8ae261e7e5..2d2ac9fe46 100644
--- a/server/src/test/java/org/apache/iotdb/db/conf/adapter/CompressionRatioTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/conf/adapter/CompressionRatioTest.java
@@ -42,7 +42,8 @@ public class CompressionRatioTest {
   private CompressionRatio compressionRatio = CompressionRatio.getInstance();
 
   private static final String directory =
-      FilePathUtils.regularizePath(CONFIG.getSystemDir()) + CompressionRatio.COMPRESSION_RATIO_DIR;
+      FilePathUtils.regularizePath(CONFIG.getDnSystemDir())
+          + CompressionRatio.COMPRESSION_RATIO_DIR;
 
   @Before
   public void setUp() throws Exception {
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/TsFileIdentifierUT.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/TsFileIdentifierUT.java
index b05c34d0d2..ecee4c5f04 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/TsFileIdentifierUT.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/TsFileIdentifierUT.java
@@ -134,7 +134,7 @@ public class TsFileIdentifierUT {
             + "0"
             + File.separator
             + "100-10-5-1.tsfile";
-    String[] dataDirs = IoTDBDescriptor.getInstance().getConfig().getDataDirs();
+    String[] dataDirs = IoTDBDescriptor.getInstance().getConfig().getDnDataDirs();
     File file = new File(dataDirs[0], firstPath);
 
     if (file.exists()) {
@@ -157,7 +157,7 @@ public class TsFileIdentifierUT {
   @Test
   public void testGetInfoFromFileFromMultiDirs() throws Exception {
     IoTDBConfig config = IoTDBDescriptor.getInstance().getConfig();
-    String[] originDataDirs = config.getDataDirs();
+    String[] originDataDirs = config.getDnDataDirs();
     Class configClass = config.getClass();
     Field dataDirField = configClass.getDeclaredField("dataDirs");
     dataDirField.setAccessible(true);
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/compaction/recover/SizeTieredCompactionRecoverTest.java b/server/src/test/java/org/apache/iotdb/db/engine/compaction/recover/SizeTieredCompactionRecoverTest.java
index d65c9eed31..8f53ed95dd 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/compaction/recover/SizeTieredCompactionRecoverTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/compaction/recover/SizeTieredCompactionRecoverTest.java
@@ -126,7 +126,7 @@ public class SizeTieredCompactionRecoverTest {
   @Before
   public void setUp() throws Exception {
     CompactionTaskManager.getInstance().start();
-    originDataDirs = config.getDataDirs();
+    originDataDirs = config.getDnDataDirs();
     setDataDirs(testDataDirs);
     if (!new File(SEQ_FILE_DIR).exists()) {
       Assert.assertTrue(new File(SEQ_FILE_DIR).mkdirs());
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/snapshot/IoTDBSnapshotTest.java b/server/src/test/java/org/apache/iotdb/db/engine/snapshot/IoTDBSnapshotTest.java
index 8c9f5f8ff0..d9f8fcfda5 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/snapshot/IoTDBSnapshotTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/snapshot/IoTDBSnapshotTest.java
@@ -94,8 +94,8 @@ public class IoTDBSnapshotTest {
   @Test
   public void testCreateSnapshot()
       throws IOException, WriteProcessException, DataRegionException, DirectoryNotLegalException {
-    String[] originDataDirs = IoTDBDescriptor.getInstance().getConfig().getDataDirs();
-    IoTDBDescriptor.getInstance().getConfig().setDataDirs(testDataDirs);
+    String[] originDataDirs = IoTDBDescriptor.getInstance().getConfig().getDnDataDirs();
+    IoTDBDescriptor.getInstance().getConfig().setDnDataDirs(testDataDirs);
     DirectoryManager.getInstance().resetFolders();
     try {
       List<TsFileResource> resources = writeTsFiles();
@@ -120,7 +120,7 @@ public class IoTDBSnapshotTest {
         FileUtils.recursiveDeleteFolder(snapshotDir.getAbsolutePath());
       }
     } finally {
-      IoTDBDescriptor.getInstance().getConfig().setDataDirs(originDataDirs);
+      IoTDBDescriptor.getInstance().getConfig().setDnDataDirs(originDataDirs);
       DirectoryManager.getInstance().resetFolders();
     }
   }
@@ -128,8 +128,8 @@ public class IoTDBSnapshotTest {
   @Test
   public void testCreateSnapshotWithUnclosedTsFile()
       throws IOException, WriteProcessException, DirectoryNotLegalException {
-    String[] originDataDirs = IoTDBDescriptor.getInstance().getConfig().getDataDirs();
-    IoTDBDescriptor.getInstance().getConfig().setDataDirs(testDataDirs);
+    String[] originDataDirs = IoTDBDescriptor.getInstance().getConfig().getDnDataDirs();
+    IoTDBDescriptor.getInstance().getConfig().setDnDataDirs(testDataDirs);
     DirectoryManager.getInstance().resetFolders();
     try {
       List<TsFileResource> resources = writeTsFiles();
@@ -156,7 +156,7 @@ public class IoTDBSnapshotTest {
         FileUtils.recursiveDeleteFolder(snapshotDir.getAbsolutePath());
       }
     } finally {
-      IoTDBDescriptor.getInstance().getConfig().setDataDirs(originDataDirs);
+      IoTDBDescriptor.getInstance().getConfig().setDnDataDirs(originDataDirs);
       DirectoryManager.getInstance().resetFolders();
     }
   }
@@ -164,8 +164,8 @@ public class IoTDBSnapshotTest {
   @Test
   public void testLoadSnapshot()
       throws IOException, WriteProcessException, DataRegionException, DirectoryNotLegalException {
-    String[] originDataDirs = IoTDBDescriptor.getInstance().getConfig().getDataDirs();
-    IoTDBDescriptor.getInstance().getConfig().setDataDirs(testDataDirs);
+    String[] originDataDirs = IoTDBDescriptor.getInstance().getConfig().getDnDataDirs();
+    IoTDBDescriptor.getInstance().getConfig().setDnDataDirs(testDataDirs);
     DirectoryManager.getInstance().resetFolders();
     try {
       List<TsFileResource> resources = writeTsFiles();
@@ -186,7 +186,7 @@ public class IoTDBSnapshotTest {
         FileUtils.recursiveDeleteFolder(snapshotDir.getAbsolutePath());
       }
     } finally {
-      IoTDBDescriptor.getInstance().getConfig().setDataDirs(originDataDirs);
+      IoTDBDescriptor.getInstance().getConfig().setDnDataDirs(originDataDirs);
       DirectoryManager.getInstance().resetFolders();
     }
   }
@@ -195,7 +195,7 @@ public class IoTDBSnapshotTest {
   public void testGetSnapshotFile() throws IOException {
     File tsFile =
         new File(
-            IoTDBDescriptor.getInstance().getConfig().getDataDirs()[0]
+            IoTDBDescriptor.getInstance().getConfig().getDnDataDirs()[0]
                 + File.separator
                 + "sequence"
                 + File.separator
@@ -213,7 +213,7 @@ public class IoTDBSnapshotTest {
         new SnapshotTaker(region).getSnapshotFilePathForTsFile(tsFile, "test-snapshotId");
     Assert.assertEquals(
         new File(
-                IoTDBDescriptor.getInstance().getConfig().getDataDirs()[0]
+                IoTDBDescriptor.getInstance().getConfig().getDnDataDirs()[0]
                     + File.separator
                     + "snapshot"
                     + File.separator
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/TTLTest.java b/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/TTLTest.java
index e3efd99450..aa679b1c70 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/TTLTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/TTLTest.java
@@ -87,7 +87,7 @@ public class TTLTest {
     EnvironmentUtils.envSetUp();
     dataRegion =
         new DataRegion(
-            IoTDBDescriptor.getInstance().getConfig().getSystemDir(),
+            IoTDBDescriptor.getInstance().getConfig().getDnSystemDir(),
             String.valueOf(dataRegionId1.getId()),
             new DirectFlushPolicy(),
             sg1);
diff --git a/server/src/test/java/org/apache/iotdb/db/mpp/execution/exchange/SinkHandleTest.java b/server/src/test/java/org/apache/iotdb/db/mpp/execution/exchange/SinkHandleTest.java
index 0c8ebf9f73..cf63ced024 100644
--- a/server/src/test/java/org/apache/iotdb/db/mpp/execution/exchange/SinkHandleTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/mpp/execution/exchange/SinkHandleTest.java
@@ -52,7 +52,8 @@ public class SinkHandleTest {
     final long mockTsBlockSize = 128 * 1024L;
     final int numOfMockTsBlock = 1;
     final TEndPoint remoteEndpoint =
-        new TEndPoint("remote", IoTDBDescriptor.getInstance().getConfig().getMppDataExchangePort());
+        new TEndPoint(
+            "remote", IoTDBDescriptor.getInstance().getConfig().getDnMppDataExchangePort());
     final TFragmentInstanceId remoteFragmentInstanceId = new TFragmentInstanceId(queryId, 0, "0");
     final String remotePlanNodeId = "exchange_0";
     final String localPlanNodeId = "fragmentSink_0";
@@ -190,7 +191,8 @@ public class SinkHandleTest {
     final long mockTsBlockSize = 128 * 1024L;
     final int numOfMockTsBlock = 1;
     final TEndPoint remoteEndpoint =
-        new TEndPoint("remote", IoTDBDescriptor.getInstance().getConfig().getMppDataExchangePort());
+        new TEndPoint(
+            "remote", IoTDBDescriptor.getInstance().getConfig().getDnMppDataExchangePort());
     final TFragmentInstanceId remoteFragmentInstanceId = new TFragmentInstanceId(queryId, 0, "0");
     final String remotePlanNodeId = "exchange_0";
     final String localPlanNodeId = "fragmentSink_0";
@@ -390,7 +392,8 @@ public class SinkHandleTest {
     final long mockTsBlockSize = 1024L * 1024L;
     final int numOfMockTsBlock = 1;
     final TEndPoint remoteEndpoint =
-        new TEndPoint("remote", IoTDBDescriptor.getInstance().getConfig().getMppDataExchangePort());
+        new TEndPoint(
+            "remote", IoTDBDescriptor.getInstance().getConfig().getDnMppDataExchangePort());
     final TFragmentInstanceId remoteFragmentInstanceId = new TFragmentInstanceId(queryId, 0, "0");
     final String remotePlanNodeId = "exchange_0";
     final String localPlanNodeId = "fragmentSink_0";
@@ -502,7 +505,8 @@ public class SinkHandleTest {
     final long mockTsBlockSize = 1024L * 1024L;
     final int numOfMockTsBlock = 1;
     final TEndPoint remoteEndpoint =
-        new TEndPoint("remote", IoTDBDescriptor.getInstance().getConfig().getMppDataExchangePort());
+        new TEndPoint(
+            "remote", IoTDBDescriptor.getInstance().getConfig().getDnMppDataExchangePort());
     final TFragmentInstanceId remoteFragmentInstanceId = new TFragmentInstanceId(queryId, 0, "0");
     final String remotePlanNodeId = "exchange_0";
     final String localPlanNodeId = "fragmentSink_0";
diff --git a/server/src/test/java/org/apache/iotdb/db/mpp/execution/exchange/SourceHandleTest.java b/server/src/test/java/org/apache/iotdb/db/mpp/execution/exchange/SourceHandleTest.java
index 1a5ad7560f..04a9dc8d16 100644
--- a/server/src/test/java/org/apache/iotdb/db/mpp/execution/exchange/SourceHandleTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/mpp/execution/exchange/SourceHandleTest.java
@@ -69,7 +69,8 @@ public class SourceHandleTest {
     final String queryId = "q0";
     final int numOfMockTsBlock = 10;
     final TEndPoint remoteEndpoint =
-        new TEndPoint("remote", IoTDBDescriptor.getInstance().getConfig().getMppDataExchangePort());
+        new TEndPoint(
+            "remote", IoTDBDescriptor.getInstance().getConfig().getDnMppDataExchangePort());
     final TFragmentInstanceId remoteFragmentInstanceId = new TFragmentInstanceId(queryId, 1, "0");
     final String localPlanNodeId = "exchange_0";
     final TFragmentInstanceId localFragmentInstanceId = new TFragmentInstanceId(queryId, 0, "0");
@@ -183,7 +184,8 @@ public class SourceHandleTest {
     final String queryId = "q0";
     final int numOfMockTsBlock = 10;
     final TEndPoint remoteEndpoint =
-        new TEndPoint("remote", IoTDBDescriptor.getInstance().getConfig().getMppDataExchangePort());
+        new TEndPoint(
+            "remote", IoTDBDescriptor.getInstance().getConfig().getDnMppDataExchangePort());
     final TFragmentInstanceId remoteFragmentInstanceId = new TFragmentInstanceId(queryId, 1, "0");
     final String localPlanNodeId = "exchange_0";
     final TFragmentInstanceId localFragmentInstanceId = new TFragmentInstanceId(queryId, 0, "0");
@@ -339,7 +341,8 @@ public class SourceHandleTest {
     final long MOCK_TSBLOCK_SIZE = 1024L * 1024L;
     final int numOfMockTsBlock = 10;
     final TEndPoint remoteEndpoint =
-        new TEndPoint("remote", IoTDBDescriptor.getInstance().getConfig().getMppDataExchangePort());
+        new TEndPoint(
+            "remote", IoTDBDescriptor.getInstance().getConfig().getDnMppDataExchangePort());
     final TFragmentInstanceId remoteFragmentInstanceId = new TFragmentInstanceId(queryId, 1, "0");
     final String localPlanNodeId = "exchange_0";
     final TFragmentInstanceId localFragmentInstanceId = new TFragmentInstanceId(queryId, 0, "0");
@@ -519,7 +522,8 @@ public class SourceHandleTest {
     final long MOCK_TSBLOCK_SIZE = 1024L * 1024L;
     final int numOfMockTsBlock = 10;
     final TEndPoint remoteEndpoint =
-        new TEndPoint("remote", IoTDBDescriptor.getInstance().getConfig().getMppDataExchangePort());
+        new TEndPoint(
+            "remote", IoTDBDescriptor.getInstance().getConfig().getDnMppDataExchangePort());
     final TFragmentInstanceId remoteFragmentInstanceId = new TFragmentInstanceId(queryId, 1, "0");
     final String localPlanNodeId = "exchange_0";
     final TFragmentInstanceId localFragmentInstanceId = new TFragmentInstanceId(queryId, 0, "0");
@@ -598,7 +602,8 @@ public class SourceHandleTest {
     final String queryId = "q0";
     final long MOCK_TSBLOCK_SIZE = 1024L * 1024L;
     final TEndPoint remoteEndpoint =
-        new TEndPoint("remote", IoTDBDescriptor.getInstance().getConfig().getMppDataExchangePort());
+        new TEndPoint(
+            "remote", IoTDBDescriptor.getInstance().getConfig().getDnMppDataExchangePort());
     final TFragmentInstanceId remoteFragmentInstanceId = new TFragmentInstanceId(queryId, 1, "0");
     final String localPlanNodeId = "exchange_0";
     final TFragmentInstanceId localFragmentInstanceId = new TFragmentInstanceId(queryId, 0, "0");
diff --git a/server/src/test/java/org/apache/iotdb/db/service/DataNodeInternalRPCServiceImplTest.java b/server/src/test/java/org/apache/iotdb/db/service/DataNodeInternalRPCServiceImplTest.java
index c06fcf6007..4173f6818a 100644
--- a/server/src/test/java/org/apache/iotdb/db/service/DataNodeInternalRPCServiceImplTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/service/DataNodeInternalRPCServiceImplTest.java
@@ -99,7 +99,7 @@ public class DataNodeInternalRPCServiceImplTest {
     SchemaRegionConsensusImpl.getInstance()
         .deletePeer(
             ConsensusGroupId.Factory.createFromTConsensusGroupId(regionReplicaSet.getRegionId()));
-    FileUtils.deleteFully(new File(conf.getConsensusDir()));
+    FileUtils.deleteFully(new File(conf.getDnConsensusDir()));
   }
 
   @AfterClass
@@ -324,14 +324,15 @@ public class DataNodeInternalRPCServiceImplTest {
     List<TDataNodeLocation> dataNodeList = new ArrayList<>();
     dataNodeList.add(
         new TDataNodeLocation()
-            .setClientRpcEndPoint(new TEndPoint(conf.getRpcAddress(), conf.getRpcPort()))
-            .setInternalEndPoint(new TEndPoint(conf.getInternalAddress(), conf.getInternalPort()))
+            .setClientRpcEndPoint(new TEndPoint(conf.getDnRpcAddress(), conf.getDnRpcPort()))
+            .setInternalEndPoint(
+                new TEndPoint(conf.getDnInternalAddress(), conf.getDnInternalPort()))
             .setMPPDataExchangeEndPoint(
-                new TEndPoint(conf.getInternalAddress(), conf.getMppDataExchangePort()))
+                new TEndPoint(conf.getDnInternalAddress(), conf.getDnMppDataExchangePort()))
             .setDataRegionConsensusEndPoint(
-                new TEndPoint(conf.getInternalAddress(), conf.getDataRegionConsensusPort()))
+                new TEndPoint(conf.getDnInternalAddress(), conf.getDnDataRegionConsensusPort()))
             .setSchemaRegionConsensusEndPoint(
-                new TEndPoint(conf.getInternalAddress(), conf.getSchemaRegionConsensusPort())));
+                new TEndPoint(conf.getDnInternalAddress(), conf.getDnSchemaRegionConsensusPort())));
 
     // construct fragmentInstance
     return new TRegionReplicaSet(
diff --git a/server/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java b/server/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java
index d334e495be..ad8b4efe4d 100644
--- a/server/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java
+++ b/server/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java
@@ -238,11 +238,11 @@ public class EnvironmentUtils {
       cleanDir(path);
     }
     // delete system info
-    cleanDir(config.getSystemDir());
+    cleanDir(config.getDnSystemDir());
     // delete query
     cleanDir(config.getQueryDir());
     // delete tracing
-    cleanDir(config.getTracingDir());
+    cleanDir(config.getDnTracingDir());
     // delete ulog
     cleanDir(config.getUdfDir());
     // delete tlog
@@ -260,7 +260,7 @@ public class EnvironmentUtils {
     // delete sync dir
     cleanDir(commonConfig.getSyncDir());
     // delete data files
-    for (String dataDir : config.getDataDirs()) {
+    for (String dataDir : config.getDnDataDirs()) {
       cleanDir(dataDir);
     }
   }
@@ -328,9 +328,9 @@ public class EnvironmentUtils {
       createDir(path);
     }
     // create database
-    createDir(config.getSystemDir());
+    createDir(config.getDnSystemDir());
     // create sg dir
-    String sgDir = FilePathUtils.regularizePath(config.getSystemDir()) + "databases";
+    String sgDir = FilePathUtils.regularizePath(config.getDnSystemDir()) + "databases";
     createDir(sgDir);
     // create sync
     createDir(commonConfig.getSyncDir());
@@ -342,7 +342,7 @@ public class EnvironmentUtils {
       createDir(walDir);
     }
     // create data
-    for (String dataDir : config.getDataDirs()) {
+    for (String dataDir : config.getDnDataDirs()) {
       createDir(dataDir);
     }
     // create user and roles folder
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 a1a5b22f88..7534344401 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
@@ -151,12 +151,6 @@ public class TSFileConfig implements Serializable {
   /** The amount of data iterate each time */
   private int batchSize = 1000;
 
-  /** Maximum capacity of a TsBlock, allow up to two pages. */
-  private int maxTsBlockSizeInBytes = 128 * 1024;
-
-  /** Maximum number of lines in a single TsBlock */
-  private int maxTsBlockLineNumber = 1000;
-
   private int patternMatchingThreshold = 1000000;
 
   /** customizedProperties, this should be empty by default. */