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/11 06:46:00 UTC

[iotdb] 01/01: stash

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 342f3b8e6530ad5d292a8457a4cbbcc2676f8ef4
Author: YongzaoDan <53...@qq.com>
AuthorDate: Wed Jan 11 14:45:50 2023 +0800

    stash
---
 .../resources/conf/iotdb-confignode.properties     |   8 +-
 .../iotdb/confignode/conf/ConfigNodeConfig.java    | 989 +++------------------
 .../confignode/conf/ConfigNodeDescriptor.java      | 485 ++++------
 .../confignode/conf/ConfigNodeStartupCheck.java    |  10 +-
 .../confignode/conf/SystemPropertiesUtils.java     |  19 +-
 .../statemachine/ConfigNodeRegionStateMachine.java |   4 +-
 .../iotdb/confignode/manager/ConfigManager.java    |   4 +-
 .../iotdb/confignode/manager/ConsensusManager.java |   8 +-
 .../manager/load/balancer/RouteBalancer.java       |   5 +-
 .../balancer/router/leader/ILeaderBalancer.java    |   3 -
 .../manager/partition/PartitionManager.java        |   1 +
 .../iotdb/confignode/service/ConfigNode.java       |  16 +-
 .../service/thrift/ConfigNodeRPCService.java       |   6 +-
 .../thrift/ConfigNodeRPCServiceProcessor.java      |   2 +-
 .../iotdb/influxdb/session/InfluxDBSession.java    |   2 +-
 .../db/integration/IoTDBRpcCompressionIT.java      |   4 +-
 .../db/integration/IoTDBSessionTimeoutIT.java      |   4 +-
 .../apache/iotdb/db/integration/IoTDBTtlIT.java    |   4 +-
 .../db/integration/env/StandaloneEnvConfig.java    |   4 +-
 .../resources/conf/iotdb-common.properties         |  16 +-
 .../apache/iotdb/commons/conf/CommonConfig.java    | 967 +++++++++++++++++---
 .../iotdb/commons/conf/CommonDescriptor.java       | 302 +++++--
 .../commons/consensus/ConsensusProtocolClass.java  |  31 +-
 .../loadbalance/LeaderDistributionPolicy.java      |  22 +-
 .../loadbalance}/RegionGroupExtensionPolicy.java   |   2 +-
 .../rocksdb/mnode/RStorageGroupMNode.java          |   2 +-
 .../resources/conf/iotdb-datanode.properties       |   1 +
 .../iotdb/db/client/DataNodeClientPoolFactory.java |  16 +-
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 175 ++--
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  |  58 +-
 .../db/consensus/DataRegionConsensusImpl.java      |  16 +-
 .../iotdb/db/metadata/mtree/ConfigMTree.java       |   2 +-
 .../db/metadata/mtree/store/MemMTreeStore.java     |   2 +-
 .../store/disk/schemafile/MockSchemaFile.java      |   2 +-
 .../mtree/store/disk/schemafile/SchemaFile.java    |   4 +-
 .../execution/exchange/MPPDataExchangeService.java |   2 +-
 .../plan/scheduler/load/LoadTsFileScheduler.java   |   2 +-
 .../db/service/DataNodeInternalRPCService.java     |   2 +-
 .../iotdb/db/service/InfluxDBRPCService.java       |   4 +-
 .../org/apache/iotdb/db/service/RPCService.java    |   4 +-
 .../service/thrift/impl/ClientRPCServiceImpl.java  |   4 +-
 .../db/sync/transport/client/IoTDBSyncClient.java  |   4 +-
 42 files changed, 1581 insertions(+), 1637 deletions(-)

diff --git a/confignode/src/assembly/resources/conf/iotdb-confignode.properties b/confignode/src/assembly/resources/conf/iotdb-confignode.properties
index 932864ba58..1468e7af71 100644
--- a/confignode/src/assembly/resources/conf/iotdb-confignode.properties
+++ b/confignode/src/assembly/resources/conf/iotdb-confignode.properties
@@ -18,7 +18,7 @@
 #
 
 ####################
-### Config Node RPC Configuration
+### ConfigNode RPC Configuration
 ####################
 
 # Used for RPC communication inside cluster.
@@ -35,7 +35,7 @@ cn_internal_port=10710
 cn_consensus_port=10720
 
 ####################
-### 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.
@@ -45,7 +45,7 @@ cn_consensus_port=10720
 cn_target_config_node_list=127.0.0.1:10710
 
 ####################
-### Directory configuration
+### Directory Configuration
 ####################
 
 # system dir
@@ -72,7 +72,7 @@ cn_target_config_node_list=127.0.0.1:10710
 # cn_consensus_dir=data/confignode/consensus
 
 ####################
-### thrift rpc configuration
+### Thrift RPC Configuration
 ####################
 
 # this feature is under development, set this as false before it is done.
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 94e906a9ad..08dc667767 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,256 +19,78 @@
 package org.apache.iotdb.confignode.conf;
 
 import org.apache.iotdb.common.rpc.thrift.TEndPoint;
+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.leader.ILeaderBalancer;
 import org.apache.iotdb.confignode.manager.load.balancer.router.priority.IPriorityBalancer;
-import org.apache.iotdb.confignode.manager.partition.RegionGroupExtensionPolicy;
-import org.apache.iotdb.consensus.ConsensusFactory;
 import org.apache.iotdb.rpc.RpcUtils;
 
 import java.io.File;
+import java.util.concurrent.TimeUnit;
 
 public class ConfigNodeConfig {
 
-  /** ClusterId, the default value "defaultCluster" will be changed after join cluster */
-  private volatile String clusterName = "defaultCluster";
+  /** Config Node RPC Configuration */
+  // Used for RPC communication inside cluster
+  private String cnInternalAddress = "127.0.0.1";
+  // Used for RPC communication inside cluster
+  private int cnInternalPort = 10710;
+  // Used for consensus communication among ConfigNodes inside cluster
+  private int cnConsensusPort = 10720;
 
-  /** ConfigNodeId, the default value -1 will be changed after join cluster */
-  private volatile int configNodeId = -1;
-
-  /** could set ip or hostname */
-  private String internalAddress = "127.0.0.1";
-
-  /** used for communication between data node and config node */
-  private int internalPort = 10710;
-
-  /** used for communication between config node and config node */
-  private int consensusPort = 10720;
-
-  /** Used for connecting to the ConfigNodeGroup */
-  private TEndPoint targetConfigNode = new TEndPoint("127.0.0.1", 10710);
-
-  // TODO: Read from iotdb-confignode.properties
-  private int configNodeRegionId = 0;
-
-  /** ConfigNodeGroup consensus protocol */
-  private String configNodeConsensusProtocolClass = ConsensusFactory.RATIS_CONSENSUS;
-
-  /** Schema region consensus protocol */
-  private String schemaRegionConsensusProtocolClass = ConsensusFactory.RATIS_CONSENSUS;
-
-  /** Default number of SchemaRegion replicas */
-  private int schemaReplicationFactor = 1;
-
-  /** Data region consensus protocol */
-  private String dataRegionConsensusProtocolClass = ConsensusFactory.IOT_CONSENSUS;
-
-  /** Default number of DataRegion replicas */
-  private int dataReplicationFactor = 1;
+  /** Target ConfigNodes */
+  // Used for connecting to the ConfigNodeGroup
+  private TEndPoint cnTargetConfigNode = new TEndPoint("127.0.0.1", 10710);
 
-  /** Number of SeriesPartitionSlots per StorageGroup */
-  private int seriesSlotNum = 10000;
-
-  /** SeriesPartitionSlot executor class */
-  private String seriesPartitionExecutorClass =
-      "org.apache.iotdb.commons.partition.executor.hash.BKDRHashExecutor";
-
-  /** The maximum number of SchemaRegions expected to be managed by each DataNode. */
-  private double schemaRegionPerDataNode = schemaReplicationFactor;
-
-  /** The policy of extension SchemaRegionGroup for each Database. */
-  private RegionGroupExtensionPolicy schemaRegionGroupExtensionPolicy =
-      RegionGroupExtensionPolicy.AUTO;
-
-  /** The number of SchemaRegionGroups for each Database when using CUSTOM extension policy */
-  private int schemaRegionGroupPerDatabase = 1;
-
-  /** The policy of extension DataRegionGroup for each Database. */
-  private RegionGroupExtensionPolicy dataRegionGroupExtensionPolicy =
-      RegionGroupExtensionPolicy.AUTO;
-
-  /** The number of DataRegionGroups for each Database when using CUSTOM extension policy */
-  private int dataRegionGroupPerDatabase = 1;
-
-  /** The maximum number of DataRegions expected to be managed by each DataNode. */
-  private double dataRegionPerProcessor = 1.0;
-
-  /** The least number of SchemaRegionGroup for each Database. */
-  private int leastSchemaRegionGroupNum = 1;
-
-  /** The least number of DataRegionGroup for each Database. */
-  private int leastDataRegionGroupNum = 5;
-
-  /** RegionGroup allocate policy. */
-  private RegionBalancer.RegionGroupAllocatePolicy regionGroupAllocatePolicy =
-      RegionBalancer.RegionGroupAllocatePolicy.GREEDY;
-
-  /**
-   * DataPartition within the same SeriesPartitionSlot will inherit the allocation result of the
-   * previous TimePartitionSlot if set true
-   */
-  private boolean enableDataPartitionInheritPolicy = false;
-
-  /** Max concurrent client number */
-  private int rpcMaxConcurrentClientNum = 65535;
-
-  /** whether to use Snappy compression before sending data through the network */
-  private boolean rpcAdvancedCompressionEnable = false;
-
-  /** max frame size */
-  private int thriftMaxFrameSize = 536870912;
-
-  /** buffer size */
-  private int thriftDefaultBufferSize = RpcUtils.THRIFT_DEFAULT_BUF_CAPACITY;
-
-  /** just for test wait for 60 second by default. */
-  private int thriftServerAwaitTimeForStopService = 60;
-
-  /** System directory, including version file for each database and metadata */
+  /** Directory Configuration */
+  // System directory, including version file for each database and metadata
   private String systemDir =
       ConfigNodeConstant.DATA_DIR + File.separator + IoTDBConstant.SYSTEM_FOLDER_NAME;
 
-  /** Consensus directory, storage consensus protocol logs */
+  // Consensus directory, storage consensus protocol logs
   private String consensusDir =
       ConfigNodeConstant.DATA_DIR + File.separator + ConfigNodeConstant.CONSENSUS_FOLDER;
 
-  /** External lib directory, stores user-uploaded JAR files */
-  private String extLibDir = IoTDBConstant.EXT_FOLDER_NAME;
-
-  /** 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;
-
-  /** External lib directory for trigger, stores user-uploaded JAR files */
-  private String triggerDir =
-      IoTDBConstant.EXT_FOLDER_NAME + File.separator + IoTDBConstant.TRIGGER_FOLDER_NAME;
-
-  /** External temporary lib directory for storing downloaded trigger JAR files */
-  private String triggerTemporaryLibDir =
-      triggerDir + File.separator + IoTDBConstant.TMP_FOLDER_NAME;
-
-  /** Time partition interval in milliseconds */
-  private long timePartitionInterval = 604_800_000;
-
-  /** Procedure Evict ttl */
-  private int procedureCompletedEvictTTL = 800;
-
-  /** Procedure completed clean interval */
-  private int procedureCompletedCleanInterval = 30;
-
-  /** Procedure core worker threads size */
-  private int procedureCoreWorkerThreadsCount =
-      Math.max(Runtime.getRuntime().availableProcessors() / 4, 16);
-
-  /** The heartbeat interval in milliseconds */
-  private long heartbeatIntervalInMs = 1000;
-
-  /** The unknown DataNode detect interval in milliseconds */
-  private long unknownDataNodeDetectInterval = heartbeatIntervalInMs;
-
-  /** The policy of cluster RegionGroups' leader distribution */
-  private String leaderDistributionPolicy = ILeaderBalancer.MIN_COST_FLOW_POLICY;
+  /** Thrift RPC Configuration */
+  private boolean cnRpcThriftCompressionEnable = false;
+  // Whether to use Snappy compression before sending data through the network
+  private boolean cnRpcAdvancedCompressionEnable = false;
+  // Max concurrent client number
+  private int cnRpcMaxConcurrentClientNum = 65535;
+  // Max frame size
+  private int cnThriftMaxFrameSize = 536870912;
+  // Buffer size
+  private int cnThriftInitBufferSize = RpcUtils.THRIFT_DEFAULT_BUF_CAPACITY;
+  // Wait for 20 second by default
+  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;
+
+  /** Metric Configuration */
+  // TODO: Add if necessary
+
+  /** 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;
 
-  /** Whether to enable auto leader balance for Ratis consensus protocol */
-  private boolean enableAutoLeaderBalanceForRatisConsensus = false;
+  // RegionGroup allocate policy
+  private RegionBalancer.RegionGroupAllocatePolicy regionGroupAllocatePolicy =
+      RegionBalancer.RegionGroupAllocatePolicy.GREEDY;
 
-  /** Whether to enable auto leader balance for IoTConsensus protocol */
-  private boolean enableAutoLeaderBalanceForIoTConsensus = true;
+  // The unknown DataNode detect interval in milliseconds
+  private long unknownDataNodeDetectInterval = CommonDescriptor.getInstance().getConfig().getHeartbeatIntervalInMs();
 
-  /** The route priority policy of cluster read/write requests */
+  // The route priority policy of cluster read/write requests
   private String routePriorityPolicy = IPriorityBalancer.LEADER_POLICY;
 
-  private String readConsistencyLevel = "strong";
-
-  /** RatisConsensus protocol, Max size for a single log append request from leader */
-  private long dataRegionRatisConsensusLogAppenderBufferSize = 4 * 1024 * 1024L;
-
-  private long configNodeRatisConsensusLogAppenderBufferSize = 4 * 1024 * 1024L;
-  private long schemaRegionRatisConsensusLogAppenderBufferSize = 4 * 1024 * 1024L;
-
-  /**
-   * RatisConsensus protocol, trigger a snapshot when ratis_snapshot_trigger_threshold logs are
-   * written
-   */
-  private long dataRegionRatisSnapshotTriggerThreshold = 400000L;
-
-  private long configNodeRatisSnapshotTriggerThreshold = 400000L;
-  private long schemaRegionRatisSnapshotTriggerThreshold = 400000L;
-
-  /** RatisConsensus protocol, allow flushing Raft Log asynchronously */
-  private boolean dataRegionRatisLogUnsafeFlushEnable = false;
-
-  private boolean configNodeRatisLogUnsafeFlushEnable = false;
-  private boolean schemaRegionRatisLogUnsafeFlushEnable = false;
-
-  /** RatisConsensus protocol, max capacity of a single Raft Log segment */
-  private long dataRegionRatisLogSegmentSizeMax = 24 * 1024 * 1024L;
-
-  private long configNodeRatisLogSegmentSizeMax = 24 * 1024 * 1024L;
-  private long schemaRegionRatisLogSegmentSizeMax = 24 * 1024 * 1024L;
-  private long configNodeSimpleConsensusLogSegmentSizeMax = 24 * 1024 * 1024L;
-
-  /** RatisConsensus protocol, flow control window for ratis grpc log appender */
-  private long dataRegionRatisGrpcFlowControlWindow = 4 * 1024 * 1024L;
-
-  private long configNodeRatisGrpcFlowControlWindow = 4 * 1024 * 1024L;
-  private long schemaRegionRatisGrpcFlowControlWindow = 4 * 1024 * 1024L;
-
-  /** RatisConsensus protocol, min election timeout for leader election */
-  private long dataRegionRatisRpcLeaderElectionTimeoutMinMs = 2000L;
-
-  private long configNodeRatisRpcLeaderElectionTimeoutMinMs = 2000L;
-  private long schemaRegionRatisRpcLeaderElectionTimeoutMinMs = 2000L;
-
-  /** RatisConsensus protocol, max election timeout for leader election */
-  private long dataRegionRatisRpcLeaderElectionTimeoutMaxMs = 4000L;
-
-  private long configNodeRatisRpcLeaderElectionTimeoutMaxMs = 4000L;
-  private long schemaRegionRatisRpcLeaderElectionTimeoutMaxMs = 4000L;
-
-  /** CQ related */
+  // CQ related
   private int cqSubmitThread = 2;
-
   private long cqMinEveryIntervalInMs = 1_000;
 
-  /** RatisConsensus protocol, request timeout for ratis client */
-  private long dataRegionRatisRequestTimeoutMs = 10000L;
-
-  private long configNodeRatisRequestTimeoutMs = 10000L;
-  private long schemaRegionRatisRequestTimeoutMs = 10000L;
-
-  /** RatisConsensus protocol, exponential back-off retry policy params */
-  private int configNodeRatisMaxRetryAttempts = 10;
-
-  private long configNodeRatisInitialSleepTimeMs = 100;
-  private long configNodeRatisMaxSleepTimeMs = 10000;
-
-  private int dataRegionRatisMaxRetryAttempts = 10;
-  private long dataRegionRatisInitialSleepTimeMs = 100;
-  private long dataRegionRatisMaxSleepTimeMs = 10000;
-
-  private int schemaRegionRatisMaxRetryAttempts = 10;
-  private long schemaRegionRatisInitialSleepTimeMs = 100;
-  private long schemaRegionRatisMaxSleepTimeMs = 10000;
-
-  private long configNodeRatisPreserveLogsWhenPurge = 1000;
-  private long schemaRegionRatisPreserveLogsWhenPurge = 1000;
-  private long dataRegionRatisPreserveLogsWhenPurge = 1000;
-
-  /* first election timeout shares between 3 regions */
-  private long ratisFirstElectionTimeoutMinMs = 50;
-  private long ratisFirstElectionTimeoutMaxMs = 150;
-
-  private long configNodeRatisLogMax = 2L * 1024 * 1024 * 1024; // 2G
-  private long schemaRegionRatisLogMax = 2L * 1024 * 1024 * 1024; // 2G
-  private long dataRegionRatisLogMax = 20L * 1024 * 1024 * 1024; // 20G
-
   public ConfigNodeConfig() {
-    // empty constructor
+    // Empty constructor
   }
 
   public void updatePath() {
@@ -278,11 +100,6 @@ public class ConfigNodeConfig {
   private void formulateFolders() {
     systemDir = addHomeDir(systemDir);
     consensusDir = addHomeDir(consensusDir);
-    extLibDir = addHomeDir(extLibDir);
-    udfDir = addHomeDir(udfDir);
-    udfTemporaryLibDir = addHomeDir(udfTemporaryLibDir);
-    triggerDir = addHomeDir(triggerDir);
-    triggerTemporaryLibDir = addHomeDir(triggerTemporaryLibDir);
   }
 
   private String addHomeDir(String dir) {
@@ -297,116 +114,44 @@ public class ConfigNodeConfig {
     return dir;
   }
 
-  public String getClusterName() {
-    return clusterName;
-  }
-
-  public void setClusterName(String clusterName) {
-    this.clusterName = clusterName;
-  }
-
-  public int getConfigNodeId() {
-    return configNodeId;
-  }
-
-  public void setConfigNodeId(int configNodeId) {
-    this.configNodeId = configNodeId;
-  }
-
-  public String getInternalAddress() {
-    return internalAddress;
-  }
-
-  public void setInternalAddress(String internalAddress) {
-    this.internalAddress = internalAddress;
-  }
-
-  public int getInternalPort() {
-    return internalPort;
-  }
-
-  public void setInternalPort(int internalPort) {
-    this.internalPort = internalPort;
-  }
-
-  public int getConsensusPort() {
-    return consensusPort;
-  }
-
-  public void setConsensusPort(int consensusPort) {
-    this.consensusPort = consensusPort;
-  }
-
-  public TEndPoint getTargetConfigNode() {
-    return targetConfigNode;
+  public String getCnInternalAddress() {
+    return cnInternalAddress;
   }
 
-  public void setTargetConfigNode(TEndPoint targetConfigNode) {
-    this.targetConfigNode = targetConfigNode;
+  public void setCnInternalAddress(String cnInternalAddress) {
+    this.cnInternalAddress = cnInternalAddress;
   }
 
-  public int getConfigNodeRegionId() {
-    return configNodeRegionId;
+  public int getCnInternalPort() {
+    return cnInternalPort;
   }
 
-  public void setConfigNodeRegionId(int configNodeRegionId) {
-    this.configNodeRegionId = configNodeRegionId;
+  public void setCnInternalPort(int cnInternalPort) {
+    this.cnInternalPort = cnInternalPort;
   }
 
-  public int getSeriesSlotNum() {
-    return seriesSlotNum;
+  public int getCnConsensusPort() {
+    return cnConsensusPort;
   }
 
-  public void setSeriesSlotNum(int seriesSlotNum) {
-    this.seriesSlotNum = seriesSlotNum;
+  public void setCnConsensusPort(int cnConsensusPort) {
+    this.cnConsensusPort = cnConsensusPort;
   }
 
-  public String getSeriesPartitionExecutorClass() {
-    return seriesPartitionExecutorClass;
-  }
-
-  public void setSeriesPartitionExecutorClass(String seriesPartitionExecutorClass) {
-    this.seriesPartitionExecutorClass = seriesPartitionExecutorClass;
-  }
-
-  public long getTimePartitionInterval() {
-    return timePartitionInterval;
-  }
-
-  public void setTimePartitionInterval(long timePartitionInterval) {
-    this.timePartitionInterval = timePartitionInterval;
-  }
-
-  public int getCnRpcMaxConcurrentClientNum() {
-    return rpcMaxConcurrentClientNum;
+  public TEndPoint getCnTargetConfigNode() {
+    return cnTargetConfigNode;
   }
 
-  public void setCnRpcMaxConcurrentClientNum(int rpcMaxConcurrentClientNum) {
-    this.rpcMaxConcurrentClientNum = rpcMaxConcurrentClientNum;
+  public void setCnTargetConfigNode(TEndPoint cnTargetConfigNode) {
+    this.cnTargetConfigNode = cnTargetConfigNode;
   }
 
-  public boolean isCnRpcAdvancedCompressionEnable() {
-    return rpcAdvancedCompressionEnable;
-  }
-
-  public void setCnRpcAdvancedCompressionEnable(boolean rpcAdvancedCompressionEnable) {
-    this.rpcAdvancedCompressionEnable = rpcAdvancedCompressionEnable;
-  }
-
-  public int getCnThriftMaxFrameSize() {
-    return thriftMaxFrameSize;
-  }
-
-  public void setCnThriftMaxFrameSize(int thriftMaxFrameSize) {
-    this.thriftMaxFrameSize = thriftMaxFrameSize;
-  }
-
-  public int getCnThriftDefaultBufferSize() {
-    return thriftDefaultBufferSize;
+  public String getSystemDir() {
+    return systemDir;
   }
 
-  public void setCnThriftDefaultBufferSize(int thriftDefaultBufferSize) {
-    this.thriftDefaultBufferSize = thriftDefaultBufferSize;
+  public void setSystemDir(String systemDir) {
+    this.systemDir = systemDir;
   }
 
   public String getConsensusDir() {
@@ -417,219 +162,86 @@ public class ConfigNodeConfig {
     this.consensusDir = consensusDir;
   }
 
-  public String getConfigNodeConsensusProtocolClass() {
-    return configNodeConsensusProtocolClass;
-  }
-
-  public void setConfigNodeConsensusProtocolClass(String configNodeConsensusProtocolClass) {
-    this.configNodeConsensusProtocolClass = configNodeConsensusProtocolClass;
-  }
-
-  public String getSchemaRegionConsensusProtocolClass() {
-    return schemaRegionConsensusProtocolClass;
+  public boolean isCnRpcThriftCompressionEnable() {
+    return cnRpcThriftCompressionEnable;
   }
 
-  public void setSchemaRegionConsensusProtocolClass(String schemaRegionConsensusProtocolClass) {
-    this.schemaRegionConsensusProtocolClass = schemaRegionConsensusProtocolClass;
+  public void setCnRpcThriftCompressionEnable(boolean cnRpcThriftCompressionEnable) {
+    this.cnRpcThriftCompressionEnable = cnRpcThriftCompressionEnable;
   }
 
-  public RegionGroupExtensionPolicy getSchemaRegionGroupExtensionPolicy() {
-    return schemaRegionGroupExtensionPolicy;
-  }
-
-  public void setSchemaRegionGroupExtensionPolicy(
-      RegionGroupExtensionPolicy schemaRegionGroupExtensionPolicy) {
-    this.schemaRegionGroupExtensionPolicy = schemaRegionGroupExtensionPolicy;
-  }
-
-  public int getSchemaRegionGroupPerDatabase() {
-    return schemaRegionGroupPerDatabase;
+  public boolean isCnRpcAdvancedCompressionEnable() {
+    return cnRpcAdvancedCompressionEnable;
   }
 
-  public void setSchemaRegionGroupPerDatabase(int schemaRegionGroupPerDatabase) {
-    this.schemaRegionGroupPerDatabase = schemaRegionGroupPerDatabase;
+  public void setCnRpcAdvancedCompressionEnable(boolean cnRpcAdvancedCompressionEnable) {
+    this.cnRpcAdvancedCompressionEnable = cnRpcAdvancedCompressionEnable;
   }
 
-  public RegionGroupExtensionPolicy getDataRegionGroupExtensionPolicy() {
-    return dataRegionGroupExtensionPolicy;
+  public int getCnRpcMaxConcurrentClientNum() {
+    return cnRpcMaxConcurrentClientNum;
   }
 
-  public void setDataRegionGroupExtensionPolicy(
-      RegionGroupExtensionPolicy dataRegionGroupExtensionPolicy) {
-    this.dataRegionGroupExtensionPolicy = dataRegionGroupExtensionPolicy;
+  public void setCnRpcMaxConcurrentClientNum(int cnRpcMaxConcurrentClientNum) {
+    this.cnRpcMaxConcurrentClientNum = cnRpcMaxConcurrentClientNum;
   }
 
-  public int getDataRegionGroupPerDatabase() {
-    return dataRegionGroupPerDatabase;
+  public int getCnThriftMaxFrameSize() {
+    return cnThriftMaxFrameSize;
   }
 
-  public void setDataRegionGroupPerDatabase(int dataRegionGroupPerDatabase) {
-    this.dataRegionGroupPerDatabase = dataRegionGroupPerDatabase;
+  public void setCnThriftMaxFrameSize(int cnThriftMaxFrameSize) {
+    this.cnThriftMaxFrameSize = cnThriftMaxFrameSize;
   }
 
-  public double getSchemaRegionPerDataNode() {
-    return schemaRegionPerDataNode;
+  public int getCnThriftInitBufferSize() {
+    return cnThriftInitBufferSize;
   }
 
-  public void setSchemaRegionPerDataNode(double schemaRegionPerDataNode) {
-    this.schemaRegionPerDataNode = schemaRegionPerDataNode;
+  public void setCnThriftInitBufferSize(int cnThriftInitBufferSize) {
+    this.cnThriftInitBufferSize = cnThriftInitBufferSize;
   }
 
-  public String getDataRegionConsensusProtocolClass() {
-    return dataRegionConsensusProtocolClass;
+  public int getCnConnectionTimeoutMs() {
+    return cnConnectionTimeoutMs;
   }
 
-  public void setDataRegionConsensusProtocolClass(String dataRegionConsensusProtocolClass) {
-    this.dataRegionConsensusProtocolClass = dataRegionConsensusProtocolClass;
+  public void setCnConnectionTimeoutMs(int cnConnectionTimeoutMs) {
+    this.cnConnectionTimeoutMs = cnConnectionTimeoutMs;
   }
 
-  public double getDataRegionPerProcessor() {
-    return dataRegionPerProcessor;
+  public int getCnSelectorThreadNumsOfClientManager() {
+    return cnSelectorThreadNumsOfClientManager;
   }
 
-  public void setDataRegionPerProcessor(double dataRegionPerProcessor) {
-    this.dataRegionPerProcessor = dataRegionPerProcessor;
+  public void setCnSelectorThreadNumsOfClientManager(int cnSelectorThreadNumsOfClientManager) {
+    this.cnSelectorThreadNumsOfClientManager = cnSelectorThreadNumsOfClientManager;
   }
 
-  public int getLeastSchemaRegionGroupNum() {
-    return leastSchemaRegionGroupNum;
+  public int getConfigNodeId() {
+    return configNodeId;
   }
 
-  public void setLeastSchemaRegionGroupNum(int leastSchemaRegionGroupNum) {
-    this.leastSchemaRegionGroupNum = leastSchemaRegionGroupNum;
+  public void setConfigNodeId(int configNodeId) {
+    this.configNodeId = configNodeId;
   }
 
-  public int getLeastDataRegionGroupNum() {
-    return leastDataRegionGroupNum;
+  public int getConfigNodeRegionId() {
+    return configNodeRegionId;
   }
 
-  public void setLeastDataRegionGroupNum(int leastDataRegionGroupNum) {
-    this.leastDataRegionGroupNum = leastDataRegionGroupNum;
+  public void setConfigNodeRegionId(int configNodeRegionId) {
+    this.configNodeRegionId = configNodeRegionId;
   }
 
   public RegionBalancer.RegionGroupAllocatePolicy getRegionGroupAllocatePolicy() {
     return regionGroupAllocatePolicy;
   }
 
-  public void setRegionAllocateStrategy(
-      RegionBalancer.RegionGroupAllocatePolicy regionGroupAllocatePolicy) {
+  public void setRegionGroupAllocatePolicy(RegionBalancer.RegionGroupAllocatePolicy regionGroupAllocatePolicy) {
     this.regionGroupAllocatePolicy = regionGroupAllocatePolicy;
   }
 
-  public boolean isEnableDataPartitionInheritPolicy() {
-    return enableDataPartitionInheritPolicy;
-  }
-
-  public void setEnableDataPartitionInheritPolicy(boolean enableDataPartitionInheritPolicy) {
-    this.enableDataPartitionInheritPolicy = enableDataPartitionInheritPolicy;
-  }
-
-  public int getThriftServerAwaitTimeForStopService() {
-    return thriftServerAwaitTimeForStopService;
-  }
-
-  public void setThriftServerAwaitTimeForStopService(int thriftServerAwaitTimeForStopService) {
-    this.thriftServerAwaitTimeForStopService = thriftServerAwaitTimeForStopService;
-  }
-
-  public String getSystemDir() {
-    return systemDir;
-  }
-
-  public void setSystemDir(String systemDir) {
-    this.systemDir = systemDir;
-  }
-
-  public String getExtLibDir() {
-    return extLibDir;
-  }
-
-  public void setExtLibDir(String extLibDir) {
-    this.extLibDir = extLibDir;
-  }
-
-  public String getUdfDir() {
-    return udfDir;
-  }
-
-  public void setUdfDir(String udfDir) {
-    this.udfDir = udfDir;
-    updateUdfTemporaryLibDir();
-  }
-
-  public String getUdfTemporaryLibDir() {
-    return udfTemporaryLibDir;
-  }
-
-  public void updateUdfTemporaryLibDir() {
-    this.udfTemporaryLibDir = udfDir + File.separator + IoTDBConstant.TMP_FOLDER_NAME;
-  }
-
-  public String getTriggerDir() {
-    return triggerDir;
-  }
-
-  public void setTriggerDir(String triggerDir) {
-    this.triggerDir = triggerDir;
-    updateTriggerTemporaryLibDir();
-  }
-
-  public String getTriggerTemporaryLibDir() {
-    return triggerTemporaryLibDir;
-  }
-
-  public void updateTriggerTemporaryLibDir() {
-    this.triggerTemporaryLibDir = triggerDir + File.separator + IoTDBConstant.TMP_FOLDER_NAME;
-  }
-
-  public int getSchemaReplicationFactor() {
-    return schemaReplicationFactor;
-  }
-
-  public void setSchemaReplicationFactor(int schemaReplicationFactor) {
-    this.schemaReplicationFactor = schemaReplicationFactor;
-  }
-
-  public int getDataReplicationFactor() {
-    return dataReplicationFactor;
-  }
-
-  public void setDataReplicationFactor(int dataReplicationFactor) {
-    this.dataReplicationFactor = dataReplicationFactor;
-  }
-
-  public int getProcedureCompletedEvictTTL() {
-    return procedureCompletedEvictTTL;
-  }
-
-  public void setProcedureCompletedEvictTTL(int procedureCompletedEvictTTL) {
-    this.procedureCompletedEvictTTL = procedureCompletedEvictTTL;
-  }
-
-  public int getProcedureCompletedCleanInterval() {
-    return procedureCompletedCleanInterval;
-  }
-
-  public void setProcedureCompletedCleanInterval(int procedureCompletedCleanInterval) {
-    this.procedureCompletedCleanInterval = procedureCompletedCleanInterval;
-  }
-
-  public int getProcedureCoreWorkerThreadsCount() {
-    return procedureCoreWorkerThreadsCount;
-  }
-
-  public void setProcedureCoreWorkerThreadsCount(int procedureCoreWorkerThreadsCount) {
-    this.procedureCoreWorkerThreadsCount = procedureCoreWorkerThreadsCount;
-  }
-
-  public long getHeartbeatIntervalInMs() {
-    return heartbeatIntervalInMs;
-  }
-
-  public void setHeartbeatIntervalInMs(long heartbeatIntervalInMs) {
-    this.heartbeatIntervalInMs = heartbeatIntervalInMs;
-  }
-
   public long getUnknownDataNodeDetectInterval() {
     return unknownDataNodeDetectInterval;
   }
@@ -638,32 +250,6 @@ public class ConfigNodeConfig {
     this.unknownDataNodeDetectInterval = unknownDataNodeDetectInterval;
   }
 
-  public String getLeaderDistributionPolicy() {
-    return leaderDistributionPolicy;
-  }
-
-  public void setLeaderDistributionPolicy(String leaderDistributionPolicy) {
-    this.leaderDistributionPolicy = leaderDistributionPolicy;
-  }
-
-  public boolean isEnableAutoLeaderBalanceForRatisConsensus() {
-    return enableAutoLeaderBalanceForRatisConsensus;
-  }
-
-  public void setEnableAutoLeaderBalanceForRatisConsensus(
-      boolean enableAutoLeaderBalanceForRatisConsensus) {
-    this.enableAutoLeaderBalanceForRatisConsensus = enableAutoLeaderBalanceForRatisConsensus;
-  }
-
-  public boolean isEnableAutoLeaderBalanceForIoTConsensus() {
-    return enableAutoLeaderBalanceForIoTConsensus;
-  }
-
-  public void setEnableAutoLeaderBalanceForIoTConsensus(
-      boolean enableAutoLeaderBalanceForIoTConsensus) {
-    this.enableAutoLeaderBalanceForIoTConsensus = enableAutoLeaderBalanceForIoTConsensus;
-  }
-
   public String getRoutePriorityPolicy() {
     return routePriorityPolicy;
   }
@@ -672,214 +258,6 @@ public class ConfigNodeConfig {
     this.routePriorityPolicy = routePriorityPolicy;
   }
 
-  public String getReadConsistencyLevel() {
-    return readConsistencyLevel;
-  }
-
-  public void setReadConsistencyLevel(String readConsistencyLevel) {
-    this.readConsistencyLevel = readConsistencyLevel;
-  }
-
-  public long getDataRegionRatisConsensusLogAppenderBufferSize() {
-    return dataRegionRatisConsensusLogAppenderBufferSize;
-  }
-
-  public void setDataRegionRatisConsensusLogAppenderBufferSize(
-      long dataRegionRatisConsensusLogAppenderBufferSize) {
-    this.dataRegionRatisConsensusLogAppenderBufferSize =
-        dataRegionRatisConsensusLogAppenderBufferSize;
-  }
-
-  public long getDataRegionRatisSnapshotTriggerThreshold() {
-    return dataRegionRatisSnapshotTriggerThreshold;
-  }
-
-  public void setDataRegionRatisSnapshotTriggerThreshold(
-      long dataRegionRatisSnapshotTriggerThreshold) {
-    this.dataRegionRatisSnapshotTriggerThreshold = dataRegionRatisSnapshotTriggerThreshold;
-  }
-
-  public boolean isDataRegionRatisLogUnsafeFlushEnable() {
-    return dataRegionRatisLogUnsafeFlushEnable;
-  }
-
-  public void setDataRegionRatisLogUnsafeFlushEnable(boolean dataRegionRatisLogUnsafeFlushEnable) {
-    this.dataRegionRatisLogUnsafeFlushEnable = dataRegionRatisLogUnsafeFlushEnable;
-  }
-
-  public long getDataRegionRatisLogSegmentSizeMax() {
-    return dataRegionRatisLogSegmentSizeMax;
-  }
-
-  public void setDataRegionRatisLogSegmentSizeMax(long dataRegionRatisLogSegmentSizeMax) {
-    this.dataRegionRatisLogSegmentSizeMax = dataRegionRatisLogSegmentSizeMax;
-  }
-
-  public long getDataRegionRatisGrpcFlowControlWindow() {
-    return dataRegionRatisGrpcFlowControlWindow;
-  }
-
-  public void setDataRegionRatisGrpcFlowControlWindow(long dataRegionRatisGrpcFlowControlWindow) {
-    this.dataRegionRatisGrpcFlowControlWindow = dataRegionRatisGrpcFlowControlWindow;
-  }
-
-  public long getDataRegionRatisRpcLeaderElectionTimeoutMinMs() {
-    return dataRegionRatisRpcLeaderElectionTimeoutMinMs;
-  }
-
-  public void setDataRegionRatisRpcLeaderElectionTimeoutMinMs(
-      long dataRegionRatisRpcLeaderElectionTimeoutMinMs) {
-    this.dataRegionRatisRpcLeaderElectionTimeoutMinMs =
-        dataRegionRatisRpcLeaderElectionTimeoutMinMs;
-  }
-
-  public long getDataRegionRatisRpcLeaderElectionTimeoutMaxMs() {
-    return dataRegionRatisRpcLeaderElectionTimeoutMaxMs;
-  }
-
-  public void setDataRegionRatisRpcLeaderElectionTimeoutMaxMs(
-      long dataRegionRatisRpcLeaderElectionTimeoutMaxMs) {
-    this.dataRegionRatisRpcLeaderElectionTimeoutMaxMs =
-        dataRegionRatisRpcLeaderElectionTimeoutMaxMs;
-  }
-
-  public long getConfigNodeRatisConsensusLogAppenderBufferSize() {
-    return configNodeRatisConsensusLogAppenderBufferSize;
-  }
-
-  public void setConfigNodeRatisConsensusLogAppenderBufferSize(
-      long configNodeRatisConsensusLogAppenderBufferSize) {
-    this.configNodeRatisConsensusLogAppenderBufferSize =
-        configNodeRatisConsensusLogAppenderBufferSize;
-  }
-
-  public long getConfigNodeRatisSnapshotTriggerThreshold() {
-    return configNodeRatisSnapshotTriggerThreshold;
-  }
-
-  public void setConfigNodeRatisSnapshotTriggerThreshold(
-      long configNodeRatisSnapshotTriggerThreshold) {
-    this.configNodeRatisSnapshotTriggerThreshold = configNodeRatisSnapshotTriggerThreshold;
-  }
-
-  public boolean isConfigNodeRatisLogUnsafeFlushEnable() {
-    return configNodeRatisLogUnsafeFlushEnable;
-  }
-
-  public void setConfigNodeRatisLogUnsafeFlushEnable(boolean configNodeRatisLogUnsafeFlushEnable) {
-    this.configNodeRatisLogUnsafeFlushEnable = configNodeRatisLogUnsafeFlushEnable;
-  }
-
-  public long getConfigNodeRatisLogSegmentSizeMax() {
-    return configNodeRatisLogSegmentSizeMax;
-  }
-
-  public void setConfigNodeRatisLogSegmentSizeMax(long configNodeRatisLogSegmentSizeMax) {
-    this.configNodeRatisLogSegmentSizeMax = configNodeRatisLogSegmentSizeMax;
-  }
-
-  public long getConfigNodeRatisGrpcFlowControlWindow() {
-    return configNodeRatisGrpcFlowControlWindow;
-  }
-
-  public void setConfigNodeRatisGrpcFlowControlWindow(long configNodeRatisGrpcFlowControlWindow) {
-    this.configNodeRatisGrpcFlowControlWindow = configNodeRatisGrpcFlowControlWindow;
-  }
-
-  public long getConfigNodeRatisRpcLeaderElectionTimeoutMinMs() {
-    return configNodeRatisRpcLeaderElectionTimeoutMinMs;
-  }
-
-  public void setConfigNodeRatisRpcLeaderElectionTimeoutMinMs(
-      long configNodeRatisRpcLeaderElectionTimeoutMinMs) {
-    this.configNodeRatisRpcLeaderElectionTimeoutMinMs =
-        configNodeRatisRpcLeaderElectionTimeoutMinMs;
-  }
-
-  public long getConfigNodeRatisRpcLeaderElectionTimeoutMaxMs() {
-    return configNodeRatisRpcLeaderElectionTimeoutMaxMs;
-  }
-
-  public void setConfigNodeRatisRpcLeaderElectionTimeoutMaxMs(
-      long configNodeRatisRpcLeaderElectionTimeoutMaxMs) {
-    this.configNodeRatisRpcLeaderElectionTimeoutMaxMs =
-        configNodeRatisRpcLeaderElectionTimeoutMaxMs;
-  }
-
-  public long getSchemaRegionRatisConsensusLogAppenderBufferSize() {
-    return schemaRegionRatisConsensusLogAppenderBufferSize;
-  }
-
-  public void setSchemaRegionRatisConsensusLogAppenderBufferSize(
-      long schemaRegionRatisConsensusLogAppenderBufferSize) {
-    this.schemaRegionRatisConsensusLogAppenderBufferSize =
-        schemaRegionRatisConsensusLogAppenderBufferSize;
-  }
-
-  public long getSchemaRegionRatisSnapshotTriggerThreshold() {
-    return schemaRegionRatisSnapshotTriggerThreshold;
-  }
-
-  public void setSchemaRegionRatisSnapshotTriggerThreshold(
-      long schemaRegionRatisSnapshotTriggerThreshold) {
-    this.schemaRegionRatisSnapshotTriggerThreshold = schemaRegionRatisSnapshotTriggerThreshold;
-  }
-
-  public boolean isSchemaRegionRatisLogUnsafeFlushEnable() {
-    return schemaRegionRatisLogUnsafeFlushEnable;
-  }
-
-  public void setSchemaRegionRatisLogUnsafeFlushEnable(
-      boolean schemaRegionRatisLogUnsafeFlushEnable) {
-    this.schemaRegionRatisLogUnsafeFlushEnable = schemaRegionRatisLogUnsafeFlushEnable;
-  }
-
-  public long getSchemaRegionRatisLogSegmentSizeMax() {
-    return schemaRegionRatisLogSegmentSizeMax;
-  }
-
-  public void setSchemaRegionRatisLogSegmentSizeMax(long schemaRegionRatisLogSegmentSizeMax) {
-    this.schemaRegionRatisLogSegmentSizeMax = schemaRegionRatisLogSegmentSizeMax;
-  }
-
-  public long getConfigNodeSimpleConsensusLogSegmentSizeMax() {
-    return configNodeSimpleConsensusLogSegmentSizeMax;
-  }
-
-  public void setConfigNodeSimpleConsensusLogSegmentSizeMax(
-      long configNodeSimpleConsensusLogSegmentSizeMax) {
-    this.configNodeSimpleConsensusLogSegmentSizeMax = configNodeSimpleConsensusLogSegmentSizeMax;
-  }
-
-  public long getSchemaRegionRatisGrpcFlowControlWindow() {
-    return schemaRegionRatisGrpcFlowControlWindow;
-  }
-
-  public void setSchemaRegionRatisGrpcFlowControlWindow(
-      long schemaRegionRatisGrpcFlowControlWindow) {
-    this.schemaRegionRatisGrpcFlowControlWindow = schemaRegionRatisGrpcFlowControlWindow;
-  }
-
-  public long getSchemaRegionRatisRpcLeaderElectionTimeoutMinMs() {
-    return schemaRegionRatisRpcLeaderElectionTimeoutMinMs;
-  }
-
-  public void setSchemaRegionRatisRpcLeaderElectionTimeoutMinMs(
-      long schemaRegionRatisRpcLeaderElectionTimeoutMinMs) {
-    this.schemaRegionRatisRpcLeaderElectionTimeoutMinMs =
-        schemaRegionRatisRpcLeaderElectionTimeoutMinMs;
-  }
-
-  public long getSchemaRegionRatisRpcLeaderElectionTimeoutMaxMs() {
-    return schemaRegionRatisRpcLeaderElectionTimeoutMaxMs;
-  }
-
-  public void setSchemaRegionRatisRpcLeaderElectionTimeoutMaxMs(
-      long schemaRegionRatisRpcLeaderElectionTimeoutMaxMs) {
-    this.schemaRegionRatisRpcLeaderElectionTimeoutMaxMs =
-        schemaRegionRatisRpcLeaderElectionTimeoutMaxMs;
-  }
-
   public int getCqSubmitThread() {
     return cqSubmitThread;
   }
@@ -895,165 +273,4 @@ public class ConfigNodeConfig {
   public void setCqMinEveryIntervalInMs(long cqMinEveryIntervalInMs) {
     this.cqMinEveryIntervalInMs = cqMinEveryIntervalInMs;
   }
-
-  public long getDataRegionRatisRequestTimeoutMs() {
-    return dataRegionRatisRequestTimeoutMs;
-  }
-
-  public void setDataRegionRatisRequestTimeoutMs(long dataRegionRatisRequestTimeoutMs) {
-    this.dataRegionRatisRequestTimeoutMs = dataRegionRatisRequestTimeoutMs;
-  }
-
-  public long getConfigNodeRatisRequestTimeoutMs() {
-    return configNodeRatisRequestTimeoutMs;
-  }
-
-  public void setConfigNodeRatisRequestTimeoutMs(long configNodeRatisRequestTimeoutMs) {
-    this.configNodeRatisRequestTimeoutMs = configNodeRatisRequestTimeoutMs;
-  }
-
-  public long getSchemaRegionRatisRequestTimeoutMs() {
-    return schemaRegionRatisRequestTimeoutMs;
-  }
-
-  public void setSchemaRegionRatisRequestTimeoutMs(long schemaRegionRatisRequestTimeoutMs) {
-    this.schemaRegionRatisRequestTimeoutMs = schemaRegionRatisRequestTimeoutMs;
-  }
-
-  public int getConfigNodeRatisMaxRetryAttempts() {
-    return configNodeRatisMaxRetryAttempts;
-  }
-
-  public void setConfigNodeRatisMaxRetryAttempts(int configNodeRatisMaxRetryAttempts) {
-    this.configNodeRatisMaxRetryAttempts = configNodeRatisMaxRetryAttempts;
-  }
-
-  public long getConfigNodeRatisInitialSleepTimeMs() {
-    return configNodeRatisInitialSleepTimeMs;
-  }
-
-  public void setConfigNodeRatisInitialSleepTimeMs(long configNodeRatisInitialSleepTimeMs) {
-    this.configNodeRatisInitialSleepTimeMs = configNodeRatisInitialSleepTimeMs;
-  }
-
-  public long getConfigNodeRatisMaxSleepTimeMs() {
-    return configNodeRatisMaxSleepTimeMs;
-  }
-
-  public void setConfigNodeRatisMaxSleepTimeMs(long configNodeRatisMaxSleepTimeMs) {
-    this.configNodeRatisMaxSleepTimeMs = configNodeRatisMaxSleepTimeMs;
-  }
-
-  public int getDataRegionRatisMaxRetryAttempts() {
-    return dataRegionRatisMaxRetryAttempts;
-  }
-
-  public void setDataRegionRatisMaxRetryAttempts(int dataRegionRatisMaxRetryAttempts) {
-    this.dataRegionRatisMaxRetryAttempts = dataRegionRatisMaxRetryAttempts;
-  }
-
-  public long getDataRegionRatisInitialSleepTimeMs() {
-    return dataRegionRatisInitialSleepTimeMs;
-  }
-
-  public void setDataRegionRatisInitialSleepTimeMs(long dataRegionRatisInitialSleepTimeMs) {
-    this.dataRegionRatisInitialSleepTimeMs = dataRegionRatisInitialSleepTimeMs;
-  }
-
-  public long getDataRegionRatisMaxSleepTimeMs() {
-    return dataRegionRatisMaxSleepTimeMs;
-  }
-
-  public void setDataRegionRatisMaxSleepTimeMs(long dataRegionRatisMaxSleepTimeMs) {
-    this.dataRegionRatisMaxSleepTimeMs = dataRegionRatisMaxSleepTimeMs;
-  }
-
-  public int getSchemaRegionRatisMaxRetryAttempts() {
-    return schemaRegionRatisMaxRetryAttempts;
-  }
-
-  public void setSchemaRegionRatisMaxRetryAttempts(int schemaRegionRatisMaxRetryAttempts) {
-    this.schemaRegionRatisMaxRetryAttempts = schemaRegionRatisMaxRetryAttempts;
-  }
-
-  public long getSchemaRegionRatisInitialSleepTimeMs() {
-    return schemaRegionRatisInitialSleepTimeMs;
-  }
-
-  public void setSchemaRegionRatisInitialSleepTimeMs(long schemaRegionRatisInitialSleepTimeMs) {
-    this.schemaRegionRatisInitialSleepTimeMs = schemaRegionRatisInitialSleepTimeMs;
-  }
-
-  public long getSchemaRegionRatisMaxSleepTimeMs() {
-    return schemaRegionRatisMaxSleepTimeMs;
-  }
-
-  public void setSchemaRegionRatisMaxSleepTimeMs(long schemaRegionRatisMaxSleepTimeMs) {
-    this.schemaRegionRatisMaxSleepTimeMs = schemaRegionRatisMaxSleepTimeMs;
-  }
-
-  public long getConfigNodeRatisPreserveLogsWhenPurge() {
-    return configNodeRatisPreserveLogsWhenPurge;
-  }
-
-  public void setConfigNodeRatisPreserveLogsWhenPurge(long configNodeRatisPreserveLogsWhenPurge) {
-    this.configNodeRatisPreserveLogsWhenPurge = configNodeRatisPreserveLogsWhenPurge;
-  }
-
-  public long getSchemaRegionRatisPreserveLogsWhenPurge() {
-    return schemaRegionRatisPreserveLogsWhenPurge;
-  }
-
-  public void setSchemaRegionRatisPreserveLogsWhenPurge(
-      long schemaRegionRatisPreserveLogsWhenPurge) {
-    this.schemaRegionRatisPreserveLogsWhenPurge = schemaRegionRatisPreserveLogsWhenPurge;
-  }
-
-  public long getDataRegionRatisPreserveLogsWhenPurge() {
-    return dataRegionRatisPreserveLogsWhenPurge;
-  }
-
-  public void setDataRegionRatisPreserveLogsWhenPurge(long dataRegionRatisPreserveLogsWhenPurge) {
-    this.dataRegionRatisPreserveLogsWhenPurge = dataRegionRatisPreserveLogsWhenPurge;
-  }
-
-  public long getRatisFirstElectionTimeoutMinMs() {
-    return ratisFirstElectionTimeoutMinMs;
-  }
-
-  public void setRatisFirstElectionTimeoutMinMs(long ratisFirstElectionTimeoutMinMs) {
-    this.ratisFirstElectionTimeoutMinMs = ratisFirstElectionTimeoutMinMs;
-  }
-
-  public long getRatisFirstElectionTimeoutMaxMs() {
-    return ratisFirstElectionTimeoutMaxMs;
-  }
-
-  public void setRatisFirstElectionTimeoutMaxMs(long ratisFirstElectionTimeoutMaxMs) {
-    this.ratisFirstElectionTimeoutMaxMs = ratisFirstElectionTimeoutMaxMs;
-  }
-
-  public long getConfigNodeRatisLogMax() {
-    return configNodeRatisLogMax;
-  }
-
-  public void setConfigNodeRatisLogMax(long configNodeRatisLogMax) {
-    this.configNodeRatisLogMax = configNodeRatisLogMax;
-  }
-
-  public long getSchemaRegionRatisLogMax() {
-    return schemaRegionRatisLogMax;
-  }
-
-  public void setSchemaRegionRatisLogMax(long schemaRegionRatisLogMax) {
-    this.schemaRegionRatisLogMax = schemaRegionRatisLogMax;
-  }
-
-  public long getDataRegionRatisLogMax() {
-    return dataRegionRatisLogMax;
-  }
-
-  public void setDataRegionRatisLogMax(long dataRegionRatisLogMax) {
-    this.dataRegionRatisLogMax = dataRegionRatisLogMax;
-  }
 }
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 63d30fc6cd..7368b19cc0 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
@@ -18,22 +18,19 @@
  */
 package org.apache.iotdb.confignode.conf;
 
-import org.apache.iotdb.commons.conf.CommonConfig;
-import org.apache.iotdb.commons.conf.CommonDescriptor;
 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.confignode.manager.partition.RegionGroupExtensionPolicy;
 import org.apache.iotdb.metrics.config.MetricConfigDescriptor;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.File;
-import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.MalformedURLException;
@@ -43,20 +40,18 @@ import java.util.Properties;
 public class ConfigNodeDescriptor {
   private static final Logger LOGGER = LoggerFactory.getLogger(ConfigNodeDescriptor.class);
 
-  private final CommonDescriptor commonDescriptor = CommonDescriptor.getInstance();
-
-  private final ConfigNodeConfig conf = new ConfigNodeConfig();
+  private final ConfigNodeConfig CONF = new ConfigNodeConfig();
 
   private ConfigNodeDescriptor() {
     loadProps();
   }
 
   public ConfigNodeConfig getConf() {
-    return conf;
+    return CONF;
   }
 
   /**
-   * get props url location
+   * Get props url location
    *
    * @return url object if location exit, otherwise null.
    */
@@ -94,46 +89,21 @@ public class ConfigNodeDescriptor {
   }
 
   private void loadProps() {
-    URL url = getPropsUrl(CommonConfig.CONFIG_NAME);
-    Properties commonProperties = new Properties();
-    if (url != null) {
-      try (InputStream inputStream = url.openStream()) {
-
-        LOGGER.info("Start to read config file {}", url);
-        commonProperties.load(inputStream);
-
-      } catch (FileNotFoundException e) {
-        LOGGER.warn("Fail to find config file {}", url, e);
-      } catch (IOException e) {
-        LOGGER.warn("Cannot load config file, use default configuration", e);
-      } catch (Exception e) {
-        LOGGER.warn("Incorrect format in config file, use default configuration", e);
-      }
-    } else {
-      LOGGER.warn(
-          "Couldn't load the configuration {} from any of the known sources.",
-          CommonConfig.CONFIG_NAME);
-    }
-
-    url = getPropsUrl(ConfigNodeConstant.CONF_FILE_NAME);
+    Properties properties = new Properties();
+    URL url = getPropsUrl(ConfigNodeConstant.CONF_FILE_NAME);
     if (url != null) {
       try (InputStream inputStream = url.openStream()) {
-        LOGGER.info("start reading ConfigNode conf file: {}", url);
-        Properties properties = new Properties();
+        LOGGER.info("Start reading ConfigNode conf file: {}", url);
         properties.load(inputStream);
-        commonProperties.putAll(properties);
-        loadProperties(commonProperties);
+        loadProperties(properties);
       } catch (IOException | BadNodeUrlException e) {
         LOGGER.warn("Couldn't load ConfigNode conf file, use default config", e);
       } finally {
-        conf.updatePath();
-        commonDescriptor
-            .getConfig()
-            .updatePath(System.getProperty(ConfigNodeConstant.CONFIGNODE_HOME, null));
-        MetricConfigDescriptor.getInstance().loadProps(commonProperties);
+        CONF.updatePath();
+        MetricConfigDescriptor.getInstance().loadProps(properties);
         MetricConfigDescriptor.getInstance()
             .getMetricConfig()
-            .updateRpcInstance(conf.getInternalAddress(), conf.getInternalPort());
+            .updateRpcInstance(CONF.getCnInternalAddress(), CONF.getCnInternalPort());
       }
     } else {
       LOGGER.warn(
@@ -143,228 +113,108 @@ public class ConfigNodeDescriptor {
   }
 
   private void loadProperties(Properties properties) throws BadNodeUrlException, IOException {
-    conf.setClusterName(
-        properties.getProperty(IoTDBConstant.CLUSTER_NAME, conf.getClusterName()).trim());
 
-    conf.setInternalAddress(
+    CONF.setCnInternalAddress(
         properties
-            .getProperty(IoTDBConstant.CN_INTERNAL_ADDRESS, conf.getInternalAddress())
+            .getProperty(IoTDBConstant.CN_INTERNAL_ADDRESS, CONF.getCnInternalAddress())
             .trim());
 
-    conf.setInternalPort(
+    CONF.setCnInternalPort(
         Integer.parseInt(
             properties
-                .getProperty(IoTDBConstant.CN_INTERNAL_PORT, String.valueOf(conf.getInternalPort()))
+                .getProperty(
+                    IoTDBConstant.CN_INTERNAL_PORT, String.valueOf(CONF.getCnInternalPort()))
                 .trim()));
 
-    conf.setConsensusPort(
+    CONF.setCnConsensusPort(
         Integer.parseInt(
             properties
                 .getProperty(
-                    IoTDBConstant.CN_CONSENSUS_PORT, String.valueOf(conf.getConsensusPort()))
+                    IoTDBConstant.CN_CONSENSUS_PORT, String.valueOf(CONF.getCnConsensusPort()))
                 .trim()));
 
     // TODO: Enable multiple target_config_node_list
     String targetConfigNodes =
         properties.getProperty(IoTDBConstant.CN_TARGET_CONFIG_NODE_LIST, null);
     if (targetConfigNodes != null) {
-      conf.setTargetConfigNode(NodeUrlUtils.parseTEndPointUrl(targetConfigNodes.trim()));
+      CONF.setCnTargetConfigNode(NodeUrlUtils.parseTEndPointUrl(targetConfigNodes.trim()));
     }
 
-    conf.setSeriesSlotNum(
-        Integer.parseInt(
-            properties
-                .getProperty("series_slot_num", String.valueOf(conf.getSeriesSlotNum()))
-                .trim()));
-
-    conf.setSeriesPartitionExecutorClass(
-        properties
-            .getProperty("series_partition_executor_class", conf.getSeriesPartitionExecutorClass())
-            .trim());
-
-    conf.setConfigNodeConsensusProtocolClass(
-        properties
-            .getProperty(
-                "config_node_consensus_protocol_class", conf.getConfigNodeConsensusProtocolClass())
-            .trim());
-
-    conf.setSchemaRegionConsensusProtocolClass(
-        properties
-            .getProperty(
-                "schema_region_consensus_protocol_class",
-                conf.getSchemaRegionConsensusProtocolClass())
-            .trim());
-
-    conf.setSchemaReplicationFactor(
-        Integer.parseInt(
-            properties
-                .getProperty(
-                    "schema_replication_factor", String.valueOf(conf.getSchemaReplicationFactor()))
-                .trim()));
-
-    conf.setDataRegionConsensusProtocolClass(
-        properties
-            .getProperty(
-                "data_region_consensus_protocol_class", conf.getDataRegionConsensusProtocolClass())
-            .trim());
-
-    conf.setDataReplicationFactor(
-        Integer.parseInt(
-            properties
-                .getProperty(
-                    "data_replication_factor", String.valueOf(conf.getDataReplicationFactor()))
-                .trim()));
-
-    conf.setSchemaRegionPerDataNode(
-        Double.parseDouble(
-            properties
-                .getProperty(
-                    "schema_region_per_data_node",
-                    String.valueOf(conf.getSchemaReplicationFactor()))
-                .trim()));
-
-    conf.setSchemaRegionGroupExtensionPolicy(
-        RegionGroupExtensionPolicy.parse(
-            properties.getProperty(
-                "schema_region_group_extension_policy",
-                conf.getSchemaRegionGroupExtensionPolicy().getPolicy().trim())));
-
-    conf.setSchemaRegionGroupPerDatabase(
-        Integer.parseInt(
-            properties.getProperty(
-                "schema_region_group_per_database",
-                String.valueOf(conf.getSchemaRegionGroupPerDatabase()).trim())));
-
-    conf.setDataRegionGroupExtensionPolicy(
-        RegionGroupExtensionPolicy.parse(
-            properties.getProperty(
-                "data_region_group_extension_policy",
-                conf.getDataRegionGroupExtensionPolicy().getPolicy().trim())));
-
-    conf.setDataRegionGroupPerDatabase(
-        Integer.parseInt(
-            properties.getProperty(
-                "data_region_group_per_database",
-                String.valueOf(conf.getDataRegionGroupPerDatabase()).trim())));
-
-    conf.setDataRegionPerProcessor(
-        Double.parseDouble(
-            properties
-                .getProperty(
-                    "data_region_per_processor", String.valueOf(conf.getDataRegionPerProcessor()))
-                .trim()));
-
-    conf.setLeastDataRegionGroupNum(
-        Integer.parseInt(
-            properties.getProperty(
-                "least_data_region_group_num", String.valueOf(conf.getLeastDataRegionGroupNum()))));
-
     try {
-      conf.setRegionAllocateStrategy(
+      CONF.setRegionGroupAllocatePolicy(
           RegionBalancer.RegionGroupAllocatePolicy.valueOf(
               properties
                   .getProperty(
-                      "region_group_allocate_policy", conf.getRegionGroupAllocatePolicy().name())
+                      "region_group_allocate_policy", CONF.getRegionGroupAllocatePolicy().name())
                   .trim()));
     } catch (IllegalArgumentException e) {
       LOGGER.warn(
           "The configured region allocate strategy does not exist, use the default: GREEDY!");
     }
 
-    conf.setEnableDataPartitionInheritPolicy(
-        Boolean.parseBoolean(
-            properties.getProperty(
-                "enable_data_partition_inherit_policy",
-                String.valueOf(conf.isEnableDataPartitionInheritPolicy()))));
+    CONF.setCnRpcThriftCompressionEnable(
+      Boolean.parseBoolean(
+        properties.getProperty(
+          "cn_rpc_thrift_compression_enable", String.valueOf(CONF.isCnRpcThriftCompressionEnable())
+        ).trim()
+      )
+    );
 
-    conf.setCnRpcAdvancedCompressionEnable(
+    CONF.setCnRpcAdvancedCompressionEnable(
         Boolean.parseBoolean(
             properties
                 .getProperty(
                     "cn_rpc_advanced_compression_enable",
-                    String.valueOf(conf.isCnRpcAdvancedCompressionEnable()))
+                    String.valueOf(CONF.isCnRpcAdvancedCompressionEnable()))
                 .trim()));
 
-    conf.setCnRpcMaxConcurrentClientNum(
+    CONF.setCnRpcMaxConcurrentClientNum(
         Integer.parseInt(
             properties
                 .getProperty(
                     "cn_rpc_max_concurrent_client_num",
-                    String.valueOf(conf.getCnRpcMaxConcurrentClientNum()))
+                    String.valueOf(CONF.getCnRpcMaxConcurrentClientNum()))
                 .trim()));
 
-    conf.setCnThriftDefaultBufferSize(
-        Integer.parseInt(
-            properties
-                .getProperty(
-                    "cn_thrift_init_buffer_size",
-                    String.valueOf(conf.getCnThriftDefaultBufferSize()))
-                .trim()));
+    CONF.setCnThriftMaxFrameSize(
+      Integer.parseInt(
+        properties
+          .getProperty(
+            "cn_thrift_max_frame_size", String.valueOf(CONF.getCnThriftMaxFrameSize()))
+          .trim()));
 
-    conf.setCnThriftMaxFrameSize(
+    CONF.setCnThriftInitBufferSize(
         Integer.parseInt(
             properties
                 .getProperty(
-                    "cn_thrift_max_frame_size", String.valueOf(conf.getCnThriftMaxFrameSize()))
-                .trim()));
-
-    conf.setSystemDir(properties.getProperty("cn_system_dir", conf.getSystemDir()).trim());
-
-    conf.setConsensusDir(properties.getProperty("cn_consensus_dir", conf.getConsensusDir()).trim());
-
-    conf.setUdfDir(properties.getProperty("udf_lib_dir", conf.getUdfDir()).trim());
-
-    conf.setTriggerDir(properties.getProperty("trigger_lib_dir", conf.getTriggerDir()).trim());
-
-    conf.setTimePartitionInterval(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "time_partition_interval", String.valueOf(conf.getTimePartitionInterval()))
+                    "cn_thrift_init_buffer_size", String.valueOf(CONF.getCnThriftInitBufferSize()))
                 .trim()));
 
-    conf.setHeartbeatIntervalInMs(
-        Long.parseLong(
-            properties
-                .getProperty(
-                    "heartbeat_interval_in_ms", String.valueOf(conf.getHeartbeatIntervalInMs()))
-                .trim()));
+    CONF.setCnConnectionTimeoutMs(
+      Integer.parseInt(
+        properties
+          .getProperty(
+            "cn_connection_timeout_ms", String.valueOf(CONF.getCnConnectionTimeoutMs()))
+          .trim()));
 
-    String leaderDistributionPolicy =
+    CONF.setCnSelectorThreadNumsOfClientManager(
+      Integer.parseInt(
         properties
-            .getProperty("leader_distribution_policy", conf.getLeaderDistributionPolicy())
-            .trim();
-    if (ILeaderBalancer.GREEDY_POLICY.equals(leaderDistributionPolicy)
-        || ILeaderBalancer.MIN_COST_FLOW_POLICY.equals(leaderDistributionPolicy)) {
-      conf.setLeaderDistributionPolicy(leaderDistributionPolicy);
-    } else {
-      throw new IOException(
-          String.format(
-              "Unknown leader_distribution_policy: %s, please set to \"GREEDY\" or \"MIN_COST_FLOW\"",
-              leaderDistributionPolicy));
-    }
+          .getProperty(
+            "cn_selector_thread_nums_of_client_manager",
+            String.valueOf(CONF.setCnSelectorThreadNumsOfClientManager()))
+          .trim()));
 
-    conf.setEnableAutoLeaderBalanceForRatisConsensus(
-        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()));
+    CONF.setSystemDir(properties.getProperty("cn_system_dir", CONF.getSystemDir()).trim());
+
+    CONF.setConsensusDir(properties.getProperty("cn_consensus_dir", CONF.getConsensusDir()).trim());
 
     String routePriorityPolicy =
-        properties.getProperty("route_priority_policy", conf.getRoutePriorityPolicy()).trim();
+        properties.getProperty("route_priority_policy", CONF.getRoutePriorityPolicy()).trim();
     if (IPriorityBalancer.GREEDY_POLICY.equals(routePriorityPolicy)
         || IPriorityBalancer.LEADER_POLICY.equals(routePriorityPolicy)) {
-      conf.setRoutePriorityPolicy(routePriorityPolicy);
+      CONF.setRoutePriorityPolicy(routePriorityPolicy);
     } else {
       throw new IOException(
           String.format(
@@ -372,376 +222,363 @@ public class ConfigNodeDescriptor {
               routePriorityPolicy));
     }
 
-    String readConsistencyLevel =
-        properties.getProperty("read_consistency_level", conf.getReadConsistencyLevel()).trim();
-    if (readConsistencyLevel.equals("strong") || readConsistencyLevel.equals("weak")) {
-      conf.setReadConsistencyLevel(readConsistencyLevel);
-    } else {
-      throw new IOException(
-          String.format(
-              "Unknown read_consistency_level: %s, please set to \"strong\" or \"weak\"",
-              readConsistencyLevel));
-    }
-
-    // commons
-    commonDescriptor.loadCommonProps(properties);
-    commonDescriptor.initCommonConfigDir(conf.getSystemDir());
-
-    conf.setProcedureCompletedEvictTTL(
+    CONF.setProcedureCompletedEvictTTL(
         Integer.parseInt(
             properties
                 .getProperty(
                     "procedure_completed_evict_ttl",
-                    String.valueOf(conf.getProcedureCompletedEvictTTL()))
+                    String.valueOf(CONF.getProcedureCompletedEvictTTL()))
                 .trim()));
 
-    conf.setProcedureCompletedCleanInterval(
+    CONF.setProcedureCompletedCleanInterval(
         Integer.parseInt(
             properties
                 .getProperty(
                     "procedure_completed_clean_interval",
-                    String.valueOf(conf.getProcedureCompletedCleanInterval()))
+                    String.valueOf(CONF.getProcedureCompletedCleanInterval()))
                 .trim()));
 
-    conf.setProcedureCoreWorkerThreadsCount(
+    CONF.setProcedureCoreWorkerThreadsCount(
         Integer.parseInt(
             properties
                 .getProperty(
                     "procedure_core_worker_thread_count",
-                    String.valueOf(conf.getProcedureCoreWorkerThreadsCount()))
+                    String.valueOf(CONF.getProcedureCoreWorkerThreadsCount()))
                 .trim()));
 
     loadRatisConsensusConfig(properties);
     loadCQConfig(properties);
+
+    loadClientManager: self-config -> common-config
   }
 
   private void loadRatisConsensusConfig(Properties properties) {
-    conf.setDataRegionRatisConsensusLogAppenderBufferSize(
+    CONF.setDataRegionRatisConsensusLogAppenderBufferSize(
         Long.parseLong(
             properties
                 .getProperty(
                     "data_region_ratis_log_appender_buffer_size_max",
-                    String.valueOf(conf.getDataRegionRatisConsensusLogAppenderBufferSize()))
+                    String.valueOf(CONF.getDataRegionRatisConsensusLogAppenderBufferSize()))
                 .trim()));
 
-    conf.setConfigNodeRatisConsensusLogAppenderBufferSize(
+    CONF.setConfigNodeRatisConsensusLogAppenderBufferSize(
         Long.parseLong(
             properties
                 .getProperty(
                     "config_node_ratis_log_appender_buffer_size_max",
-                    String.valueOf(conf.getConfigNodeRatisConsensusLogAppenderBufferSize()))
+                    String.valueOf(CONF.getConfigNodeRatisConsensusLogAppenderBufferSize()))
                 .trim()));
 
-    conf.setSchemaRegionRatisConsensusLogAppenderBufferSize(
+    CONF.setSchemaRegionRatisConsensusLogAppenderBufferSize(
         Long.parseLong(
             properties
                 .getProperty(
                     "schema_region_ratis_log_appender_buffer_size_max",
-                    String.valueOf(conf.getSchemaRegionRatisConsensusLogAppenderBufferSize()))
+                    String.valueOf(CONF.getSchemaRegionRatisConsensusLogAppenderBufferSize()))
                 .trim()));
 
-    conf.setDataRegionRatisSnapshotTriggerThreshold(
+    CONF.setDataRegionRatisSnapshotTriggerThreshold(
         Long.parseLong(
             properties
                 .getProperty(
                     "data_region_ratis_snapshot_trigger_threshold",
-                    String.valueOf(conf.getDataRegionRatisSnapshotTriggerThreshold()))
+                    String.valueOf(CONF.getDataRegionRatisSnapshotTriggerThreshold()))
                 .trim()));
 
-    conf.setConfigNodeRatisSnapshotTriggerThreshold(
+    CONF.setConfigNodeRatisSnapshotTriggerThreshold(
         Long.parseLong(
             properties
                 .getProperty(
                     "config_node_ratis_snapshot_trigger_threshold",
-                    String.valueOf(conf.getConfigNodeRatisSnapshotTriggerThreshold()))
+                    String.valueOf(CONF.getConfigNodeRatisSnapshotTriggerThreshold()))
                 .trim()));
 
-    conf.setSchemaRegionRatisSnapshotTriggerThreshold(
+    CONF.setSchemaRegionRatisSnapshotTriggerThreshold(
         Long.parseLong(
             properties
                 .getProperty(
                     "schema_region_ratis_snapshot_trigger_threshold",
-                    String.valueOf(conf.getSchemaRegionRatisSnapshotTriggerThreshold()))
+                    String.valueOf(CONF.getSchemaRegionRatisSnapshotTriggerThreshold()))
                 .trim()));
 
-    conf.setDataRegionRatisLogUnsafeFlushEnable(
+    CONF.setDataRegionRatisLogUnsafeFlushEnable(
         Boolean.parseBoolean(
             properties
                 .getProperty(
                     "data_region_ratis_log_unsafe_flush_enable",
-                    String.valueOf(conf.isDataRegionRatisLogUnsafeFlushEnable()))
+                    String.valueOf(CONF.isDataRegionRatisLogUnsafeFlushEnable()))
                 .trim()));
 
-    conf.setConfigNodeRatisLogUnsafeFlushEnable(
+    CONF.setConfigNodeRatisLogUnsafeFlushEnable(
         Boolean.parseBoolean(
             properties
                 .getProperty(
                     "config_node_ratis_log_unsafe_flush_enable",
-                    String.valueOf(conf.isConfigNodeRatisLogUnsafeFlushEnable()))
+                    String.valueOf(CONF.isConfigNodeRatisLogUnsafeFlushEnable()))
                 .trim()));
 
-    conf.setSchemaRegionRatisLogUnsafeFlushEnable(
+    CONF.setSchemaRegionRatisLogUnsafeFlushEnable(
         Boolean.parseBoolean(
             properties
                 .getProperty(
                     "schema_region_ratis_log_unsafe_flush_enable",
-                    String.valueOf(conf.isSchemaRegionRatisLogUnsafeFlushEnable()))
+                    String.valueOf(CONF.isSchemaRegionRatisLogUnsafeFlushEnable()))
                 .trim()));
 
-    conf.setDataRegionRatisLogSegmentSizeMax(
+    CONF.setDataRegionRatisLogSegmentSizeMax(
         Long.parseLong(
             properties
                 .getProperty(
                     "data_region_ratis_log_segment_size_max_in_byte",
-                    String.valueOf(conf.getDataRegionRatisLogSegmentSizeMax()))
+                    String.valueOf(CONF.getDataRegionRatisLogSegmentSizeMax()))
                 .trim()));
 
-    conf.setConfigNodeRatisLogSegmentSizeMax(
+    CONF.setConfigNodeRatisLogSegmentSizeMax(
         Long.parseLong(
             properties
                 .getProperty(
                     "config_node_ratis_log_segment_size_max_in_byte",
-                    String.valueOf(conf.getConfigNodeRatisLogSegmentSizeMax()))
+                    String.valueOf(CONF.getConfigNodeRatisLogSegmentSizeMax()))
                 .trim()));
 
-    conf.setSchemaRegionRatisLogSegmentSizeMax(
+    CONF.setSchemaRegionRatisLogSegmentSizeMax(
         Long.parseLong(
             properties
                 .getProperty(
                     "schema_region_ratis_log_segment_size_max_in_byte",
-                    String.valueOf(conf.getSchemaRegionRatisLogSegmentSizeMax()))
+                    String.valueOf(CONF.getSchemaRegionRatisLogSegmentSizeMax()))
                 .trim()));
 
-    conf.setConfigNodeSimpleConsensusLogSegmentSizeMax(
+    CONF.setConfigNodeSimpleConsensusLogSegmentSizeMax(
         Long.parseLong(
             properties
                 .getProperty(
                     "config_node_simple_consensus_log_segment_size_max_in_byte",
-                    String.valueOf(conf.getConfigNodeSimpleConsensusLogSegmentSizeMax()))
+                    String.valueOf(CONF.getConfigNodeSimpleConsensusLogSegmentSizeMax()))
                 .trim()));
 
-    conf.setDataRegionRatisGrpcFlowControlWindow(
+    CONF.setDataRegionRatisGrpcFlowControlWindow(
         Long.parseLong(
             properties
                 .getProperty(
                     "data_region_ratis_grpc_flow_control_window",
-                    String.valueOf(conf.getDataRegionRatisGrpcFlowControlWindow()))
+                    String.valueOf(CONF.getDataRegionRatisGrpcFlowControlWindow()))
                 .trim()));
 
-    conf.setConfigNodeRatisGrpcFlowControlWindow(
+    CONF.setConfigNodeRatisGrpcFlowControlWindow(
         Long.parseLong(
             properties
                 .getProperty(
                     "config_node_ratis_grpc_flow_control_window",
-                    String.valueOf(conf.getConfigNodeRatisGrpcFlowControlWindow()))
+                    String.valueOf(CONF.getConfigNodeRatisGrpcFlowControlWindow()))
                 .trim()));
 
-    conf.setSchemaRegionRatisGrpcFlowControlWindow(
+    CONF.setSchemaRegionRatisGrpcFlowControlWindow(
         Long.parseLong(
             properties
                 .getProperty(
                     "schema_region_ratis_grpc_flow_control_window",
-                    String.valueOf(conf.getSchemaRegionRatisGrpcFlowControlWindow()))
+                    String.valueOf(CONF.getSchemaRegionRatisGrpcFlowControlWindow()))
                 .trim()));
 
-    conf.setDataRegionRatisRpcLeaderElectionTimeoutMinMs(
+    CONF.setDataRegionRatisRpcLeaderElectionTimeoutMinMs(
         Long.parseLong(
             properties
                 .getProperty(
                     "data_region_ratis_rpc_leader_election_timeout_min_ms",
-                    String.valueOf(conf.getDataRegionRatisRpcLeaderElectionTimeoutMinMs()))
+                    String.valueOf(CONF.getDataRegionRatisRpcLeaderElectionTimeoutMinMs()))
                 .trim()));
 
-    conf.setConfigNodeRatisRpcLeaderElectionTimeoutMinMs(
+    CONF.setConfigNodeRatisRpcLeaderElectionTimeoutMinMs(
         Long.parseLong(
             properties
                 .getProperty(
                     "config_node_ratis_rpc_leader_election_timeout_min_ms",
-                    String.valueOf(conf.getConfigNodeRatisRpcLeaderElectionTimeoutMinMs()))
+                    String.valueOf(CONF.getConfigNodeRatisRpcLeaderElectionTimeoutMinMs()))
                 .trim()));
 
-    conf.setSchemaRegionRatisRpcLeaderElectionTimeoutMinMs(
+    CONF.setSchemaRegionRatisRpcLeaderElectionTimeoutMinMs(
         Long.parseLong(
             properties
                 .getProperty(
                     "schema_region_ratis_rpc_leader_election_timeout_min_ms",
-                    String.valueOf(conf.getSchemaRegionRatisRpcLeaderElectionTimeoutMinMs()))
+                    String.valueOf(CONF.getSchemaRegionRatisRpcLeaderElectionTimeoutMinMs()))
                 .trim()));
 
-    conf.setDataRegionRatisRpcLeaderElectionTimeoutMaxMs(
+    CONF.setDataRegionRatisRpcLeaderElectionTimeoutMaxMs(
         Long.parseLong(
             properties
                 .getProperty(
                     "data_region_ratis_rpc_leader_election_timeout_max_ms",
-                    String.valueOf(conf.getDataRegionRatisRpcLeaderElectionTimeoutMaxMs()))
+                    String.valueOf(CONF.getDataRegionRatisRpcLeaderElectionTimeoutMaxMs()))
                 .trim()));
 
-    conf.setConfigNodeRatisRpcLeaderElectionTimeoutMaxMs(
+    CONF.setConfigNodeRatisRpcLeaderElectionTimeoutMaxMs(
         Long.parseLong(
             properties
                 .getProperty(
                     "config_node_ratis_rpc_leader_election_timeout_max_ms",
-                    String.valueOf(conf.getConfigNodeRatisRpcLeaderElectionTimeoutMaxMs()))
+                    String.valueOf(CONF.getConfigNodeRatisRpcLeaderElectionTimeoutMaxMs()))
                 .trim()));
 
-    conf.setSchemaRegionRatisRpcLeaderElectionTimeoutMaxMs(
+    CONF.setSchemaRegionRatisRpcLeaderElectionTimeoutMaxMs(
         Long.parseLong(
             properties
                 .getProperty(
                     "schema_region_ratis_rpc_leader_election_timeout_max_ms",
-                    String.valueOf(conf.getSchemaRegionRatisRpcLeaderElectionTimeoutMaxMs()))
+                    String.valueOf(CONF.getSchemaRegionRatisRpcLeaderElectionTimeoutMaxMs()))
                 .trim()));
 
-    conf.setConfigNodeRatisRequestTimeoutMs(
+    CONF.setConfigNodeRatisRequestTimeoutMs(
         Long.parseLong(
             properties
                 .getProperty(
                     "config_node_ratis_request_timeout_ms",
-                    String.valueOf(conf.getConfigNodeRatisRequestTimeoutMs()))
+                    String.valueOf(CONF.getConfigNodeRatisRequestTimeoutMs()))
                 .trim()));
-    conf.setSchemaRegionRatisRequestTimeoutMs(
+    CONF.setSchemaRegionRatisRequestTimeoutMs(
         Long.parseLong(
             properties
                 .getProperty(
                     "schema_region_ratis_request_timeout_ms",
-                    String.valueOf(conf.getSchemaRegionRatisRequestTimeoutMs()))
+                    String.valueOf(CONF.getSchemaRegionRatisRequestTimeoutMs()))
                 .trim()));
-    conf.setDataRegionRatisRequestTimeoutMs(
+    CONF.setDataRegionRatisRequestTimeoutMs(
         Long.parseLong(
             properties
                 .getProperty(
                     "data_region_ratis_request_timeout_ms",
-                    String.valueOf(conf.getDataRegionRatisRequestTimeoutMs()))
+                    String.valueOf(CONF.getDataRegionRatisRequestTimeoutMs()))
                 .trim()));
 
-    conf.setConfigNodeRatisMaxRetryAttempts(
+    CONF.setConfigNodeRatisMaxRetryAttempts(
         Integer.parseInt(
             properties
                 .getProperty(
                     "config_node_ratis_max_retry_attempts",
-                    String.valueOf(conf.getConfigNodeRatisMaxRetryAttempts()))
+                    String.valueOf(CONF.getConfigNodeRatisMaxRetryAttempts()))
                 .trim()));
-    conf.setConfigNodeRatisInitialSleepTimeMs(
+    CONF.setConfigNodeRatisInitialSleepTimeMs(
         Long.parseLong(
             properties
                 .getProperty(
                     "config_node_ratis_initial_sleep_time_ms",
-                    String.valueOf(conf.getConfigNodeRatisInitialSleepTimeMs()))
+                    String.valueOf(CONF.getConfigNodeRatisInitialSleepTimeMs()))
                 .trim()));
-    conf.setConfigNodeRatisMaxSleepTimeMs(
+    CONF.setConfigNodeRatisMaxSleepTimeMs(
         Long.parseLong(
             properties
                 .getProperty(
                     "config_node_ratis_max_sleep_time_ms",
-                    String.valueOf(conf.getConfigNodeRatisMaxSleepTimeMs()))
+                    String.valueOf(CONF.getConfigNodeRatisMaxSleepTimeMs()))
                 .trim()));
 
-    conf.setDataRegionRatisMaxRetryAttempts(
+    CONF.setDataRegionRatisMaxRetryAttempts(
         Integer.parseInt(
             properties
                 .getProperty(
                     "data_region_ratis_max_retry_attempts",
-                    String.valueOf(conf.getDataRegionRatisMaxRetryAttempts()))
+                    String.valueOf(CONF.getDataRegionRatisMaxRetryAttempts()))
                 .trim()));
-    conf.setDataRegionRatisInitialSleepTimeMs(
+    CONF.setDataRegionRatisInitialSleepTimeMs(
         Long.parseLong(
             properties
                 .getProperty(
                     "data_region_ratis_initial_sleep_time_ms",
-                    String.valueOf(conf.getDataRegionRatisInitialSleepTimeMs()))
+                    String.valueOf(CONF.getDataRegionRatisInitialSleepTimeMs()))
                 .trim()));
-    conf.setDataRegionRatisMaxSleepTimeMs(
+    CONF.setDataRegionRatisMaxSleepTimeMs(
         Long.parseLong(
             properties
                 .getProperty(
                     "data_region_ratis_max_sleep_time_ms",
-                    String.valueOf(conf.getDataRegionRatisMaxSleepTimeMs()))
+                    String.valueOf(CONF.getDataRegionRatisMaxSleepTimeMs()))
                 .trim()));
 
-    conf.setSchemaRegionRatisMaxRetryAttempts(
+    CONF.setSchemaRegionRatisMaxRetryAttempts(
         Integer.parseInt(
             properties
                 .getProperty(
                     "schema_region_ratis_max_retry_attempts",
-                    String.valueOf(conf.getSchemaRegionRatisMaxRetryAttempts()))
+                    String.valueOf(CONF.getSchemaRegionRatisMaxRetryAttempts()))
                 .trim()));
-    conf.setSchemaRegionRatisInitialSleepTimeMs(
+    CONF.setSchemaRegionRatisInitialSleepTimeMs(
         Long.parseLong(
             properties
                 .getProperty(
                     "schema_region_ratis_initial_sleep_time_ms",
-                    String.valueOf(conf.getSchemaRegionRatisInitialSleepTimeMs()))
+                    String.valueOf(CONF.getSchemaRegionRatisInitialSleepTimeMs()))
                 .trim()));
-    conf.setSchemaRegionRatisMaxSleepTimeMs(
+    CONF.setSchemaRegionRatisMaxSleepTimeMs(
         Long.parseLong(
             properties
                 .getProperty(
                     "schema_region_ratis_max_sleep_time_ms",
-                    String.valueOf(conf.getSchemaRegionRatisMaxSleepTimeMs()))
+                    String.valueOf(CONF.getSchemaRegionRatisMaxSleepTimeMs()))
                 .trim()));
 
-    conf.setConfigNodeRatisPreserveLogsWhenPurge(
+    CONF.setConfigNodeRatisPreserveLogsWhenPurge(
         Long.parseLong(
             properties
                 .getProperty(
                     "config_node_ratis_preserve_logs_num_when_purge",
-                    String.valueOf(conf.getConfigNodeRatisPreserveLogsWhenPurge()))
+                    String.valueOf(CONF.getConfigNodeRatisPreserveLogsWhenPurge()))
                 .trim()));
 
-    conf.setSchemaRegionRatisPreserveLogsWhenPurge(
+    CONF.setSchemaRegionRatisPreserveLogsWhenPurge(
         Long.parseLong(
             properties
                 .getProperty(
                     "schema_region_ratis_preserve_logs_num_when_purge",
-                    String.valueOf(conf.getSchemaRegionRatisPreserveLogsWhenPurge()))
+                    String.valueOf(CONF.getSchemaRegionRatisPreserveLogsWhenPurge()))
                 .trim()));
 
-    conf.setDataRegionRatisPreserveLogsWhenPurge(
+    CONF.setDataRegionRatisPreserveLogsWhenPurge(
         Long.parseLong(
             properties
                 .getProperty(
                     "data_region_ratis_preserve_logs_num_when_purge",
-                    String.valueOf(conf.getDataRegionRatisPreserveLogsWhenPurge()))
+                    String.valueOf(CONF.getDataRegionRatisPreserveLogsWhenPurge()))
                 .trim()));
 
-    conf.setRatisFirstElectionTimeoutMinMs(
+    CONF.setRatisFirstElectionTimeoutMinMs(
         Long.parseLong(
             properties
                 .getProperty(
                     "ratis_first_election_timeout_min_ms",
-                    String.valueOf(conf.getRatisFirstElectionTimeoutMinMs()))
+                    String.valueOf(CONF.getRatisFirstElectionTimeoutMinMs()))
                 .trim()));
 
-    conf.setRatisFirstElectionTimeoutMaxMs(
+    CONF.setRatisFirstElectionTimeoutMaxMs(
         Long.parseLong(
             properties
                 .getProperty(
                     "ratis_first_election_timeout_max_ms",
-                    String.valueOf(conf.getRatisFirstElectionTimeoutMaxMs()))
+                    String.valueOf(CONF.getRatisFirstElectionTimeoutMaxMs()))
                 .trim()));
 
-    conf.setConfigNodeRatisLogMax(
+    CONF.setConfigNodeRatisLogMax(
         Long.parseLong(
             properties
                 .getProperty(
                     "config_node_ratis_log_max_size",
-                    String.valueOf(conf.getConfigNodeRatisLogMax()))
+                    String.valueOf(CONF.getConfigNodeRatisLogMax()))
                 .trim()));
 
-    conf.setSchemaRegionRatisLogMax(
+    CONF.setSchemaRegionRatisLogMax(
         Long.parseLong(
             properties
                 .getProperty(
                     "schema_region_ratis_log_max_size",
-                    String.valueOf(conf.getSchemaRegionRatisLogMax()))
+                    String.valueOf(CONF.getSchemaRegionRatisLogMax()))
                 .trim()));
 
-    conf.setDataRegionRatisLogMax(
+    CONF.setDataRegionRatisLogMax(
         Long.parseLong(
             properties
                 .getProperty(
                     "data_region_ratis_log_max_size",
-                    String.valueOf(conf.getDataRegionRatisLogMax()))
+                    String.valueOf(CONF.getDataRegionRatisLogMax()))
                 .trim()));
   }
 
@@ -751,33 +588,33 @@ public class ConfigNodeDescriptor {
             properties
                 .getProperty(
                     "continuous_query_submit_thread_count",
-                    String.valueOf(conf.getCqSubmitThread()))
+                    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.getCqSubmitThread());
+      cqSubmitThread = CONF.getCqSubmitThread();
     }
-    conf.setCqSubmitThread(cqSubmitThread);
+    CONF.setCqSubmitThread(cqSubmitThread);
 
     long cqMinEveryIntervalInMs =
         Long.parseLong(
             properties
                 .getProperty(
                     "continuous_query_min_every_interval_in_ms",
-                    String.valueOf(conf.getCqMinEveryIntervalInMs()))
+                    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.getCqMinEveryIntervalInMs());
+      cqMinEveryIntervalInMs = CONF.getCqMinEveryIntervalInMs();
     }
 
-    conf.setCqMinEveryIntervalInMs(cqMinEveryIntervalInMs);
+    CONF.setCqMinEveryIntervalInMs(cqMinEveryIntervalInMs);
   }
 
   /**
@@ -788,10 +625,10 @@ public class ConfigNodeDescriptor {
    * @return True if the target_config_node_list points to itself
    */
   public boolean isSeedConfigNode() {
-    return (conf.getInternalAddress().equals(conf.getTargetConfigNode().getIp())
-            || (NodeUrlUtils.isLocalAddress(conf.getInternalAddress())
-                && NodeUrlUtils.isLocalAddress(conf.getTargetConfigNode().getIp())))
-        && conf.getInternalPort() == conf.getTargetConfigNode().getPort();
+    return (CONF.getCnInternalAddress().equals(CONF.getCnTargetConfigNode().getIp())
+            || (NodeUrlUtils.isLocalAddress(CONF.getCnInternalAddress())
+                && NodeUrlUtils.isLocalAddress(CONF.getCnTargetConfigNode().getIp())))
+        && CONF.getCnInternalPort() == CONF.getCnTargetConfigNode().getPort();
   }
 
   public static ConfigNodeDescriptor getInstance() {
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 b70e20bb9c..3ff481abe1 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
@@ -54,12 +54,12 @@ public class ConfigNodeStartupCheck {
     // When the ConfigNode consensus protocol is set to SIMPLE_CONSENSUS,
     // the target_config_node_list needs to point to itself
     if (CONF.getConfigNodeConsensusProtocolClass().equals(ConsensusFactory.SIMPLE_CONSENSUS)
-        && (!CONF.getInternalAddress().equals(CONF.getTargetConfigNode().getIp())
-            || CONF.getInternalPort() != CONF.getTargetConfigNode().getPort())) {
+        && (!CONF.getCnInternalAddress().equals(CONF.getCnTargetConfigNode().getIp())
+            || CONF.getCnInternalPort() != CONF.getCnTargetConfigNode().getPort())) {
       throw new ConfigurationException(
           IoTDBConstant.CN_TARGET_CONFIG_NODE_LIST,
-          CONF.getTargetConfigNode().getIp() + ":" + CONF.getTargetConfigNode().getPort(),
-          CONF.getInternalAddress() + ":" + CONF.getInternalPort());
+          CONF.getCnTargetConfigNode().getIp() + ":" + CONF.getCnTargetConfigNode().getPort(),
+          CONF.getCnInternalAddress() + ":" + CONF.getCnInternalPort());
     }
 
     // When the data region consensus protocol is set to SIMPLE_CONSENSUS,
@@ -107,7 +107,7 @@ public class ConfigNodeStartupCheck {
     }
 
     // The ip of target ConfigNode couldn't be 0.0.0.0
-    if (CONF.getTargetConfigNode().getIp().equals("0.0.0.0")) {
+    if (CONF.getCnTargetConfigNode().getIp().equals("0.0.0.0")) {
       throw new ConfigurationException(
           "The ip address of any target_config_node_list couldn't be 0.0.0.0");
     }
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 a5aa7e7dfc..c64a745979 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
@@ -79,19 +79,19 @@ public class SystemPropertiesUtils {
     String internalAddress = systemProperties.getProperty("cn_internal_address", null);
     if (internalAddress == null) {
       needReWrite = true;
-    } else if (!internalAddress.equals(conf.getInternalAddress())) {
+    } else if (!internalAddress.equals(conf.getCnInternalAddress())) {
       throw new ConfigurationException(
-          "cn_internal_address", conf.getInternalAddress(), internalAddress);
+          "cn_internal_address", conf.getCnInternalAddress(), internalAddress);
     }
 
     if (systemProperties.getProperty("cn_internal_port", null) == null) {
       needReWrite = true;
     } else {
       int internalPort = Integer.parseInt(systemProperties.getProperty("cn_internal_port"));
-      if (internalPort != conf.getInternalPort()) {
+      if (internalPort != conf.getCnInternalPort()) {
         throw new ConfigurationException(
             "cn_internal_port",
-            String.valueOf(conf.getInternalPort()),
+            String.valueOf(conf.getCnInternalPort()),
             String.valueOf(internalPort));
       }
     }
@@ -100,10 +100,10 @@ public class SystemPropertiesUtils {
       needReWrite = true;
     } else {
       int consensusPort = Integer.parseInt(systemProperties.getProperty("cn_consensus_port"));
-      if (consensusPort != conf.getConsensusPort()) {
+      if (consensusPort != conf.getCnConsensusPort()) {
         throw new ConfigurationException(
             "cn_consensus_port",
-            String.valueOf(conf.getConsensusPort()),
+            String.valueOf(conf.getCnConsensusPort()),
             String.valueOf(consensusPort));
       }
     }
@@ -212,9 +212,10 @@ public class SystemPropertiesUtils {
         String.valueOf(ConfigNodeDescriptor.getInstance().isSeedConfigNode()));
 
     // Startup configuration
-    systemProperties.setProperty("cn_internal_address", String.valueOf(conf.getInternalAddress()));
-    systemProperties.setProperty("cn_internal_port", String.valueOf(conf.getInternalPort()));
-    systemProperties.setProperty("cn_consensus_port", String.valueOf(conf.getConsensusPort()));
+    systemProperties.setProperty(
+        "cn_internal_address", String.valueOf(conf.getCnInternalAddress()));
+    systemProperties.setProperty("cn_internal_port", String.valueOf(conf.getCnInternalPort()));
+    systemProperties.setProperty("cn_consensus_port", String.valueOf(conf.getCnConsensusPort()));
 
     // Consensus protocol configuration
     systemProperties.setProperty(
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 74c5ed5784..d0bad26c56 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
@@ -82,8 +82,8 @@ public class ConfigNodeRegionStateMachine
     this.configManager = configManager;
     this.currentNodeTEndPoint =
         new TEndPoint()
-            .setIp(ConfigNodeDescriptor.getInstance().getConf().getInternalAddress())
-            .setPort(ConfigNodeDescriptor.getInstance().getConf().getConsensusPort());
+            .setIp(ConfigNodeDescriptor.getInstance().getConf().getCnInternalAddress())
+            .setPort(ConfigNodeDescriptor.getInstance().getConf().getCnConsensusPort());
   }
 
   public ConfigManager getConfigManager() {
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
index 47ece8115c..9d5ab17eac 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
@@ -431,7 +431,7 @@ public class ConfigManager implements IManager {
         CONF.getSchemaRegionConsensusProtocolClass());
     clusterParameters.setSeriesPartitionSlotNum(CONF.getSeriesSlotNum());
     clusterParameters.setSeriesPartitionExecutorClass(CONF.getSeriesPartitionExecutorClass());
-    clusterParameters.setDefaultTTL(COMMON_CONF.getDefaultTTLInMs());
+    clusterParameters.setDefaultTTL(COMMON_CONF.getDefaultTtlInMs());
     clusterParameters.setTimePartitionInterval(CONF.getTimePartitionInterval());
     clusterParameters.setDataReplicationFactor(CONF.getDataReplicationFactor());
     clusterParameters.setSchemaReplicationFactor(CONF.getSchemaReplicationFactor());
@@ -906,7 +906,7 @@ public class ConfigManager implements IManager {
     }
 
     if (clusterParameters.getDefaultTTL()
-        != CommonDescriptor.getInstance().getConfig().getDefaultTTLInMs()) {
+        != CommonDescriptor.getInstance().getConfig().getDefaultTtlInMs()) {
       return errorStatus.setMessage(errorPrefix + "default_ttl" + errorSuffix);
     }
     if (clusterParameters.getTimePartitionInterval() != CONF.getTimePartitionInterval()) {
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 5064dff74f..634338de9b 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
@@ -87,7 +87,7 @@ public class ConsensusManager {
                   SIMPLE_CONSENSUS,
                   ConsensusConfig.newBuilder()
                       .setThisNode(
-                          new TEndPoint(CONF.getInternalAddress(), CONF.getConsensusPort()))
+                          new TEndPoint(CONF.getCnInternalAddress(), CONF.getCnConsensusPort()))
                       .setStorageDir("target" + java.io.File.separator + "simple")
                       .build(),
                   gid -> stateMachine)
@@ -103,7 +103,7 @@ public class ConsensusManager {
                   ConsensusConfig.newBuilder()
                       .setThisNodeId(CONF.getConfigNodeId())
                       .setThisNode(
-                          new TEndPoint(CONF.getInternalAddress(), CONF.getConsensusPort()))
+                          new TEndPoint(CONF.getCnInternalAddress(), CONF.getCnConsensusPort()))
                       .setRatisConfig(
                           RatisConfig.newBuilder()
                               .setLeaderLogAppender(
@@ -201,8 +201,8 @@ public class ConsensusManager {
           Collections.singletonList(
               new TConfigNodeLocation(
                   SEED_CONFIG_NODE_ID,
-                  new TEndPoint(CONF.getInternalAddress(), CONF.getInternalPort()),
-                  new TEndPoint(CONF.getInternalAddress(), CONF.getConsensusPort()))));
+                  new TEndPoint(CONF.getCnInternalAddress(), CONF.getCnInternalPort()),
+                  new TEndPoint(CONF.getCnInternalAddress(), CONF.getCnConsensusPort()))));
     }
   }
 
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/RouteBalancer.java b/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/RouteBalancer.java
index 31f28397fb..960c0a38fc 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/RouteBalancer.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/RouteBalancer.java
@@ -27,6 +27,7 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus;
 import org.apache.iotdb.commons.cluster.NodeStatus;
 import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
 import org.apache.iotdb.commons.concurrent.threadpool.ScheduledExecutorUtil;
+import org.apache.iotdb.commons.loadbalance.LeaderDistributionPolicy;
 import org.apache.iotdb.confignode.client.DataNodeRequestType;
 import org.apache.iotdb.confignode.client.async.AsyncDataNodeClientPool;
 import org.apache.iotdb.confignode.client.async.handlers.AsyncClientHandler;
@@ -120,10 +121,10 @@ public class RouteBalancer {
     this.regionRouteMap = new RegionRouteMap();
 
     switch (CONF.getLeaderDistributionPolicy()) {
-      case ILeaderBalancer.GREEDY_POLICY:
+      case LeaderDistributionPolicy.GREEDY_POLICY:
         this.leaderBalancer = new GreedyLeaderBalancer();
         break;
-      case ILeaderBalancer.MIN_COST_FLOW_POLICY:
+      case LeaderDistributionPolicy.MIN_COST_FLOW_POLICY:
       default:
         this.leaderBalancer = new MinCostFlowLeaderBalancer();
         break;
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/router/leader/ILeaderBalancer.java b/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/router/leader/ILeaderBalancer.java
index a69ccc9491..9f8fb45335 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/router/leader/ILeaderBalancer.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/balancer/router/leader/ILeaderBalancer.java
@@ -26,9 +26,6 @@ import java.util.Set;
 
 public interface ILeaderBalancer {
 
-  String GREEDY_POLICY = "GREEDY";
-  String MIN_COST_FLOW_POLICY = "MIN_COST_FLOW";
-
   /**
    * Generate an optimal leader distribution.
    *
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/partition/PartitionManager.java b/confignode/src/main/java/org/apache/iotdb/confignode/manager/partition/PartitionManager.java
index 8a0072971d..7b01530848 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/partition/PartitionManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/partition/PartitionManager.java
@@ -29,6 +29,7 @@ import org.apache.iotdb.commons.cluster.RegionRoleType;
 import org.apache.iotdb.commons.cluster.RegionStatus;
 import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
 import org.apache.iotdb.commons.concurrent.threadpool.ScheduledExecutorUtil;
+import org.apache.iotdb.commons.loadbalance.RegionGroupExtensionPolicy;
 import org.apache.iotdb.commons.partition.DataPartitionTable;
 import org.apache.iotdb.commons.partition.SchemaPartitionTable;
 import org.apache.iotdb.commons.partition.executor.SeriesPartitionExecutor;
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNode.java b/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNode.java
index f7318c9969..deb6ffaaae 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNode.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNode.java
@@ -133,8 +133,8 @@ public class ConfigNode implements ConfigNodeMBean {
             .applyConfigNode(
                 new TConfigNodeLocation(
                     SEED_CONFIG_NODE_ID,
-                    new TEndPoint(CONF.getInternalAddress(), CONF.getInternalPort()),
-                    new TEndPoint(CONF.getInternalAddress(), CONF.getConsensusPort())));
+                    new TEndPoint(CONF.getCnInternalAddress(), CONF.getCnInternalPort()),
+                    new TEndPoint(CONF.getCnInternalAddress(), CONF.getCnConsensusPort())));
         // We always set up Seed-ConfigNode's RPC service lastly to ensure that
         // the external service is not provided until Seed-ConfigNode is fully initialized
         setUpRPCService();
@@ -237,11 +237,11 @@ public class ConfigNode implements ConfigNodeMBean {
         new TConfigNodeRegisterReq(
             new TConfigNodeLocation(
                 INIT_NON_SEED_CONFIG_NODE_ID,
-                new TEndPoint(CONF.getInternalAddress(), CONF.getInternalPort()),
-                new TEndPoint(CONF.getInternalAddress(), CONF.getConsensusPort())),
+                new TEndPoint(CONF.getCnInternalAddress(), CONF.getCnInternalPort()),
+                new TEndPoint(CONF.getCnInternalAddress(), CONF.getCnConsensusPort())),
             configManager.getClusterParameters());
 
-    TEndPoint targetConfigNode = CONF.getTargetConfigNode();
+    TEndPoint targetConfigNode = CONF.getCnTargetConfigNode();
     if (targetConfigNode == null) {
       LOGGER.error(
           "Please set the cn_target_config_node_list parameter in iotdb-confignode.properties file.");
@@ -297,10 +297,10 @@ public class ConfigNode implements ConfigNodeMBean {
             CONF.getClusterName(),
             new TConfigNodeLocation(
                 CONF.getConfigNodeId(),
-                new TEndPoint(CONF.getInternalAddress(), CONF.getInternalPort()),
-                new TEndPoint(CONF.getInternalAddress(), CONF.getConsensusPort())));
+                new TEndPoint(CONF.getCnInternalAddress(), CONF.getCnInternalPort()),
+                new TEndPoint(CONF.getCnInternalAddress(), CONF.getCnConsensusPort())));
 
-    TEndPoint targetConfigNode = CONF.getTargetConfigNode();
+    TEndPoint targetConfigNode = CONF.getCnTargetConfigNode();
     if (targetConfigNode == null) {
       LOGGER.error(
           "Please set the cn_target_config_node_list parameter in iotdb-confignode.properties file.");
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCService.java b/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCService.java
index 824b02b3e2..dd15d36229 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCService.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCService.java
@@ -72,7 +72,7 @@ public class ConfigNodeRPCService extends ThriftService implements ConfigNodeRPC
               getBindIP(),
               getBindPort(),
               configConf.getCnRpcMaxConcurrentClientNum(),
-              configConf.getThriftServerAwaitTimeForStopService(),
+              configConf.getCnConnectionTimeoutMs() / 1000,
               new ConfigNodeRPCServiceHandler(),
               commonConfig.isRpcThriftCompressionEnabled());
     } catch (RPCServiceException e) {
@@ -84,11 +84,11 @@ public class ConfigNodeRPCService extends ThriftService implements ConfigNodeRPC
 
   @Override
   public String getBindIP() {
-    return configConf.getInternalAddress();
+    return configConf.getCnInternalAddress();
   }
 
   @Override
   public int getBindPort() {
-    return configConf.getInternalPort();
+    return configConf.getCnInternalPort();
   }
 }
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java b/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
index f3091c0066..f5247a39ab 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
@@ -276,7 +276,7 @@ public class ConfigNodeRPCServiceProcessor implements IConfigNodeRPCService.Ifac
 
     // Set default configurations if necessary
     if (!storageGroupSchema.isSetTTL()) {
-      storageGroupSchema.setTTL(CommonDescriptor.getInstance().getConfig().getDefaultTTLInMs());
+      storageGroupSchema.setTTL(CommonDescriptor.getInstance().getConfig().getDefaultTtlInMs());
     }
     if (!storageGroupSchema.isSetSchemaReplicationFactor()) {
       storageGroupSchema.setSchemaReplicationFactor(
diff --git a/influxdb-protocol/src/main/java/org/apache/iotdb/influxdb/session/InfluxDBSession.java b/influxdb-protocol/src/main/java/org/apache/iotdb/influxdb/session/InfluxDBSession.java
index 9de7a1fde3..2ba99f1b19 100644
--- a/influxdb-protocol/src/main/java/org/apache/iotdb/influxdb/session/InfluxDBSession.java
+++ b/influxdb-protocol/src/main/java/org/apache/iotdb/influxdb/session/InfluxDBSession.java
@@ -135,7 +135,7 @@ public class InfluxDBSession {
       throw new IoTDBConnectionException(e);
     }
 
-    if (IoTDBDescriptor.getInstance().getConfig().isRpcThriftCompressionEnable()) {
+    if (IoTDBDescriptor.getInstance().getConfig().isDnRpcThriftCompressionEnable()) {
       client = new InfluxDBService.Client(new TCompactProtocol(transport));
     } else {
       client = new InfluxDBService.Client(new TBinaryProtocol(transport));
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBRpcCompressionIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBRpcCompressionIT.java
index 7b24d44c59..88b26237e7 100644
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBRpcCompressionIT.java
+++ b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBRpcCompressionIT.java
@@ -41,9 +41,9 @@ import static org.junit.Assert.assertEquals;
 @Category({LocalStandaloneTest.class})
 public class IoTDBRpcCompressionIT {
   boolean rpcThriftCompression =
-      IoTDBDescriptor.getInstance().getConfig().isRpcThriftCompressionEnable();
+      IoTDBDescriptor.getInstance().getConfig().isDnRpcThriftCompressionEnable();
   boolean rpcAdvancedCompression =
-      IoTDBDescriptor.getInstance().getConfig().isRpcAdvancedCompressionEnable();
+      IoTDBDescriptor.getInstance().getConfig().isDnRpcAdvancedCompressionEnable();
 
   @Before
   public void setUp() throws Exception {}
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBSessionTimeoutIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBSessionTimeoutIT.java
index 19d56546ca..3f9e794045 100644
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBSessionTimeoutIT.java
+++ b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBSessionTimeoutIT.java
@@ -44,7 +44,7 @@ public class IoTDBSessionTimeoutIT {
 
   @Before
   public void setUp() throws ClassNotFoundException {
-    IoTDBDescriptor.getInstance().getConfig().setSessionTimeoutThreshold(1000);
+    IoTDBDescriptor.getInstance().getConfig().setDnSessionTimeoutThreshold(1000);
     EnvironmentUtils.envSetUp();
     Class.forName(Config.JDBC_DRIVER_NAME);
   }
@@ -52,7 +52,7 @@ public class IoTDBSessionTimeoutIT {
   @After
   public void tearDown() throws Exception {
     EnvironmentUtils.cleanEnv();
-    IoTDBDescriptor.getInstance().getConfig().setSessionTimeoutThreshold(0);
+    IoTDBDescriptor.getInstance().getConfig().setDnSessionTimeoutThreshold(0);
   }
 
   @Test
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBTtlIT.java b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBTtlIT.java
index 1d909b158b..d95740fecf 100644
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBTtlIT.java
+++ b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBTtlIT.java
@@ -322,7 +322,7 @@ public class IoTDBTtlIT {
 
   @Test
   public void testDefaultTTL() throws SQLException {
-    CommonDescriptor.getInstance().getConfig().setDefaultTTLInMs(10000);
+    CommonDescriptor.getInstance().getConfig().setDefaultTtlInMs(10000);
     try (Connection connection = EnvFactory.getEnv().getConnection();
         Statement statement = connection.createStatement()) {
       statement.execute("CREATE DATABASE root.group1");
@@ -333,7 +333,7 @@ public class IoTDBTtlIT {
           result.equals("root.group1,10000\n" + "root.group2,10000\n")
               || result.equals("root.group2,10000\n" + "root.group1,10000\n"));
     } finally {
-      CommonDescriptor.getInstance().getConfig().setDefaultTTLInMs(Long.MAX_VALUE);
+      CommonDescriptor.getInstance().getConfig().setDefaultTtlInMs(Long.MAX_VALUE);
     }
   }
 
diff --git a/integration/src/test/java/org/apache/iotdb/db/integration/env/StandaloneEnvConfig.java b/integration/src/test/java/org/apache/iotdb/db/integration/env/StandaloneEnvConfig.java
index 90d332da51..e8db7324a3 100644
--- a/integration/src/test/java/org/apache/iotdb/db/integration/env/StandaloneEnvConfig.java
+++ b/integration/src/test/java/org/apache/iotdb/db/integration/env/StandaloneEnvConfig.java
@@ -70,14 +70,14 @@ public class StandaloneEnvConfig implements BaseConfig {
   public BaseConfig setRpcThriftCompressionEnable(boolean rpcThriftCompressionEnable) {
     IoTDBDescriptor.getInstance()
         .getConfig()
-        .setRpcThriftCompressionEnable(rpcThriftCompressionEnable);
+        .setDnRpcThriftCompressionEnable(rpcThriftCompressionEnable);
     return this;
   }
 
   public BaseConfig setRpcAdvancedCompressionEnable(boolean rpcAdvancedCompressionEnable) {
     IoTDBDescriptor.getInstance()
         .getConfig()
-        .setRpcAdvancedCompressionEnable(rpcAdvancedCompressionEnable);
+        .setDnRpcAdvancedCompressionEnable(rpcAdvancedCompressionEnable);
     return this;
   }
 
diff --git a/node-commons/src/assembly/resources/conf/iotdb-common.properties b/node-commons/src/assembly/resources/conf/iotdb-common.properties
index ec90b9915b..42706abda6 100644
--- a/node-commons/src/assembly/resources/conf/iotdb-common.properties
+++ b/node-commons/src/assembly/resources/conf/iotdb-common.properties
@@ -36,6 +36,7 @@ cluster_name=defaultCluster
 # Datatype: string
 # config_node_consensus_protocol_class=org.apache.iotdb.consensus.ratis.RatisConsensus
 
+
 # Default number of schema replicas
 # Can not be changed after the first start
 # Datatype: int
@@ -49,6 +50,7 @@ cluster_name=defaultCluster
 # Datatype: string
 # schema_region_consensus_protocol_class=org.apache.iotdb.consensus.ratis.RatisConsensus
 
+
 # Default number of data replicas
 # Can not be changed after the first start
 # Datatype: int
@@ -92,6 +94,14 @@ cluster_name=defaultCluster
 # Datatype: Double
 # schema_region_per_data_node=1.0
 
+# The maximum number of DataRegions expected to be managed by each processor
+# when using AUTO data_region_group_extension_policy.
+# Notice: Since each Database requires at least two DataRegionGroups to manage its data,
+# this parameter doesn't limit the number of DataRegions when there are too many Databases.
+# Datatype: Double
+# data_region_per_processor=1.0
+
+
 # The policy of extension SchemaRegionGroup for each Database.
 # These policies are currently supported:
 # 1. CUSTOM(Each Database will allocate schema_region_group_per_database RegionGroups as soon as created)
@@ -116,12 +126,6 @@ cluster_name=defaultCluster
 # Datatype: Integer
 # data_region_group_per_database=1
 
-# The maximum number of DataRegions expected to be managed by each processor
-# when using AUTO data_region_group_extension_policy.
-# Notice: Since each Database requires at least two DataRegionGroups to manage its data,
-# this parameter doesn't limit the number of DataRegions when there are too many Databases.
-# Datatype: Double
-# data_region_per_processor=1.0
 
 # The least number of DataRegionGroup for each StorageGroup.
 # The ConfigNode-leader will create a DataRegionGroup for each newborn SeriesPartitionSlot
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 212498e522..d0bde6b9bb 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
@@ -19,108 +19,299 @@
 package org.apache.iotdb.commons.conf;
 
 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.tsfile.fileSystem.FSType;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.File;
-import java.util.concurrent.TimeUnit;
 
 public class CommonConfig {
 
-  public static final String CONFIG_NAME = "iotdb-common.properties";
+  public static final String CONF_FILE_NAME = "iotdb-common.properties";
   private static final Logger logger = LoggerFactory.getLogger(CommonConfig.class);
 
-  // Open ID Secret
-  private String openIdProviderUrl = "";
+  /** Cluster Configuration */
+  // ClusterId, the default value "defaultCluster" will be changed after join cluster
+  private volatile String clusterName = "defaultCluster";
+
+  /** Replication configuration */
+  // ConfigNodeGroup consensus protocol
+  private ConsensusProtocolClass configNodeConsensusProtocolClass =
+      ConsensusProtocolClass.RATIS_CONSENSUS;
+
+  // Default number of SchemaRegion replicas
+  private int schemaReplicationFactor = 1;
+  // SchemaRegion consensus protocol
+  private ConsensusProtocolClass schemaRegionConsensusProtocolClass =
+      ConsensusProtocolClass.RATIS_CONSENSUS;
+
+  // Default number of DataRegion replicas
+  private int dataReplicationFactor = 1;
+  // DataRegion consensus protocol
+  private ConsensusProtocolClass dataRegionConsensusProtocolClass =
+      ConsensusProtocolClass.IOT_CONSENSUS;
+
+  /** Load balancing configuration */
+  // Number of SeriesPartitionSlots per StorageGroup
+  private int seriesSlotNum = 10000;
+  // SeriesPartitionSlot executor class
+  private String seriesPartitionExecutorClass =
+      "org.apache.iotdb.commons.partition.executor.hash.BKDRHashExecutor";
+
+  // The maximum number of SchemaRegions expected to be managed by each DataNode
+  private double schemaRegionPerDataNode = schemaReplicationFactor;
+  // The maximum number of DataRegions expected to be managed by each DataNode
+  private double dataRegionPerProcessor = 1.0;
+
+  // The policy of extension SchemaRegionGroup for each Database
+  private RegionGroupExtensionPolicy schemaRegionGroupExtensionPolicy =
+      RegionGroupExtensionPolicy.AUTO;
+  // The number of SchemaRegionGroups for each Database when using CUSTOM extension policy
+  private int schemaRegionGroupPerDatabase = 1;
+  // The policy of extension DataRegionGroup for each Database
+  private RegionGroupExtensionPolicy dataRegionGroupExtensionPolicy =
+      RegionGroupExtensionPolicy.AUTO;
+  // The number of DataRegionGroups for each Database when using CUSTOM extension policy
+  private int dataRegionGroupPerDatabase = 1;
+
+  // The least number of SchemaRegionGroup for each Database
+  private int leastSchemaRegionGroupNum = 1;
+  // The least number of DataRegionGroup for each Database
+  private int leastDataRegionGroupNum = 5;
+
+  // DataPartition within the same SeriesPartitionSlot will inherit the allocation result of the
+  // previous TimePartitionSlot if set true
+  private boolean enableDataPartitionInheritPolicy = false;
+
+  // The policy of cluster RegionGroups' leader distribution
+  private LeaderDistributionPolicy leaderDistributionPolicy =
+      LeaderDistributionPolicy.MIN_COST_FLOW;
+  // Whether to enable auto leader balance for Ratis consensus protocol
+  private boolean enableAutoLeaderBalanceForRatisConsensus = false;
+  // Whether to enable auto leader balance for IoTConsensus protocol
+  private boolean enableAutoLeaderBalanceForIoTConsensus = true;
+
+  /** Cluster management */
+  // Time partition interval in milliseconds
+  private long timePartitionInterval = 604_800_000;
+  // The heartbeat interval in milliseconds
+  private long heartbeatIntervalInMs = 1000;
+  // Disk Monitor
+  private double diskSpaceWarningThreshold = 0.05;
+
+  /** Memory Control Configuration */
+  // TODO: Move from IoTDBConfig
+
+  /** Schema Engine Configuration */
+  // TODO: Move from IoTDBConfig
+
+  /** Configurations for creating schema automatically */
+  // TODO: Move from IoTDBConfig
+
+  /** Query Configurations */
+  // The read consistency level
+  private String readConsistencyLevel = "strong";
+  // TODO: Move from IoTDBConfig
 
-  // the authorizer provider class which extends BasicAuthorizer
+  /** Storage Engine Configuration */
+  // 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
+
+  /** Compaction Configurations */
+  // TODO: Move from IoTDBConfig
+
+  /** Write Ahead Log Configuration */
+  // TODO: Move from IoTDBConfig
+
+  /** TsFile Configurations */
+  // TODO: Move from IoTDBConfig
+
+  /** Watermark Configuration */
+  // TODO: Move from IoTDBConfig
+
+  /** Authorization Configuration */
+  // The authorizer provider class which extends BasicAuthorizer
   private String authorizerProvider =
       "org.apache.iotdb.commons.auth.authorizer.LocalFileAuthorizer";
+  // Open ID Secret
+  private String openIdProviderUrl = "";
 
-  /** Encryption provider class */
+  // Encryption provider class
   private String encryptDecryptProvider =
       "org.apache.iotdb.commons.security.encrypt.MessageDigestEncrypt";
 
-  /** Encryption provided class parameter */
+  // Encryption provided class parameter
   private String encryptDecryptProviderParameter;
 
   private String adminName = "root";
 
   private String adminPassword = "root";
 
+  // TODO: Move from IoTDBConfig
+
+  /** UDF Configuration */
+  // 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
+  private String triggerDir =
+      IoTDBConstant.EXT_FOLDER_NAME + File.separator + IoTDBConstant.TRIGGER_FOLDER_NAME;
+  // External temporary lib directory for storing downloaded trigger JAR files
+  private String triggerTemporaryLibDir =
+      triggerDir + File.separator + IoTDBConstant.TMP_FOLDER_NAME;
+  // TODO: Move from IoTDBConfig
+
+  /** Select-Into Configuration */
+  // TODO: Move from IoTDBConfig
+
+  /** Continuous Query Configuration */
+  // TODO: Move from IoTDBConfig
+
+  /** PIPE Configuration */
+  // TODO: Move from IoTDBConfig
+
+  /** 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;
+
+  // RatisConsensus protocol, trigger a snapshot when ratis_snapshot_trigger_threshold logs are
+  // written
+  private long configNodeRatisSnapshotTriggerThreshold = 400000L;
+  private long schemaRegionRatisSnapshotTriggerThreshold = 400000L;
+  private long dataRegionRatisSnapshotTriggerThreshold = 400000L;
+
+  // RatisConsensus protocol, allow flushing Raft Log asynchronously
+  private boolean configNodeRatisLogUnsafeFlushEnable = false;
+  private boolean schemaRegionRatisLogUnsafeFlushEnable = false;
+  private boolean dataRegionRatisLogUnsafeFlushEnable = false;
+
+  // RatisConsensus protocol, max capacity of a single Raft Log segment
+  private long configNodeRatisLogSegmentSizeMax = 24 * 1024 * 1024L;
+  private long schemaRegionRatisLogSegmentSizeMax = 24 * 1024 * 1024L;
+  private long dataRegionRatisLogSegmentSizeMax = 24 * 1024 * 1024L;
+  private long configNodeSimpleConsensusLogSegmentSizeMax = 24 * 1024 * 1024L;
+
+  // RatisConsensus protocol, flow control window for ratis grpc log appender
+  private long configNodeRatisGrpcFlowControlWindow = 4 * 1024 * 1024L;
+  private long schemaRegionRatisGrpcFlowControlWindow = 4 * 1024 * 1024L;
+  private long dataRegionRatisGrpcFlowControlWindow = 4 * 1024 * 1024L;
+
+  // RatisConsensus protocol, min election timeout for leader election
+  private long configNodeRatisRpcLeaderElectionTimeoutMinMs = 2000L;
+  private long schemaRegionRatisRpcLeaderElectionTimeoutMinMs = 2000L;
+  private long dataRegionRatisRpcLeaderElectionTimeoutMinMs = 2000L;
+
+  // RatisConsensus protocol, max election timeout for leader election
+  private long configNodeRatisRpcLeaderElectionTimeoutMaxMs = 4000L;
+  private long schemaRegionRatisRpcLeaderElectionTimeoutMaxMs = 4000L;
+  private long dataRegionRatisRpcLeaderElectionTimeoutMaxMs = 4000L;
+
+  // RatisConsensus protocol, request timeout for ratis client
+  private long configNodeRatisRequestTimeoutMs = 10000L;
+  private long schemaRegionRatisRequestTimeoutMs = 10000L;
+  private long dataRegionRatisRequestTimeoutMs = 10000L;
+
+  // RatisConsensus protocol, exponential back-off retry policy params
+  private int configNodeRatisMaxRetryAttempts = 10;
+  private long configNodeRatisInitialSleepTimeMs = 100;
+  private long configNodeRatisMaxSleepTimeMs = 10000;
+
+  private int dataRegionRatisMaxRetryAttempts = 10;
+  private long dataRegionRatisInitialSleepTimeMs = 100;
+  private long dataRegionRatisMaxSleepTimeMs = 10000;
+
+  private int schemaRegionRatisMaxRetryAttempts = 10;
+  private long schemaRegionRatisInitialSleepTimeMs = 100;
+  private long schemaRegionRatisMaxSleepTimeMs = 10000;
+
+  private long configNodeRatisPreserveLogsWhenPurge = 1000;
+  private long schemaRegionRatisPreserveLogsWhenPurge = 1000;
+  private long dataRegionRatisPreserveLogsWhenPurge = 1000;
+
+  // first election timeout shares between 3 regions
+  private long ratisFirstElectionTimeoutMinMs = 50;
+  private long ratisFirstElectionTimeoutMaxMs = 150;
+
+  private long configNodeRatisLogMax = 2L * 1024 * 1024 * 1024; // 2G
+  private long schemaRegionRatisLogMax = 2L * 1024 * 1024 * 1024; // 2G
+  private long dataRegionRatisLogMax = 20L * 1024 * 1024 * 1024; // 20G
+
+  /** Procedure Configuration */
+  // Procedure Evict ttl
+  private int procedureCompletedEvictTTL = 800;
+  // Procedure completed clean interval
+  private int procedureCompletedCleanInterval = 30;
+  // Procedure core worker threads size
+  private int procedureCoreWorkerThreadsCount =
+      Math.max(Runtime.getRuntime().availableProcessors() / 4, 16);
+
+  /** MQTT Broker Configuration */
+  // TODO: Move from IoTDBConfig
+
+  /** REST Service Configuration */
+  // TODO: Move from IoTDBConfig
+
+  /** InfluxDB RPC Service Configuration */
+  // TODO: Move from IoTDBConfig
+
+  /** Internal Configurations(Unconfigurable in .properties file) */
+  // NodeStatus
+  private volatile NodeStatus status = NodeStatus.Running;
+
+  private volatile String statusReason = null;
+  // Common folders
   private String userFolder =
       IoTDBConstant.DEFAULT_BASE_DIR
           + File.separator
           + IoTDBConstant.SYSTEM_FOLDER_NAME
           + File.separator
           + "users";
-
   private String roleFolder =
       IoTDBConstant.DEFAULT_BASE_DIR
           + File.separator
           + IoTDBConstant.SYSTEM_FOLDER_NAME
           + File.separator
           + "roles";
-
   private String procedureWalFolder =
       IoTDBConstant.DEFAULT_BASE_DIR
           + File.separator
           + IoTDBConstant.SYSTEM_FOLDER_NAME
           + File.separator
           + "procedure";
-
-  /** Sync directory, including the log and hardlink tsfiles */
+  // Sync directory, including the log and hardlink tsfiles
   private String syncDir =
       IoTDBConstant.DEFAULT_BASE_DIR + File.separator + IoTDBConstant.SYNC_FOLDER_NAME;
-
-  /** WAL directories */
+  // 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) */
+  // Default system file storage is in local file system (unsupported)
   private FSType systemFileStorageFs = FSType.LOCAL;
 
-  /**
-   * 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;
-
-  /** Thrift socket and connection timeout between data node and config node. */
-  private int connectionTimeoutInMS = (int) TimeUnit.SECONDS.toMillis(20);
-
-  /**
-   * ClientManager will have so many selector threads (TAsyncClientManager) to distribute to its
-   * clients.
-   */
-  private int selectorNumOfClientManager = 1;
-
-  /** whether to use thrift compression. */
-  private boolean isRpcThriftCompressionEnabled = false;
-
-  private int maxTotalClientForEachNode = 300;
-
-  private int maxIdleClientForEachNode = 200;
-
-  /** What will the system do when unrecoverable error occurs. */
+  // What will the system do when unrecoverable error occurs
   private HandleSystemErrorStrategy handleSystemErrorStrategy =
       HandleSystemErrorStrategy.CHANGE_TO_READ_ONLY;
 
-  /** Status of current system. */
-  private volatile NodeStatus status = NodeStatus.Running;
-
-  private volatile String statusReason = null;
-
-  /** Disk Monitor */
-  private double diskSpaceWarningThreshold = 0.05;
-
-  CommonConfig() {}
+  CommonConfig() {
+    // Empty constructor
+  }
 
   public void updatePath(String homeDir) {
     userFolder = addHomeDir(userFolder, homeDir);
@@ -143,28 +334,204 @@ public class CommonConfig {
     return dir;
   }
 
-  public String getEncryptDecryptProvider() {
-    return encryptDecryptProvider;
+  public String getClusterName() {
+    return clusterName;
   }
 
-  public void setEncryptDecryptProvider(String encryptDecryptProvider) {
-    this.encryptDecryptProvider = encryptDecryptProvider;
+  public void setClusterName(String clusterName) {
+    this.clusterName = clusterName;
   }
 
-  public String getEncryptDecryptProviderParameter() {
-    return encryptDecryptProviderParameter;
+  public ConsensusProtocolClass getConfigNodeConsensusProtocolClass() {
+    return configNodeConsensusProtocolClass;
   }
 
-  public void setEncryptDecryptProviderParameter(String encryptDecryptProviderParameter) {
-    this.encryptDecryptProviderParameter = encryptDecryptProviderParameter;
+  public void setConfigNodeConsensusProtocolClass(ConsensusProtocolClass configNodeConsensusProtocolClass) {
+    this.configNodeConsensusProtocolClass = configNodeConsensusProtocolClass;
   }
 
-  public String getOpenIdProviderUrl() {
-    return openIdProviderUrl;
+  public int getSchemaReplicationFactor() {
+    return schemaReplicationFactor;
   }
 
-  public void setOpenIdProviderUrl(String openIdProviderUrl) {
-    this.openIdProviderUrl = openIdProviderUrl;
+  public void setSchemaReplicationFactor(int schemaReplicationFactor) {
+    this.schemaReplicationFactor = schemaReplicationFactor;
+  }
+
+  public ConsensusProtocolClass getSchemaRegionConsensusProtocolClass() {
+    return schemaRegionConsensusProtocolClass;
+  }
+
+  public void setSchemaRegionConsensusProtocolClass(ConsensusProtocolClass schemaRegionConsensusProtocolClass) {
+    this.schemaRegionConsensusProtocolClass = schemaRegionConsensusProtocolClass;
+  }
+
+  public int getDataReplicationFactor() {
+    return dataReplicationFactor;
+  }
+
+  public void setDataReplicationFactor(int dataReplicationFactor) {
+    this.dataReplicationFactor = dataReplicationFactor;
+  }
+
+  public ConsensusProtocolClass getDataRegionConsensusProtocolClass() {
+    return dataRegionConsensusProtocolClass;
+  }
+
+  public void setDataRegionConsensusProtocolClass(ConsensusProtocolClass dataRegionConsensusProtocolClass) {
+    this.dataRegionConsensusProtocolClass = dataRegionConsensusProtocolClass;
+  }
+
+  public int getSeriesSlotNum() {
+    return seriesSlotNum;
+  }
+
+  public void setSeriesSlotNum(int seriesSlotNum) {
+    this.seriesSlotNum = seriesSlotNum;
+  }
+
+  public String getSeriesPartitionExecutorClass() {
+    return seriesPartitionExecutorClass;
+  }
+
+  public void setSeriesPartitionExecutorClass(String seriesPartitionExecutorClass) {
+    this.seriesPartitionExecutorClass = seriesPartitionExecutorClass;
+  }
+
+  public double getSchemaRegionPerDataNode() {
+    return schemaRegionPerDataNode;
+  }
+
+  public void setSchemaRegionPerDataNode(double schemaRegionPerDataNode) {
+    this.schemaRegionPerDataNode = schemaRegionPerDataNode;
+  }
+
+  public double getDataRegionPerProcessor() {
+    return dataRegionPerProcessor;
+  }
+
+  public void setDataRegionPerProcessor(double dataRegionPerProcessor) {
+    this.dataRegionPerProcessor = dataRegionPerProcessor;
+  }
+
+  public RegionGroupExtensionPolicy getSchemaRegionGroupExtensionPolicy() {
+    return schemaRegionGroupExtensionPolicy;
+  }
+
+  public void setSchemaRegionGroupExtensionPolicy(RegionGroupExtensionPolicy schemaRegionGroupExtensionPolicy) {
+    this.schemaRegionGroupExtensionPolicy = schemaRegionGroupExtensionPolicy;
+  }
+
+  public int getSchemaRegionGroupPerDatabase() {
+    return schemaRegionGroupPerDatabase;
+  }
+
+  public void setSchemaRegionGroupPerDatabase(int schemaRegionGroupPerDatabase) {
+    this.schemaRegionGroupPerDatabase = schemaRegionGroupPerDatabase;
+  }
+
+  public RegionGroupExtensionPolicy getDataRegionGroupExtensionPolicy() {
+    return dataRegionGroupExtensionPolicy;
+  }
+
+  public void setDataRegionGroupExtensionPolicy(RegionGroupExtensionPolicy dataRegionGroupExtensionPolicy) {
+    this.dataRegionGroupExtensionPolicy = dataRegionGroupExtensionPolicy;
+  }
+
+  public int getDataRegionGroupPerDatabase() {
+    return dataRegionGroupPerDatabase;
+  }
+
+  public void setDataRegionGroupPerDatabase(int dataRegionGroupPerDatabase) {
+    this.dataRegionGroupPerDatabase = dataRegionGroupPerDatabase;
+  }
+
+  public int getLeastSchemaRegionGroupNum() {
+    return leastSchemaRegionGroupNum;
+  }
+
+  public void setLeastSchemaRegionGroupNum(int leastSchemaRegionGroupNum) {
+    this.leastSchemaRegionGroupNum = leastSchemaRegionGroupNum;
+  }
+
+  public int getLeastDataRegionGroupNum() {
+    return leastDataRegionGroupNum;
+  }
+
+  public void setLeastDataRegionGroupNum(int leastDataRegionGroupNum) {
+    this.leastDataRegionGroupNum = leastDataRegionGroupNum;
+  }
+
+  public boolean isEnableDataPartitionInheritPolicy() {
+    return enableDataPartitionInheritPolicy;
+  }
+
+  public void setEnableDataPartitionInheritPolicy(boolean enableDataPartitionInheritPolicy) {
+    this.enableDataPartitionInheritPolicy = enableDataPartitionInheritPolicy;
+  }
+
+  public LeaderDistributionPolicy getLeaderDistributionPolicy() {
+    return leaderDistributionPolicy;
+  }
+
+  public void setLeaderDistributionPolicy(LeaderDistributionPolicy leaderDistributionPolicy) {
+    this.leaderDistributionPolicy = leaderDistributionPolicy;
+  }
+
+  public boolean isEnableAutoLeaderBalanceForRatisConsensus() {
+    return enableAutoLeaderBalanceForRatisConsensus;
+  }
+
+  public void setEnableAutoLeaderBalanceForRatisConsensus(boolean enableAutoLeaderBalanceForRatisConsensus) {
+    this.enableAutoLeaderBalanceForRatisConsensus = enableAutoLeaderBalanceForRatisConsensus;
+  }
+
+  public boolean isEnableAutoLeaderBalanceForIoTConsensus() {
+    return enableAutoLeaderBalanceForIoTConsensus;
+  }
+
+  public void setEnableAutoLeaderBalanceForIoTConsensus(boolean enableAutoLeaderBalanceForIoTConsensus) {
+    this.enableAutoLeaderBalanceForIoTConsensus = enableAutoLeaderBalanceForIoTConsensus;
+  }
+
+  public long getTimePartitionInterval() {
+    return timePartitionInterval;
+  }
+
+  public void setTimePartitionInterval(long timePartitionInterval) {
+    this.timePartitionInterval = timePartitionInterval;
+  }
+
+  public long getHeartbeatIntervalInMs() {
+    return heartbeatIntervalInMs;
+  }
+
+  public void setHeartbeatIntervalInMs(long heartbeatIntervalInMs) {
+    this.heartbeatIntervalInMs = heartbeatIntervalInMs;
+  }
+
+  public double getDiskSpaceWarningThreshold() {
+    return diskSpaceWarningThreshold;
+  }
+
+  public void setDiskSpaceWarningThreshold(double diskSpaceWarningThreshold) {
+    this.diskSpaceWarningThreshold = diskSpaceWarningThreshold;
+  }
+
+  public String getReadConsistencyLevel() {
+    return readConsistencyLevel;
+  }
+
+  public void setReadConsistencyLevel(String readConsistencyLevel) {
+    this.readConsistencyLevel = readConsistencyLevel;
+  }
+
+  public long getDefaultTtlInMs() {
+    return defaultTtlInMs;
+  }
+
+  public void setDefaultTtlInMs(long defaultTtlInMs) {
+    this.defaultTtlInMs = defaultTtlInMs;
   }
 
   public String getAuthorizerProvider() {
@@ -175,6 +542,30 @@ public class CommonConfig {
     this.authorizerProvider = authorizerProvider;
   }
 
+  public String getOpenIdProviderUrl() {
+    return openIdProviderUrl;
+  }
+
+  public void setOpenIdProviderUrl(String openIdProviderUrl) {
+    this.openIdProviderUrl = openIdProviderUrl;
+  }
+
+  public String getEncryptDecryptProvider() {
+    return encryptDecryptProvider;
+  }
+
+  public void setEncryptDecryptProvider(String encryptDecryptProvider) {
+    this.encryptDecryptProvider = encryptDecryptProvider;
+  }
+
+  public String getEncryptDecryptProviderParameter() {
+    return encryptDecryptProviderParameter;
+  }
+
+  public void setEncryptDecryptProviderParameter(String encryptDecryptProviderParameter) {
+    this.encryptDecryptProviderParameter = encryptDecryptProviderParameter;
+  }
+
   public String getAdminName() {
     return adminName;
   }
@@ -191,120 +582,460 @@ public class CommonConfig {
     this.adminPassword = adminPassword;
   }
 
-  public String getUserFolder() {
-    return userFolder;
+  public String getUdfDir() {
+    return udfDir;
   }
 
-  public void setUserFolder(String userFolder) {
-    this.userFolder = userFolder;
+  public void setUdfDir(String udfDir) {
+    this.udfDir = udfDir;
   }
 
-  public String getRoleFolder() {
-    return roleFolder;
+  public String getUdfTemporaryLibDir() {
+    return udfTemporaryLibDir;
   }
 
-  public void setRoleFolder(String roleFolder) {
-    this.roleFolder = roleFolder;
+  public void setUdfTemporaryLibDir(String udfTemporaryLibDir) {
+    this.udfTemporaryLibDir = udfTemporaryLibDir;
   }
 
-  public String getProcedureWalFolder() {
-    return procedureWalFolder;
+  public String getTriggerDir() {
+    return triggerDir;
   }
 
-  public void setProcedureWalFolder(String procedureWalFolder) {
-    this.procedureWalFolder = procedureWalFolder;
+  public void setTriggerDir(String triggerDir) {
+    this.triggerDir = triggerDir;
   }
 
-  public String getSyncDir() {
-    return syncDir;
+  public String getTriggerTemporaryLibDir() {
+    return triggerTemporaryLibDir;
   }
 
-  public void setSyncDir(String syncDir) {
-    this.syncDir = syncDir;
+  public void setTriggerTemporaryLibDir(String triggerTemporaryLibDir) {
+    this.triggerTemporaryLibDir = triggerTemporaryLibDir;
   }
 
-  public String[] getWalDirs() {
-    return walDirs;
+  public long getConfigNodeRatisConsensusLogAppenderBufferSize() {
+    return configNodeRatisConsensusLogAppenderBufferSize;
   }
 
-  public void setWalDirs(String[] walDirs) {
-    this.walDirs = walDirs;
+  public void setConfigNodeRatisConsensusLogAppenderBufferSize(long configNodeRatisConsensusLogAppenderBufferSize) {
+    this.configNodeRatisConsensusLogAppenderBufferSize = configNodeRatisConsensusLogAppenderBufferSize;
   }
 
-  public FSType getSystemFileStorageFs() {
-    return systemFileStorageFs;
+  public long getSchemaRegionRatisConsensusLogAppenderBufferSize() {
+    return schemaRegionRatisConsensusLogAppenderBufferSize;
   }
 
-  public void setSystemFileStorageFs(FSType systemFileStorageFs) {
-    this.systemFileStorageFs = systemFileStorageFs;
+  public void setSchemaRegionRatisConsensusLogAppenderBufferSize(long schemaRegionRatisConsensusLogAppenderBufferSize) {
+    this.schemaRegionRatisConsensusLogAppenderBufferSize = schemaRegionRatisConsensusLogAppenderBufferSize;
   }
 
-  public long getDefaultTTLInMs() {
-    return defaultTTLInMs;
+  public long getDataRegionRatisConsensusLogAppenderBufferSize() {
+    return dataRegionRatisConsensusLogAppenderBufferSize;
   }
 
-  public void setDefaultTTLInMs(long defaultTTLInMs) {
-    this.defaultTTLInMs = defaultTTLInMs;
+  public void setDataRegionRatisConsensusLogAppenderBufferSize(long dataRegionRatisConsensusLogAppenderBufferSize) {
+    this.dataRegionRatisConsensusLogAppenderBufferSize = dataRegionRatisConsensusLogAppenderBufferSize;
   }
 
-  public int getConnectionTimeoutInMS() {
-    return connectionTimeoutInMS;
+  public long getConfigNodeRatisSnapshotTriggerThreshold() {
+    return configNodeRatisSnapshotTriggerThreshold;
   }
 
-  public void setConnectionTimeoutInMS(int connectionTimeoutInMS) {
-    this.connectionTimeoutInMS = connectionTimeoutInMS;
+  public void setConfigNodeRatisSnapshotTriggerThreshold(long configNodeRatisSnapshotTriggerThreshold) {
+    this.configNodeRatisSnapshotTriggerThreshold = configNodeRatisSnapshotTriggerThreshold;
   }
 
-  public int getSelectorNumOfClientManager() {
-    return selectorNumOfClientManager;
+  public long getSchemaRegionRatisSnapshotTriggerThreshold() {
+    return schemaRegionRatisSnapshotTriggerThreshold;
   }
 
-  public void setSelectorNumOfClientManager(int selectorNumOfClientManager) {
-    this.selectorNumOfClientManager = selectorNumOfClientManager;
+  public void setSchemaRegionRatisSnapshotTriggerThreshold(long schemaRegionRatisSnapshotTriggerThreshold) {
+    this.schemaRegionRatisSnapshotTriggerThreshold = schemaRegionRatisSnapshotTriggerThreshold;
   }
 
-  public boolean isRpcThriftCompressionEnabled() {
-    return isRpcThriftCompressionEnabled;
+  public long getDataRegionRatisSnapshotTriggerThreshold() {
+    return dataRegionRatisSnapshotTriggerThreshold;
   }
 
-  public void setRpcThriftCompressionEnabled(boolean rpcThriftCompressionEnabled) {
-    isRpcThriftCompressionEnabled = rpcThriftCompressionEnabled;
+  public void setDataRegionRatisSnapshotTriggerThreshold(long dataRegionRatisSnapshotTriggerThreshold) {
+    this.dataRegionRatisSnapshotTriggerThreshold = dataRegionRatisSnapshotTriggerThreshold;
   }
 
-  public int getMaxTotalClientForEachNode() {
-    return maxTotalClientForEachNode;
+  public boolean isConfigNodeRatisLogUnsafeFlushEnable() {
+    return configNodeRatisLogUnsafeFlushEnable;
   }
 
-  public void setMaxTotalClientForEachNode(int maxTotalClientForEachNode) {
-    this.maxTotalClientForEachNode = maxTotalClientForEachNode;
+  public void setConfigNodeRatisLogUnsafeFlushEnable(boolean configNodeRatisLogUnsafeFlushEnable) {
+    this.configNodeRatisLogUnsafeFlushEnable = configNodeRatisLogUnsafeFlushEnable;
   }
 
-  public int getMaxIdleClientForEachNode() {
-    return maxIdleClientForEachNode;
+  public boolean isSchemaRegionRatisLogUnsafeFlushEnable() {
+    return schemaRegionRatisLogUnsafeFlushEnable;
   }
 
-  public void setMaxIdleClientForEachNode(int maxIdleClientForEachNode) {
-    this.maxIdleClientForEachNode = maxIdleClientForEachNode;
+  public void setSchemaRegionRatisLogUnsafeFlushEnable(boolean schemaRegionRatisLogUnsafeFlushEnable) {
+    this.schemaRegionRatisLogUnsafeFlushEnable = schemaRegionRatisLogUnsafeFlushEnable;
   }
 
-  HandleSystemErrorStrategy getHandleSystemErrorStrategy() {
-    return handleSystemErrorStrategy;
+  public boolean isDataRegionRatisLogUnsafeFlushEnable() {
+    return dataRegionRatisLogUnsafeFlushEnable;
   }
 
-  void setHandleSystemErrorStrategy(HandleSystemErrorStrategy handleSystemErrorStrategy) {
-    this.handleSystemErrorStrategy = handleSystemErrorStrategy;
+  public void setDataRegionRatisLogUnsafeFlushEnable(boolean dataRegionRatisLogUnsafeFlushEnable) {
+    this.dataRegionRatisLogUnsafeFlushEnable = dataRegionRatisLogUnsafeFlushEnable;
   }
 
-  public void handleUnrecoverableError() {
-    handleSystemErrorStrategy.handle();
+  public long getConfigNodeRatisLogSegmentSizeMax() {
+    return configNodeRatisLogSegmentSizeMax;
   }
 
-  public double getDiskSpaceWarningThreshold() {
-    return diskSpaceWarningThreshold;
+  public void setConfigNodeRatisLogSegmentSizeMax(long configNodeRatisLogSegmentSizeMax) {
+    this.configNodeRatisLogSegmentSizeMax = configNodeRatisLogSegmentSizeMax;
   }
 
-  public void setDiskSpaceWarningThreshold(double diskSpaceWarningThreshold) {
-    this.diskSpaceWarningThreshold = diskSpaceWarningThreshold;
+  public long getSchemaRegionRatisLogSegmentSizeMax() {
+    return schemaRegionRatisLogSegmentSizeMax;
+  }
+
+  public void setSchemaRegionRatisLogSegmentSizeMax(long schemaRegionRatisLogSegmentSizeMax) {
+    this.schemaRegionRatisLogSegmentSizeMax = schemaRegionRatisLogSegmentSizeMax;
+  }
+
+  public long getDataRegionRatisLogSegmentSizeMax() {
+    return dataRegionRatisLogSegmentSizeMax;
+  }
+
+  public void setDataRegionRatisLogSegmentSizeMax(long dataRegionRatisLogSegmentSizeMax) {
+    this.dataRegionRatisLogSegmentSizeMax = dataRegionRatisLogSegmentSizeMax;
+  }
+
+  public long getConfigNodeSimpleConsensusLogSegmentSizeMax() {
+    return configNodeSimpleConsensusLogSegmentSizeMax;
+  }
+
+  public void setConfigNodeSimpleConsensusLogSegmentSizeMax(long configNodeSimpleConsensusLogSegmentSizeMax) {
+    this.configNodeSimpleConsensusLogSegmentSizeMax = configNodeSimpleConsensusLogSegmentSizeMax;
+  }
+
+  public long getConfigNodeRatisGrpcFlowControlWindow() {
+    return configNodeRatisGrpcFlowControlWindow;
+  }
+
+  public void setConfigNodeRatisGrpcFlowControlWindow(long configNodeRatisGrpcFlowControlWindow) {
+    this.configNodeRatisGrpcFlowControlWindow = configNodeRatisGrpcFlowControlWindow;
+  }
+
+  public long getSchemaRegionRatisGrpcFlowControlWindow() {
+    return schemaRegionRatisGrpcFlowControlWindow;
+  }
+
+  public void setSchemaRegionRatisGrpcFlowControlWindow(long schemaRegionRatisGrpcFlowControlWindow) {
+    this.schemaRegionRatisGrpcFlowControlWindow = schemaRegionRatisGrpcFlowControlWindow;
+  }
+
+  public long getDataRegionRatisGrpcFlowControlWindow() {
+    return dataRegionRatisGrpcFlowControlWindow;
+  }
+
+  public void setDataRegionRatisGrpcFlowControlWindow(long dataRegionRatisGrpcFlowControlWindow) {
+    this.dataRegionRatisGrpcFlowControlWindow = dataRegionRatisGrpcFlowControlWindow;
+  }
+
+  public long getConfigNodeRatisRpcLeaderElectionTimeoutMinMs() {
+    return configNodeRatisRpcLeaderElectionTimeoutMinMs;
+  }
+
+  public void setConfigNodeRatisRpcLeaderElectionTimeoutMinMs(long configNodeRatisRpcLeaderElectionTimeoutMinMs) {
+    this.configNodeRatisRpcLeaderElectionTimeoutMinMs = configNodeRatisRpcLeaderElectionTimeoutMinMs;
+  }
+
+  public long getSchemaRegionRatisRpcLeaderElectionTimeoutMinMs() {
+    return schemaRegionRatisRpcLeaderElectionTimeoutMinMs;
+  }
+
+  public void setSchemaRegionRatisRpcLeaderElectionTimeoutMinMs(long schemaRegionRatisRpcLeaderElectionTimeoutMinMs) {
+    this.schemaRegionRatisRpcLeaderElectionTimeoutMinMs = schemaRegionRatisRpcLeaderElectionTimeoutMinMs;
+  }
+
+  public long getDataRegionRatisRpcLeaderElectionTimeoutMinMs() {
+    return dataRegionRatisRpcLeaderElectionTimeoutMinMs;
+  }
+
+  public void setDataRegionRatisRpcLeaderElectionTimeoutMinMs(long dataRegionRatisRpcLeaderElectionTimeoutMinMs) {
+    this.dataRegionRatisRpcLeaderElectionTimeoutMinMs = dataRegionRatisRpcLeaderElectionTimeoutMinMs;
+  }
+
+  public long getConfigNodeRatisRpcLeaderElectionTimeoutMaxMs() {
+    return configNodeRatisRpcLeaderElectionTimeoutMaxMs;
+  }
+
+  public void setConfigNodeRatisRpcLeaderElectionTimeoutMaxMs(long configNodeRatisRpcLeaderElectionTimeoutMaxMs) {
+    this.configNodeRatisRpcLeaderElectionTimeoutMaxMs = configNodeRatisRpcLeaderElectionTimeoutMaxMs;
+  }
+
+  public long getSchemaRegionRatisRpcLeaderElectionTimeoutMaxMs() {
+    return schemaRegionRatisRpcLeaderElectionTimeoutMaxMs;
+  }
+
+  public void setSchemaRegionRatisRpcLeaderElectionTimeoutMaxMs(long schemaRegionRatisRpcLeaderElectionTimeoutMaxMs) {
+    this.schemaRegionRatisRpcLeaderElectionTimeoutMaxMs = schemaRegionRatisRpcLeaderElectionTimeoutMaxMs;
+  }
+
+  public long getDataRegionRatisRpcLeaderElectionTimeoutMaxMs() {
+    return dataRegionRatisRpcLeaderElectionTimeoutMaxMs;
+  }
+
+  public void setDataRegionRatisRpcLeaderElectionTimeoutMaxMs(long dataRegionRatisRpcLeaderElectionTimeoutMaxMs) {
+    this.dataRegionRatisRpcLeaderElectionTimeoutMaxMs = dataRegionRatisRpcLeaderElectionTimeoutMaxMs;
+  }
+
+  public long getConfigNodeRatisRequestTimeoutMs() {
+    return configNodeRatisRequestTimeoutMs;
+  }
+
+  public void setConfigNodeRatisRequestTimeoutMs(long configNodeRatisRequestTimeoutMs) {
+    this.configNodeRatisRequestTimeoutMs = configNodeRatisRequestTimeoutMs;
+  }
+
+  public long getSchemaRegionRatisRequestTimeoutMs() {
+    return schemaRegionRatisRequestTimeoutMs;
+  }
+
+  public void setSchemaRegionRatisRequestTimeoutMs(long schemaRegionRatisRequestTimeoutMs) {
+    this.schemaRegionRatisRequestTimeoutMs = schemaRegionRatisRequestTimeoutMs;
+  }
+
+  public long getDataRegionRatisRequestTimeoutMs() {
+    return dataRegionRatisRequestTimeoutMs;
+  }
+
+  public void setDataRegionRatisRequestTimeoutMs(long dataRegionRatisRequestTimeoutMs) {
+    this.dataRegionRatisRequestTimeoutMs = dataRegionRatisRequestTimeoutMs;
+  }
+
+  public int getConfigNodeRatisMaxRetryAttempts() {
+    return configNodeRatisMaxRetryAttempts;
+  }
+
+  public void setConfigNodeRatisMaxRetryAttempts(int configNodeRatisMaxRetryAttempts) {
+    this.configNodeRatisMaxRetryAttempts = configNodeRatisMaxRetryAttempts;
+  }
+
+  public long getConfigNodeRatisInitialSleepTimeMs() {
+    return configNodeRatisInitialSleepTimeMs;
+  }
+
+  public void setConfigNodeRatisInitialSleepTimeMs(long configNodeRatisInitialSleepTimeMs) {
+    this.configNodeRatisInitialSleepTimeMs = configNodeRatisInitialSleepTimeMs;
+  }
+
+  public long getConfigNodeRatisMaxSleepTimeMs() {
+    return configNodeRatisMaxSleepTimeMs;
+  }
+
+  public void setConfigNodeRatisMaxSleepTimeMs(long configNodeRatisMaxSleepTimeMs) {
+    this.configNodeRatisMaxSleepTimeMs = configNodeRatisMaxSleepTimeMs;
+  }
+
+  public int getDataRegionRatisMaxRetryAttempts() {
+    return dataRegionRatisMaxRetryAttempts;
+  }
+
+  public void setDataRegionRatisMaxRetryAttempts(int dataRegionRatisMaxRetryAttempts) {
+    this.dataRegionRatisMaxRetryAttempts = dataRegionRatisMaxRetryAttempts;
+  }
+
+  public long getDataRegionRatisInitialSleepTimeMs() {
+    return dataRegionRatisInitialSleepTimeMs;
+  }
+
+  public void setDataRegionRatisInitialSleepTimeMs(long dataRegionRatisInitialSleepTimeMs) {
+    this.dataRegionRatisInitialSleepTimeMs = dataRegionRatisInitialSleepTimeMs;
+  }
+
+  public long getDataRegionRatisMaxSleepTimeMs() {
+    return dataRegionRatisMaxSleepTimeMs;
+  }
+
+  public void setDataRegionRatisMaxSleepTimeMs(long dataRegionRatisMaxSleepTimeMs) {
+    this.dataRegionRatisMaxSleepTimeMs = dataRegionRatisMaxSleepTimeMs;
+  }
+
+  public int getSchemaRegionRatisMaxRetryAttempts() {
+    return schemaRegionRatisMaxRetryAttempts;
+  }
+
+  public void setSchemaRegionRatisMaxRetryAttempts(int schemaRegionRatisMaxRetryAttempts) {
+    this.schemaRegionRatisMaxRetryAttempts = schemaRegionRatisMaxRetryAttempts;
+  }
+
+  public long getSchemaRegionRatisInitialSleepTimeMs() {
+    return schemaRegionRatisInitialSleepTimeMs;
+  }
+
+  public void setSchemaRegionRatisInitialSleepTimeMs(long schemaRegionRatisInitialSleepTimeMs) {
+    this.schemaRegionRatisInitialSleepTimeMs = schemaRegionRatisInitialSleepTimeMs;
+  }
+
+  public long getSchemaRegionRatisMaxSleepTimeMs() {
+    return schemaRegionRatisMaxSleepTimeMs;
+  }
+
+  public void setSchemaRegionRatisMaxSleepTimeMs(long schemaRegionRatisMaxSleepTimeMs) {
+    this.schemaRegionRatisMaxSleepTimeMs = schemaRegionRatisMaxSleepTimeMs;
+  }
+
+  public long getConfigNodeRatisPreserveLogsWhenPurge() {
+    return configNodeRatisPreserveLogsWhenPurge;
+  }
+
+  public void setConfigNodeRatisPreserveLogsWhenPurge(long configNodeRatisPreserveLogsWhenPurge) {
+    this.configNodeRatisPreserveLogsWhenPurge = configNodeRatisPreserveLogsWhenPurge;
+  }
+
+  public long getSchemaRegionRatisPreserveLogsWhenPurge() {
+    return schemaRegionRatisPreserveLogsWhenPurge;
+  }
+
+  public void setSchemaRegionRatisPreserveLogsWhenPurge(long schemaRegionRatisPreserveLogsWhenPurge) {
+    this.schemaRegionRatisPreserveLogsWhenPurge = schemaRegionRatisPreserveLogsWhenPurge;
+  }
+
+  public long getDataRegionRatisPreserveLogsWhenPurge() {
+    return dataRegionRatisPreserveLogsWhenPurge;
+  }
+
+  public void setDataRegionRatisPreserveLogsWhenPurge(long dataRegionRatisPreserveLogsWhenPurge) {
+    this.dataRegionRatisPreserveLogsWhenPurge = dataRegionRatisPreserveLogsWhenPurge;
+  }
+
+  public long getRatisFirstElectionTimeoutMinMs() {
+    return ratisFirstElectionTimeoutMinMs;
+  }
+
+  public void setRatisFirstElectionTimeoutMinMs(long ratisFirstElectionTimeoutMinMs) {
+    this.ratisFirstElectionTimeoutMinMs = ratisFirstElectionTimeoutMinMs;
+  }
+
+  public long getRatisFirstElectionTimeoutMaxMs() {
+    return ratisFirstElectionTimeoutMaxMs;
+  }
+
+  public void setRatisFirstElectionTimeoutMaxMs(long ratisFirstElectionTimeoutMaxMs) {
+    this.ratisFirstElectionTimeoutMaxMs = ratisFirstElectionTimeoutMaxMs;
+  }
+
+  public long getConfigNodeRatisLogMax() {
+    return configNodeRatisLogMax;
+  }
+
+  public void setConfigNodeRatisLogMax(long configNodeRatisLogMax) {
+    this.configNodeRatisLogMax = configNodeRatisLogMax;
+  }
+
+  public long getSchemaRegionRatisLogMax() {
+    return schemaRegionRatisLogMax;
+  }
+
+  public void setSchemaRegionRatisLogMax(long schemaRegionRatisLogMax) {
+    this.schemaRegionRatisLogMax = schemaRegionRatisLogMax;
+  }
+
+  public long getDataRegionRatisLogMax() {
+    return dataRegionRatisLogMax;
+  }
+
+  public void setDataRegionRatisLogMax(long dataRegionRatisLogMax) {
+    this.dataRegionRatisLogMax = dataRegionRatisLogMax;
+  }
+
+  public int getProcedureCompletedEvictTTL() {
+    return procedureCompletedEvictTTL;
+  }
+
+  public void setProcedureCompletedEvictTTL(int procedureCompletedEvictTTL) {
+    this.procedureCompletedEvictTTL = procedureCompletedEvictTTL;
+  }
+
+  public int getProcedureCompletedCleanInterval() {
+    return procedureCompletedCleanInterval;
+  }
+
+  public void setProcedureCompletedCleanInterval(int procedureCompletedCleanInterval) {
+    this.procedureCompletedCleanInterval = procedureCompletedCleanInterval;
+  }
+
+  public int getProcedureCoreWorkerThreadsCount() {
+    return procedureCoreWorkerThreadsCount;
+  }
+
+  public void setProcedureCoreWorkerThreadsCount(int procedureCoreWorkerThreadsCount) {
+    this.procedureCoreWorkerThreadsCount = procedureCoreWorkerThreadsCount;
+  }
+
+  public NodeStatus getStatus() {
+    return status;
+  }
+
+  public void setStatus(NodeStatus status) {
+    this.status = status;
+  }
+
+  public String getUserFolder() {
+    return userFolder;
+  }
+
+  public void setUserFolder(String userFolder) {
+    this.userFolder = userFolder;
+  }
+
+  public String getRoleFolder() {
+    return roleFolder;
+  }
+
+  public void setRoleFolder(String roleFolder) {
+    this.roleFolder = roleFolder;
+  }
+
+  public String getProcedureWalFolder() {
+    return procedureWalFolder;
+  }
+
+  public void setProcedureWalFolder(String procedureWalFolder) {
+    this.procedureWalFolder = procedureWalFolder;
+  }
+
+  public String getSyncDir() {
+    return syncDir;
+  }
+
+  public void setSyncDir(String syncDir) {
+    this.syncDir = syncDir;
+  }
+
+  public String[] getWalDirs() {
+    return walDirs;
+  }
+
+  public void setWalDirs(String[] walDirs) {
+    this.walDirs = walDirs;
+  }
+
+  public FSType getSystemFileStorageFs() {
+    return systemFileStorageFs;
+  }
+
+  public void setSystemFileStorageFs(FSType systemFileStorageFs) {
+    this.systemFileStorageFs = systemFileStorageFs;
+  }
+
+  public HandleSystemErrorStrategy getHandleSystemErrorStrategy() {
+    return handleSystemErrorStrategy;
+  }
+
+  public void setHandleSystemErrorStrategy(HandleSystemErrorStrategy handleSystemErrorStrategy) {
+    this.handleSystemErrorStrategy = handleSystemErrorStrategy;
   }
 
   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 f53521f77b..3928f48c4c 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
@@ -19,22 +19,28 @@
 
 package org.apache.iotdb.commons.conf;
 
+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.confignode.rpc.thrift.TGlobalConfig;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.File;
+import java.io.IOException;
 import java.util.Properties;
 
 public class CommonDescriptor {
 
   private static final Logger LOGGER = LoggerFactory.getLogger(CommonDescriptor.class);
 
-  private final CommonConfig config = new CommonConfig();
+  private final CommonConfig CONF = new CommonConfig();
 
-  private CommonDescriptor() {}
+  private CommonDescriptor() {
+    // Empty constructor
+  }
 
   public static CommonDescriptor getInstance() {
     return CommonDescriptorHolder.INSTANCE;
@@ -45,133 +51,299 @@ public class CommonDescriptor {
     private static final CommonDescriptor INSTANCE = new CommonDescriptor();
 
     private CommonDescriptorHolder() {
-      // empty constructor
+      // Empty constructor
     }
   }
 
   public CommonConfig getConfig() {
-    return config;
+    return CONF;
   }
 
   public void initCommonConfigDir(String systemDir) {
-    config.setUserFolder(systemDir + File.separator + "users");
-    config.setRoleFolder(systemDir + File.separator + "roles");
-    config.setProcedureWalFolder(systemDir + File.separator + "procedure");
+    CONF.setUserFolder(systemDir + File.separator + "users");
+    CONF.setRoleFolder(systemDir + File.separator + "roles");
+    CONF.setProcedureWalFolder(systemDir + File.separator + "procedure");
   }
 
-  public void loadCommonProps(Properties properties) {
-    config.setAuthorizerProvider(
-        properties.getProperty("authorizer_provider_class", config.getAuthorizerProvider()).trim());
+
+
+  private void loadCommonProps(Properties properties) {
+    CONF.setClusterName(
+      properties.getProperty(IoTDBConstant.CLUSTER_NAME, CONF.getClusterName()).trim());
+
+    try {
+      CONF.setConfigNodeConsensusProtocolClass(
+        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);
+    }
+
+    CONF.setSchemaReplicationFactor(
+      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()));
+    } catch (IOException 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()));
+
+    try {
+      CONF.setDataRegionConsensusProtocolClass(
+        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);
+    }
+
+    CONF.setSeriesSlotNum(
+      Integer.parseInt(
+        properties
+          .getProperty("series_slot_num", String.valueOf(CONF.getSeriesSlotNum()))
+          .trim()));
+
+    CONF.setSeriesPartitionExecutorClass(
+      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()));
+
+    CONF.setDataRegionPerProcessor(
+      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())));
+    } catch (IOException 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())));
+
+    try {
+      CONF.setDataRegionGroupExtensionPolicy(
+        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);
+    }
+
+    CONF.setDataRegionGroupPerDatabase(
+      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()))));
+
+    CONF.setEnableDataPartitionInheritPolicy(
+      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())));
+    } catch (IOException 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()));
+
+    CONF.setEnableAutoLeaderBalanceForIoTConsensus(
+      Boolean.parseBoolean(
+        properties
+          .getProperty(
+            "enable_auto_leader_balance_for_iot_consensus",
+            String.valueOf(CONF.isEnableAutoLeaderBalanceForIoTConsensus()))
+          .trim()));
+
+    CONF.setTimePartitionInterval(
+      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()));
+
+    CONF.setDiskSpaceWarningThreshold(
+      Double.parseDouble(
+        properties
+          .getProperty(
+            "disk_space_warning_threshold",
+            String.valueOf(CONF.getDiskSpaceWarningThreshold()))
+          .trim()));
+
+    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.setDefaultTtlInMs(
+      Long.parseLong(
+        properties
+          .getProperty("default_ttl_in_ms", String.valueOf(CONF.getDefaultTtlInMs()))
+          .trim()));
+
+    CONF.setAuthorizerProvider(
+        properties.getProperty("authorizer_provider_class", CONF.getAuthorizerProvider()).trim());
+
     // if using org.apache.iotdb.db.auth.authorizer.OpenIdAuthorizer, openID_url is needed.
-    config.setOpenIdProviderUrl(
-        properties.getProperty("openID_url", config.getOpenIdProviderUrl()).trim());
-    config.setAdminName(properties.getProperty("admin_name", config.getAdminName()).trim());
+    CONF.setOpenIdProviderUrl(
+        properties.getProperty("openID_url", CONF.getOpenIdProviderUrl()).trim());
+
+    CONF.setAdminName(properties.getProperty("admin_name", CONF.getAdminName()).trim());
 
-    config.setAdminPassword(
-        properties.getProperty("admin_password", config.getAdminPassword()).trim());
-    config.setEncryptDecryptProvider(
+    CONF.setAdminPassword(
+        properties.getProperty("admin_password", CONF.getAdminPassword()).trim());
+
+    CONF.setEncryptDecryptProvider(
         properties
             .getProperty(
-                "iotdb_server_encrypt_decrypt_provider", config.getEncryptDecryptProvider())
+                "iotdb_server_encrypt_decrypt_provider", CONF.getEncryptDecryptProvider())
             .trim());
 
-    config.setEncryptDecryptProviderParameter(
+    CONF.setEncryptDecryptProviderParameter(
         properties.getProperty(
             "iotdb_server_encrypt_decrypt_provider_parameter",
-            config.getEncryptDecryptProviderParameter()));
+            CONF.getEncryptDecryptProviderParameter()));
 
-    config.setDefaultTTLInMs(
-        Long.parseLong(
-            properties
-                .getProperty("default_ttl_in_ms", String.valueOf(config.getDefaultTTLInMs()))
-                .trim()));
-    config.setSyncDir(properties.getProperty("dn_sync_dir", config.getSyncDir()).trim());
 
-    config.setWalDirs(
+    CONF.setUdfDir(properties.getProperty("udf_lib_dir", CONF.getUdfDir()).trim());
+
+    CONF.setTriggerDir(properties.getProperty("trigger_lib_dir", CONF.getTriggerDir()).trim());
+
+    CONF.setSyncDir(properties.getProperty("dn_sync_dir", CONF.getSyncDir()).trim());
+
+    CONF.setWalDirs(
         properties
-            .getProperty("dn_wal_dirs", String.join(",", config.getWalDirs()))
+            .getProperty("dn_wal_dirs", String.join(",", CONF.getWalDirs()))
             .trim()
             .split(","));
 
-    config.setRpcThriftCompressionEnabled(
+    CONF.setRpcThriftCompressionEnabled(
         Boolean.parseBoolean(
             properties
                 .getProperty(
                     "cn_rpc_thrift_compression_enable",
-                    String.valueOf(config.isRpcThriftCompressionEnabled()))
-                .trim()));
-
-    config.setConnectionTimeoutInMS(
-        Integer.parseInt(
-            properties
-                .getProperty(
-                    "cn_connection_timeout_ms", String.valueOf(config.getConnectionTimeoutInMS()))
+                    String.valueOf(CONF.isRpcThriftCompressionEnabled()))
                 .trim()));
 
-    config.setSelectorNumOfClientManager(
+    CONF.setConnectionTimeoutInMS(
         Integer.parseInt(
             properties
                 .getProperty(
-                    "cn_selector_thread_nums_of_client_manager",
-                    String.valueOf(config.getSelectorNumOfClientManager()))
+                    "dn_connection_timeout_ms", String.valueOf(CONF.getConnectionTimeoutInMS()))
                 .trim()));
 
-    config.setConnectionTimeoutInMS(
-        Integer.parseInt(
-            properties
-                .getProperty(
-                    "dn_connection_timeout_ms", String.valueOf(config.getConnectionTimeoutInMS()))
-                .trim()));
-
-    config.setRpcThriftCompressionEnabled(
+    CONF.setRpcThriftCompressionEnabled(
         Boolean.parseBoolean(
             properties
                 .getProperty(
                     "dn_rpc_thrift_compression_enable",
-                    String.valueOf(config.isRpcThriftCompressionEnabled()))
+                    String.valueOf(CONF.isRpcThriftCompressionEnabled()))
                 .trim()));
 
-    config.setSelectorNumOfClientManager(
+    CONF.setSelectorNumOfClientManager(
         Integer.parseInt(
             properties
                 .getProperty(
                     "dn_selector_thread_nums_of_client_manager",
-                    String.valueOf(config.getSelectorNumOfClientManager()))
+                    String.valueOf(CONF.getSelectorNumOfClientManager()))
                 .trim()));
 
-    config.setMaxTotalClientForEachNode(
+    CONF.setMaxTotalClientForEachNode(
         Integer.parseInt(
             properties
                 .getProperty(
                     "dn_max_connection_for_internal_service",
-                    String.valueOf(config.getMaxTotalClientForEachNode()))
+                    String.valueOf(CONF.getMaxTotalClientForEachNode()))
                 .trim()));
 
-    config.setMaxIdleClientForEachNode(
+    CONF.setMaxIdleClientForEachNode(
         Integer.parseInt(
             properties
                 .getProperty(
                     "dn_core_connection_for_internal_service",
-                    String.valueOf(config.getMaxIdleClientForEachNode()))
+                    String.valueOf(CONF.getMaxIdleClientForEachNode()))
                 .trim()));
 
-    config.setHandleSystemErrorStrategy(
+    CONF.setHandleSystemErrorStrategy(
         HandleSystemErrorStrategy.valueOf(
             properties
                 .getProperty(
-                    "handle_system_error", String.valueOf(config.getHandleSystemErrorStrategy()))
-                .trim()));
-
-    config.setDiskSpaceWarningThreshold(
-        Double.parseDouble(
-            properties
-                .getProperty(
-                    "disk_space_warning_threshold",
-                    String.valueOf(config.getDiskSpaceWarningThreshold()))
+                    "handle_system_error", String.valueOf(CONF.getHandleSystemErrorStrategy()))
                 .trim()));
   }
 
   public void loadGlobalConfig(TGlobalConfig globalConfig) {
-    config.setDiskSpaceWarningThreshold(globalConfig.getDiskSpaceWarningThreshold());
+    CONF.setDiskSpaceWarningThreshold(globalConfig.getDiskSpaceWarningThreshold());
   }
 }
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/partition/RegionGroupExtensionPolicy.java b/node-commons/src/main/java/org/apache/iotdb/commons/consensus/ConsensusProtocolClass.java
similarity index 51%
copy from confignode/src/main/java/org/apache/iotdb/confignode/manager/partition/RegionGroupExtensionPolicy.java
copy to node-commons/src/main/java/org/apache/iotdb/commons/consensus/ConsensusProtocolClass.java
index ac461d76e9..ab923392a9 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/partition/RegionGroupExtensionPolicy.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/consensus/ConsensusProtocolClass.java
@@ -16,32 +16,31 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.confignode.manager.partition;
+package org.apache.iotdb.commons.consensus;
 
 import java.io.IOException;
 
-public enum RegionGroupExtensionPolicy {
-  CUSTOM("CUSTOM"),
+public enum ConsensusProtocolClass {
+  SIMPLE_CONSENSUS("org.apache.iotdb.consensus.simple.SimpleConsensus"),
+  RATIS_CONSENSUS("org.apache.iotdb.consensus.ratis.RatisConsensus"),
+  IOT_CONSENSUS("org.apache.iotdb.consensus.iot.IoTConsensus");
 
-  AUTO("AUTO");
+  private final String protocol;
 
-  private final String policy;
-
-  RegionGroupExtensionPolicy(String policy) {
-    this.policy = policy;
+  ConsensusProtocolClass(String protocol) {
+    this.protocol = protocol;
   }
 
-  public String getPolicy() {
-    return policy;
+  public String getProtocol() {
+    return protocol;
   }
 
-  public static RegionGroupExtensionPolicy parse(String policy) throws IOException {
-    for (RegionGroupExtensionPolicy extensionPolicy : RegionGroupExtensionPolicy.values()) {
-      if (extensionPolicy.policy.equals(policy)) {
-        return extensionPolicy;
+  public static ConsensusProtocolClass parse(String protocol) throws IOException {
+    for (ConsensusProtocolClass consensusProtocolClass : ConsensusProtocolClass.values()) {
+      if (consensusProtocolClass.protocol.equals(protocol)) {
+        return consensusProtocolClass;
       }
     }
-    throw new IOException(
-        String.format("DataRegionGroupExtensionPolicy %s doesn't exist.", policy));
+    throw new IOException(String.format("ConsensusProtocolClass %s doesn't exist.", protocol));
   }
 }
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/partition/RegionGroupExtensionPolicy.java b/node-commons/src/main/java/org/apache/iotdb/commons/loadbalance/LeaderDistributionPolicy.java
similarity index 63%
copy from confignode/src/main/java/org/apache/iotdb/confignode/manager/partition/RegionGroupExtensionPolicy.java
copy to node-commons/src/main/java/org/apache/iotdb/commons/loadbalance/LeaderDistributionPolicy.java
index ac461d76e9..05872c58ba 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/partition/RegionGroupExtensionPolicy.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/loadbalance/LeaderDistributionPolicy.java
@@ -16,18 +16,17 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.confignode.manager.partition;
+package org.apache.iotdb.commons.loadbalance;
 
 import java.io.IOException;
 
-public enum RegionGroupExtensionPolicy {
-  CUSTOM("CUSTOM"),
-
-  AUTO("AUTO");
+public enum LeaderDistributionPolicy {
+  GREEDY("GREEDY"),
+  MIN_COST_FLOW("MIN_COST_FLOW");
 
   private final String policy;
 
-  RegionGroupExtensionPolicy(String policy) {
+  LeaderDistributionPolicy(String policy) {
     this.policy = policy;
   }
 
@@ -35,13 +34,12 @@ public enum RegionGroupExtensionPolicy {
     return policy;
   }
 
-  public static RegionGroupExtensionPolicy parse(String policy) throws IOException {
-    for (RegionGroupExtensionPolicy extensionPolicy : RegionGroupExtensionPolicy.values()) {
-      if (extensionPolicy.policy.equals(policy)) {
-        return extensionPolicy;
+  public static LeaderDistributionPolicy parse(String policy) throws IOException {
+    for (LeaderDistributionPolicy leaderDistributionPolicy : LeaderDistributionPolicy.values()) {
+      if (leaderDistributionPolicy.policy.equals(policy)) {
+        return leaderDistributionPolicy;
       }
     }
-    throw new IOException(
-        String.format("DataRegionGroupExtensionPolicy %s doesn't exist.", policy));
+    throw new IOException(String.format("LeaderDistributionPolicy %s doesn't exist.", policy));
   }
 }
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/partition/RegionGroupExtensionPolicy.java b/node-commons/src/main/java/org/apache/iotdb/commons/loadbalance/RegionGroupExtensionPolicy.java
similarity index 96%
rename from confignode/src/main/java/org/apache/iotdb/confignode/manager/partition/RegionGroupExtensionPolicy.java
rename to node-commons/src/main/java/org/apache/iotdb/commons/loadbalance/RegionGroupExtensionPolicy.java
index ac461d76e9..c0d1244268 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/partition/RegionGroupExtensionPolicy.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/loadbalance/RegionGroupExtensionPolicy.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.iotdb.confignode.manager.partition;
+package org.apache.iotdb.commons.loadbalance;
 
 import java.io.IOException;
 
diff --git a/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/mnode/RStorageGroupMNode.java b/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/mnode/RStorageGroupMNode.java
index aac3de5a11..209fcf7042 100644
--- a/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/mnode/RStorageGroupMNode.java
+++ b/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/mnode/RStorageGroupMNode.java
@@ -50,7 +50,7 @@ public class RStorageGroupMNode extends RInternalMNode implements IStorageGroupM
     super(fullPath, readWriteHandler);
     Object ttl = RSchemaUtils.parseNodeValue(value, RMNodeValueType.TTL);
     if (ttl == null) {
-      ttl = CommonDescriptor.getInstance().getConfig().getDefaultTTLInMs();
+      ttl = CommonDescriptor.getInstance().getConfig().getDefaultTtlInMs();
     }
     this.dataTTL = (long) ttl;
   }
diff --git a/server/src/assembly/resources/conf/iotdb-datanode.properties b/server/src/assembly/resources/conf/iotdb-datanode.properties
index 03ea81c3a4..7fe2c725b4 100644
--- a/server/src/assembly/resources/conf/iotdb-datanode.properties
+++ b/server/src/assembly/resources/conf/iotdb-datanode.properties
@@ -94,6 +94,7 @@ dn_target_config_node_list=127.0.0.1:10710
 # Datatype: int
 # dn_rpc_min_concurrent_client_num=1
 
+# Default is equal to the number of CPU cores
 # Datatype: int
 # dn_rpc_max_concurrent_client_num=65535
 
diff --git a/server/src/main/java/org/apache/iotdb/db/client/DataNodeClientPoolFactory.java b/server/src/main/java/org/apache/iotdb/db/client/DataNodeClientPoolFactory.java
index b1451c9337..8b763fb887 100644
--- a/server/src/main/java/org/apache/iotdb/db/client/DataNodeClientPoolFactory.java
+++ b/server/src/main/java/org/apache/iotdb/db/client/DataNodeClientPoolFactory.java
@@ -46,12 +46,12 @@ public class DataNodeClientPoolFactory {
           new ConfigNodeClient.Factory(
               manager,
               new ThriftClientProperty.Builder()
-                  .setConnectionTimeoutMs(conf.getConnectionTimeoutInMS())
-                  .setRpcThriftCompressionEnabled(conf.isRpcThriftCompressionEnable())
+                  .setConnectionTimeoutMs(conf.getDnConnectionTimeoutInMS())
+                  .setRpcThriftCompressionEnabled(conf.isDnRpcThriftCompressionEnable())
                   .build()),
           new ClientPoolProperty.Builder<ConfigNodeClient>()
-              .setMaxIdleClientForEachNode(conf.getCoreConnectionForInternalService())
-              .setMaxTotalClientForEachNode(conf.getMaxConnectionForInternalService())
+              .setMaxIdleClientForEachNode(conf.getDnCoreConnectionForInternalService())
+              .setMaxTotalClientForEachNode(conf.getDnMaxConnectionForInternalService())
               .build()
               .getConfig());
     }
@@ -67,11 +67,11 @@ public class DataNodeClientPoolFactory {
           new ConfigNodeClient.Factory(
               manager,
               new ThriftClientProperty.Builder()
-                  .setConnectionTimeoutMs(conf.getConnectionTimeoutInMS() * 10)
-                  .setRpcThriftCompressionEnabled(conf.isRpcThriftCompressionEnable())
+                  .setConnectionTimeoutMs(conf.getDnConnectionTimeoutInMS() * 10)
+                  .setRpcThriftCompressionEnabled(conf.isDnRpcThriftCompressionEnable())
                   .setSelectorNumOfAsyncClientManager(
-                      conf.getSelectorNumOfClientManager() / 10 > 0
-                          ? conf.getSelectorNumOfClientManager() / 10
+                      conf.getDnSelectorThreadCountOfClientManager() / 10 > 0
+                          ? conf.getDnSelectorThreadCountOfClientManager() / 10
                           : 1)
                   .build()),
           new ClientPoolProperty.Builder<ConfigNodeClient>().build().getConfig());
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 d562199db4..d0acaf8f3b 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
@@ -61,6 +61,35 @@ import static org.apache.iotdb.tsfile.common.constant.TsFileConstant.PATH_SEPARA
 
 public class IoTDBConfig {
 
+  /** Connection Configuration */
+  // The max time to live of a session in ms. Unit: millisecond
+  private int dnSessionTimeoutThreshold = 0;
+  // Whether to use thrift compression
+  private boolean dnRpcThriftCompressionEnable = false;
+  // Whether to use Snappy compression before sending data through the network
+  private boolean dnRpcAdvancedCompressionEnable = false;
+  // Rpc Selector thread num
+  private int dnRpcSelectorThreadCount = 1;
+  // Min concurrent client number
+  private int dnRpcMinConcurrentClientNum = Runtime.getRuntime().availableProcessors();
+  // Max concurrent client number
+  private int dnRpcMaxConcurrentClientNum = 65535;
+  // Thrift max frame size, 512MB by default
+  private int dnThriftMaxFrameSize = 536870912;
+  // Thrift init buffer size
+  private int dnThriftDefaultBufferSize = 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
+  private int dnSelectorThreadCountOfClientManager =
+    Runtime.getRuntime().availableProcessors() / 4 > 0
+      ? Runtime.getRuntime().availableProcessors() / 4
+      : 1;
+
   /* Names of Watermark methods */
   public static final String WATERMARK_GROUPED_LSB = "GroupBasedLSBMethod";
   public static final String CONFIG_NAME = "iotdb-datanode.properties";
@@ -104,27 +133,12 @@ public class IoTDBConfig {
   /** Rpc binding address. */
   private String rpcAddress = "127.0.0.1";
 
-  /** whether to use thrift compression. */
-  private boolean rpcThriftCompressionEnable = false;
-
-  /** whether to use Snappy compression before sending data through the network */
-  private boolean rpcAdvancedCompressionEnable = false;
-
   /** Port which the JDBC server listens to. */
   private int rpcPort = 6667;
 
   /** Port which the influxdb protocol server listens to. */
   private int influxDBRpcPort = 8086;
 
-  /** Rpc Selector thread num */
-  private int rpcSelectorThreadCount = 1;
-
-  /** Min concurrent client number */
-  private int rpcMinConcurrentClientNum = Runtime.getRuntime().availableProcessors();
-
-  /** Max concurrent client number */
-  private int rpcMaxConcurrentClientNum = 65535;
-
   /** Memory allocated for the write process */
   private long allocateMemoryForStorageEngine = Runtime.getRuntime().maxMemory() * 3 / 10;
 
@@ -558,9 +572,6 @@ public class IoTDBConfig {
   /** the max executing time of query in ms. Unit: millisecond */
   private long queryTimeoutThreshold = 60000;
 
-  /** the max time to live of a session in ms. Unit: millisecond */
-  private int sessionTimeoutThreshold = 0;
-
   /** Replace implementation class of JDBC service */
   private String rpcImplClassName = ClientRPCServiceImpl.class.getName();
 
@@ -791,11 +802,6 @@ public class IoTDBConfig {
   // time in nanosecond precision when starting up
   private long startUpNanosecond = System.nanoTime();
 
-  /** Unit: byte */
-  private int thriftMaxFrameSize = 536870912;
-
-  private int thriftDefaultBufferSize = RpcUtils.THRIFT_DEFAULT_BUF_CAPACITY;
-
   /** time interval in minute for calculating query frequency. Unit: minute */
   private int frequencyIntervalInMinute = 1;
 
@@ -915,27 +921,6 @@ public class IoTDBConfig {
   /** 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);
-
-  /** the maximum number of clients that can be applied for a node's InternalService */
-  private int maxConnectionForInternalService = 100;
-
-  /**
-   * 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 coreConnectionForInternalService = 100;
-
-  /**
-   * ClientManager will have so many selector threads (TAsyncClientManager) to distribute to its
-   * clients.
-   */
-  private int selectorNumOfClientManager =
-      Runtime.getRuntime().availableProcessors() / 4 > 0
-          ? Runtime.getRuntime().availableProcessors() / 4
-          : 1;
-
   /**
    * Cache size of partition cache in {@link
    * org.apache.iotdb.db.mpp.plan.analyze.ClusterPartitionFetcher}
@@ -1550,28 +1535,28 @@ public class IoTDBConfig {
     this.unSeqTsFileSize = unSeqTsFileSize;
   }
 
-  public int getRpcSelectorThreadCount() {
-    return rpcSelectorThreadCount;
+  public int getDnRpcSelectorThreadCount() {
+    return dnRpcSelectorThreadCount;
   }
 
-  public void setRpcSelectorThreadCount(int rpcSelectorThreadCount) {
-    this.rpcSelectorThreadCount = rpcSelectorThreadCount;
+  public void setDnRpcSelectorThreadCount(int dnRpcSelectorThreadCount) {
+    this.dnRpcSelectorThreadCount = dnRpcSelectorThreadCount;
   }
 
-  public int getRpcMinConcurrentClientNum() {
-    return rpcMinConcurrentClientNum;
+  public int getDnRpcMinConcurrentClientNum() {
+    return dnRpcMinConcurrentClientNum;
   }
 
-  public void setRpcMinConcurrentClientNum(int rpcMinConcurrentClientNum) {
-    this.rpcMinConcurrentClientNum = rpcMinConcurrentClientNum;
+  public void setDnRpcMinConcurrentClientNum(int dnRpcMinConcurrentClientNum) {
+    this.dnRpcMinConcurrentClientNum = dnRpcMinConcurrentClientNum;
   }
 
-  public int getRpcMaxConcurrentClientNum() {
-    return rpcMaxConcurrentClientNum;
+  public int getDnRpcMaxConcurrentClientNum() {
+    return dnRpcMaxConcurrentClientNum;
   }
 
-  void setRpcMaxConcurrentClientNum(int rpcMaxConcurrentClientNum) {
-    this.rpcMaxConcurrentClientNum = rpcMaxConcurrentClientNum;
+  void setDnRpcMaxConcurrentClientNum(int dnRpcMaxConcurrentClientNum) {
+    this.dnRpcMaxConcurrentClientNum = dnRpcMaxConcurrentClientNum;
   }
 
   public int getmRemoteSchemaCacheSize() {
@@ -1636,12 +1621,12 @@ public class IoTDBConfig {
     this.queryTimeoutThreshold = queryTimeoutThreshold;
   }
 
-  public int getSessionTimeoutThreshold() {
-    return sessionTimeoutThreshold;
+  public int getDnSessionTimeoutThreshold() {
+    return dnSessionTimeoutThreshold;
   }
 
-  public void setSessionTimeoutThreshold(int sessionTimeoutThreshold) {
-    this.sessionTimeoutThreshold = sessionTimeoutThreshold;
+  public void setDnSessionTimeoutThreshold(int dnSessionTimeoutThreshold) {
+    this.dnSessionTimeoutThreshold = dnSessionTimeoutThreshold;
   }
 
   public String getRpcImplClassName() {
@@ -2012,12 +1997,12 @@ public class IoTDBConfig {
     this.crossCompactionFileSelectionTimeBudget = crossCompactionFileSelectionTimeBudget;
   }
 
-  public boolean isRpcThriftCompressionEnable() {
-    return rpcThriftCompressionEnable;
+  public boolean isDnRpcThriftCompressionEnable() {
+    return dnRpcThriftCompressionEnable;
   }
 
-  public void setRpcThriftCompressionEnable(boolean rpcThriftCompressionEnable) {
-    this.rpcThriftCompressionEnable = rpcThriftCompressionEnable;
+  public void setDnRpcThriftCompressionEnable(boolean dnRpcThriftCompressionEnable) {
+    this.dnRpcThriftCompressionEnable = dnRpcThriftCompressionEnable;
   }
 
   public boolean isMetaDataCacheEnable() {
@@ -2506,22 +2491,22 @@ public class IoTDBConfig {
     return startUpNanosecond;
   }
 
-  public int getThriftMaxFrameSize() {
-    return thriftMaxFrameSize;
+  public int getDnThriftMaxFrameSize() {
+    return dnThriftMaxFrameSize;
   }
 
-  public void setThriftMaxFrameSize(int thriftMaxFrameSize) {
-    this.thriftMaxFrameSize = thriftMaxFrameSize;
-    RpcTransportFactory.setThriftMaxFrameSize(this.thriftMaxFrameSize);
+  public void setDnThriftMaxFrameSize(int dnThriftMaxFrameSize) {
+    this.dnThriftMaxFrameSize = dnThriftMaxFrameSize;
+    RpcTransportFactory.setThriftMaxFrameSize(this.dnThriftMaxFrameSize);
   }
 
-  public int getThriftDefaultBufferSize() {
-    return thriftDefaultBufferSize;
+  public int getDnThriftDefaultBufferSize() {
+    return dnThriftDefaultBufferSize;
   }
 
-  public void setThriftDefaultBufferSize(int thriftDefaultBufferSize) {
-    this.thriftDefaultBufferSize = thriftDefaultBufferSize;
-    RpcTransportFactory.setDefaultBufferCapacity(this.thriftDefaultBufferSize);
+  public void setDnThriftDefaultBufferSize(int dnThriftDefaultBufferSize) {
+    this.dnThriftDefaultBufferSize = dnThriftDefaultBufferSize;
+    RpcTransportFactory.setDefaultBufferCapacity(this.dnThriftDefaultBufferSize);
   }
 
   public int getMaxQueryDeduplicatedPathNum() {
@@ -2612,13 +2597,13 @@ public class IoTDBConfig {
     this.recoveryLogIntervalInMs = recoveryLogIntervalInMs;
   }
 
-  public boolean isRpcAdvancedCompressionEnable() {
-    return rpcAdvancedCompressionEnable;
+  public boolean isDnRpcAdvancedCompressionEnable() {
+    return dnRpcAdvancedCompressionEnable;
   }
 
-  public void setRpcAdvancedCompressionEnable(boolean rpcAdvancedCompressionEnable) {
-    this.rpcAdvancedCompressionEnable = rpcAdvancedCompressionEnable;
-    RpcTransportFactory.setUseSnappy(this.rpcAdvancedCompressionEnable);
+  public void setDnRpcAdvancedCompressionEnable(boolean dnRpcAdvancedCompressionEnable) {
+    this.dnRpcAdvancedCompressionEnable = dnRpcAdvancedCompressionEnable;
+    RpcTransportFactory.setUseSnappy(this.dnRpcAdvancedCompressionEnable);
   }
 
   public int getMlogBufferSize() {
@@ -3033,36 +3018,36 @@ public class IoTDBConfig {
     this.mppDataExchangeKeepAliveTimeInMs = mppDataExchangeKeepAliveTimeInMs;
   }
 
-  public int getConnectionTimeoutInMS() {
-    return connectionTimeoutInMS;
+  public int getDnConnectionTimeoutInMS() {
+    return dnConnectionTimeoutInMS;
   }
 
-  public void setConnectionTimeoutInMS(int connectionTimeoutInMS) {
-    this.connectionTimeoutInMS = connectionTimeoutInMS;
+  public void setDnConnectionTimeoutInMS(int dnConnectionTimeoutInMS) {
+    this.dnConnectionTimeoutInMS = dnConnectionTimeoutInMS;
   }
 
-  public int getMaxConnectionForInternalService() {
-    return maxConnectionForInternalService;
+  public int getDnMaxConnectionForInternalService() {
+    return dnMaxConnectionForInternalService;
   }
 
-  public void setMaxConnectionForInternalService(int maxConnectionForInternalService) {
-    this.maxConnectionForInternalService = maxConnectionForInternalService;
+  public void setDnMaxConnectionForInternalService(int dnMaxConnectionForInternalService) {
+    this.dnMaxConnectionForInternalService = dnMaxConnectionForInternalService;
   }
 
-  public int getCoreConnectionForInternalService() {
-    return coreConnectionForInternalService;
+  public int getDnCoreConnectionForInternalService() {
+    return dnCoreConnectionForInternalService;
   }
 
-  public void setCoreConnectionForInternalService(int coreConnectionForInternalService) {
-    this.coreConnectionForInternalService = coreConnectionForInternalService;
+  public void setDnCoreConnectionForInternalService(int dnCoreConnectionForInternalService) {
+    this.dnCoreConnectionForInternalService = dnCoreConnectionForInternalService;
   }
 
-  public int getSelectorNumOfClientManager() {
-    return selectorNumOfClientManager;
+  public int getDnSelectorThreadCountOfClientManager() {
+    return dnSelectorThreadCountOfClientManager;
   }
 
-  public void setSelectorNumOfClientManager(int selectorNumOfClientManager) {
-    this.selectorNumOfClientManager = selectorNumOfClientManager;
+  public void setDnSelectorThreadCountOfClientManager(int dnSelectorThreadCountOfClientManager) {
+    this.dnSelectorThreadCountOfClientManager = dnSelectorThreadCountOfClientManager;
   }
 
   public boolean isClusterMode() {
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 43f5da3278..576a6e3412 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
@@ -149,7 +149,7 @@ public class IoTDBDescriptor {
   /** load an property file and set TsfileDBConfig variables. */
   @SuppressWarnings("squid:S3776") // Suppress high Cognitive Complexity warning
   private void loadProps() {
-    URL url = getPropsUrl(CommonConfig.CONFIG_NAME);
+    URL url = getPropsUrl(CommonConfig.CONF_FILE_NAME);
     Properties commonProperties = new Properties();
     if (url != null) {
       try (InputStream inputStream = url.openStream()) {
@@ -165,7 +165,7 @@ public class IoTDBDescriptor {
     } else {
       logger.warn(
           "Couldn't load the configuration {} from any of the known sources.",
-          CommonConfig.CONFIG_NAME);
+          CommonConfig.CONF_FILE_NAME);
     }
     url = getPropsUrl(IoTDBConfig.CONFIG_NAME);
     if (url != null) {
@@ -205,51 +205,51 @@ public class IoTDBDescriptor {
     conf.setRpcAddress(
         properties.getProperty(IoTDBConstant.DN_RPC_ADDRESS, conf.getRpcAddress()).trim());
 
-    conf.setRpcThriftCompressionEnable(
+    conf.setDnRpcThriftCompressionEnable(
         Boolean.parseBoolean(
             properties
                 .getProperty(
                     "dn_rpc_thrift_compression_enable",
-                    Boolean.toString(conf.isRpcThriftCompressionEnable()))
+                    Boolean.toString(conf.isDnRpcThriftCompressionEnable()))
                 .trim()));
 
-    conf.setRpcAdvancedCompressionEnable(
+    conf.setDnRpcAdvancedCompressionEnable(
         Boolean.parseBoolean(
             properties
                 .getProperty(
                     "dn_rpc_advanced_compression_enable",
-                    Boolean.toString(conf.isRpcAdvancedCompressionEnable()))
+                    Boolean.toString(conf.isDnRpcAdvancedCompressionEnable()))
                 .trim()));
 
-    conf.setConnectionTimeoutInMS(
+    conf.setDnConnectionTimeoutInMS(
         Integer.parseInt(
             properties
                 .getProperty(
-                    "dn_connection_timeout_ms", String.valueOf(conf.getConnectionTimeoutInMS()))
+                    "dn_connection_timeout_ms", String.valueOf(conf.getDnConnectionTimeoutInMS()))
                 .trim()));
 
-    conf.setMaxConnectionForInternalService(
+    conf.setDnMaxConnectionForInternalService(
         Integer.parseInt(
             properties
                 .getProperty(
                     "dn_max_connection_for_internal_service",
-                    String.valueOf(conf.getMaxConnectionForInternalService()))
+                    String.valueOf(conf.getDnMaxConnectionForInternalService()))
                 .trim()));
 
-    conf.setCoreConnectionForInternalService(
+    conf.setDnCoreConnectionForInternalService(
         Integer.parseInt(
             properties
                 .getProperty(
                     "dn_core_connection_for_internal_service",
-                    String.valueOf(conf.getCoreConnectionForInternalService()))
+                    String.valueOf(conf.getDnCoreConnectionForInternalService()))
                 .trim()));
 
-    conf.setSelectorNumOfClientManager(
+    conf.setDnSelectorThreadCountOfClientManager(
         Integer.parseInt(
             properties
                 .getProperty(
                     "dn_selector_thread_count_of_client_manager",
-                    String.valueOf(conf.getSelectorNumOfClientManager()))
+                    String.valueOf(conf.getDnSelectorThreadCountOfClientManager()))
                 .trim()));
 
     conf.setRpcPort(
@@ -488,11 +488,11 @@ public class IoTDBDescriptor {
             properties.getProperty(
                 "query_timeout_threshold", Long.toString(conf.getQueryTimeoutThreshold()))));
 
-    conf.setSessionTimeoutThreshold(
+    conf.setDnSessionTimeoutThreshold(
         Integer.parseInt(
             properties.getProperty(
                 "dn_session_timeout_threshold",
-                Integer.toString(conf.getSessionTimeoutThreshold()))));
+                Integer.toString(conf.getDnSessionTimeoutThreshold()))));
     conf.setMaxNumberOfSyncFileRetry(
         Integer.parseInt(
             properties
@@ -670,34 +670,34 @@ public class IoTDBDescriptor {
         Integer.parseInt(
             properties.getProperty(
                 "dn_rpc_selector_thread_count",
-                Integer.toString(conf.getRpcSelectorThreadCount()).trim()));
+                Integer.toString(conf.getDnRpcSelectorThreadCount()).trim()));
     if (rpcSelectorThreadNum <= 0) {
       rpcSelectorThreadNum = 1;
     }
 
-    conf.setRpcSelectorThreadCount(rpcSelectorThreadNum);
+    conf.setDnRpcSelectorThreadCount(rpcSelectorThreadNum);
 
     int minConcurrentClientNum =
         Integer.parseInt(
             properties.getProperty(
                 "dn_rpc_min_concurrent_client_num",
-                Integer.toString(conf.getRpcMinConcurrentClientNum()).trim()));
+                Integer.toString(conf.getDnRpcMinConcurrentClientNum()).trim()));
     if (minConcurrentClientNum <= 0) {
       minConcurrentClientNum = Runtime.getRuntime().availableProcessors();
     }
 
-    conf.setRpcMinConcurrentClientNum(minConcurrentClientNum);
+    conf.setDnRpcMinConcurrentClientNum(minConcurrentClientNum);
 
     int maxConcurrentClientNum =
         Integer.parseInt(
             properties.getProperty(
                 "dn_rpc_max_concurrent_client_num",
-                Integer.toString(conf.getRpcMaxConcurrentClientNum()).trim()));
+                Integer.toString(conf.getDnRpcMaxConcurrentClientNum()).trim()));
     if (maxConcurrentClientNum <= 0) {
       maxConcurrentClientNum = 65535;
     }
 
-    conf.setRpcMaxConcurrentClientNum(maxConcurrentClientNum);
+    conf.setDnRpcMaxConcurrentClientNum(maxConcurrentClientNum);
 
     conf.setEnableWatermark(
         Boolean.parseBoolean(
@@ -765,19 +765,19 @@ public class IoTDBDescriptor {
             properties.getProperty(
                 "primitive_array_size", String.valueOf(conf.getPrimitiveArraySize())))));
 
-    conf.setThriftMaxFrameSize(
+    conf.setDnThriftMaxFrameSize(
         Integer.parseInt(
             properties.getProperty(
-                "dn_thrift_max_frame_size", String.valueOf(conf.getThriftMaxFrameSize()))));
+                "dn_thrift_max_frame_size", String.valueOf(conf.getDnThriftMaxFrameSize()))));
 
-    if (conf.getThriftMaxFrameSize() < IoTDBConstant.LEFT_SIZE_IN_REQUEST * 2) {
-      conf.setThriftMaxFrameSize(IoTDBConstant.LEFT_SIZE_IN_REQUEST * 2);
+    if (conf.getDnThriftMaxFrameSize() < IoTDBConstant.LEFT_SIZE_IN_REQUEST * 2) {
+      conf.setDnThriftMaxFrameSize(IoTDBConstant.LEFT_SIZE_IN_REQUEST * 2);
     }
 
-    conf.setThriftDefaultBufferSize(
+    conf.setDnThriftDefaultBufferSize(
         Integer.parseInt(
             properties.getProperty(
-                "dn_thrift_init_buffer_size", String.valueOf(conf.getThriftDefaultBufferSize()))));
+                "dn_thrift_init_buffer_size", String.valueOf(conf.getDnThriftDefaultBufferSize()))));
 
     conf.setFrequencyIntervalInMinute(
         Integer.parseInt(
@@ -1471,7 +1471,7 @@ public class IoTDBDescriptor {
   }
 
   public void loadHotModifiedProps() throws QueryProcessException {
-    URL url = getPropsUrl(CommonConfig.CONFIG_NAME);
+    URL url = getPropsUrl(CommonConfig.CONF_FILE_NAME);
     if (url == null) {
       logger.warn("Couldn't load the configuration from any of the known sources.");
       return;
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 abc29d55af..de650940ff 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
@@ -69,21 +69,21 @@ public class DataRegionConsensusImpl {
                           IoTConsensusConfig.newBuilder()
                               .setRpc(
                                   RPC.newBuilder()
-                                      .setConnectionTimeoutInMs(conf.getConnectionTimeoutInMS())
-                                      .setRpcSelectorThreadNum(conf.getRpcSelectorThreadCount())
+                                      .setConnectionTimeoutInMs(conf.getDnConnectionTimeoutInMS())
+                                      .setRpcSelectorThreadNum(conf.getDnRpcSelectorThreadCount())
                                       .setRpcMinConcurrentClientNum(
-                                          conf.getRpcMinConcurrentClientNum())
+                                          conf.getDnRpcMinConcurrentClientNum())
                                       .setRpcMaxConcurrentClientNum(
-                                          conf.getRpcMaxConcurrentClientNum())
+                                          conf.getDnRpcMaxConcurrentClientNum())
                                       .setRpcThriftCompressionEnabled(
-                                          conf.isRpcThriftCompressionEnable())
+                                          conf.isDnRpcThriftCompressionEnable())
                                       .setSelectorNumOfClientManager(
-                                          conf.getSelectorNumOfClientManager())
+                                          conf.getDnSelectorThreadCountOfClientManager())
                                       .setThriftServerAwaitTimeForStopService(
                                           conf.getThriftServerAwaitTimeForStopService())
-                                      .setThriftMaxFrameSize(conf.getThriftMaxFrameSize())
+                                      .setThriftMaxFrameSize(conf.getDnThriftMaxFrameSize())
                                       .setMaxConnectionForInternalService(
-                                          conf.getMaxConnectionForInternalService())
+                                          conf.getDnMaxConnectionForInternalService())
                                       .build())
                               .setReplication(
                                   IoTConsensusConfig.Replication.newBuilder()
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/ConfigMTree.java b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/ConfigMTree.java
index 98830a2ac6..53f137f00a 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/ConfigMTree.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/ConfigMTree.java
@@ -132,7 +132,7 @@ public class ConfigMTree {
       } else {
         IStorageGroupMNode storageGroupMNode =
             new StorageGroupMNode(
-                cur, nodeNames[i], CommonDescriptor.getInstance().getConfig().getDefaultTTLInMs());
+                cur, nodeNames[i], CommonDescriptor.getInstance().getConfig().getDefaultTtlInMs());
 
         IMNode result = cur.addChild(nodeNames[i], storageGroupMNode);
 
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/MemMTreeStore.java b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/MemMTreeStore.java
index 19f5502fbd..22dd68e069 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/MemMTreeStore.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/MemMTreeStore.java
@@ -54,7 +54,7 @@ public class MemMTreeStore implements IMTreeStore {
           new StorageGroupMNode(
               null,
               rootPath.getTailNode(),
-              CommonDescriptor.getInstance().getConfig().getDefaultTTLInMs());
+              CommonDescriptor.getInstance().getConfig().getDefaultTtlInMs());
     } else {
       this.root = new InternalMNode(null, IoTDBConstant.PATH_ROOT);
     }
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/MockSchemaFile.java b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/MockSchemaFile.java
index 0b3f6bd8c0..bb2c331c02 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/MockSchemaFile.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/MockSchemaFile.java
@@ -60,7 +60,7 @@ public class MockSchemaFile implements ISchemaFile {
         new StorageGroupMNode(
             null,
             storageGroupPath.getTailNode(),
-            CommonDescriptor.getInstance().getConfig().getDefaultTTLInMs());
+            CommonDescriptor.getInstance().getConfig().getDefaultTtlInMs());
     writeMNode(storageGroupMNode);
     return cloneMNode(storageGroupMNode);
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/SchemaFile.java b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/SchemaFile.java
index b508dac0d0..0fa1d7849c 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/SchemaFile.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/SchemaFile.java
@@ -135,7 +135,7 @@ public class SchemaFile implements ISchemaFile {
         sgName,
         schemaRegionId,
         true,
-        CommonDescriptor.getInstance().getConfig().getDefaultTTLInMs(),
+        CommonDescriptor.getInstance().getConfig().getDefaultTtlInMs(),
         false);
   }
 
@@ -460,7 +460,7 @@ public class SchemaFile implements ISchemaFile {
         sgName,
         schemaRegionId,
         false,
-        CommonDescriptor.getInstance().getConfig().getDefaultTTLInMs(),
+        CommonDescriptor.getInstance().getConfig().getDefaultTtlInMs(),
         false);
   }
 
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 fd935ff3c8..b28e8f256f 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
@@ -94,7 +94,7 @@ public class MPPDataExchangeService extends ThriftService implements MPPDataExch
               ThreadName.MPP_DATA_EXCHANGE_RPC_PROCESSOR.getName(),
               getBindIP(),
               getBindPort(),
-              config.getRpcMaxConcurrentClientNum(),
+              config.getDnRpcMaxConcurrentClientNum(),
               config.getThriftServerAwaitTimeForStopService(),
               new MPPDataExchangeServiceThriftHandler(),
               // TODO: hard coded compress strategy
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/scheduler/load/LoadTsFileScheduler.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/scheduler/load/LoadTsFileScheduler.java
index 64784bee4c..f3b4679041 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/scheduler/load/LoadTsFileScheduler.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/scheduler/load/LoadTsFileScheduler.java
@@ -80,7 +80,7 @@ public class LoadTsFileScheduler implements IScheduler {
   public static final long LOAD_TASK_MAX_TIME_IN_SECOND = 5184000L; // one day
   private static final long MAX_MEMORY_SIZE =
       Math.min(
-          config.getThriftMaxFrameSize() / 2,
+          config.getDnThriftMaxFrameSize() / 2,
           (long) (config.getAllocateMemoryForStorageEngine() * config.getLoadTsFileProportion()));
 
   private final MPPQueryContext queryContext;
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 915ba071b9..b3ba29c387 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
@@ -63,7 +63,7 @@ public class DataNodeInternalRPCService extends ThriftService
               ThreadName.DATANODE_INTERNAL_RPC_PROCESSOR.getName(),
               getBindIP(),
               getBindPort(),
-              config.getRpcMaxConcurrentClientNum(),
+              config.getDnRpcMaxConcurrentClientNum(),
               config.getThriftServerAwaitTimeForStopService(),
               new InternalServiceThriftHandler(),
               // TODO: hard coded compress strategy
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 5becc9302a..bbd0c0f1ea 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
@@ -70,10 +70,10 @@ public class InfluxDBRPCService extends ThriftService implements InfluxDBRPCServ
               ThreadName.INFLUXDB_RPC_PROCESSOR.getName(),
               config.getRpcAddress(),
               config.getInfluxDBRpcPort(),
-              config.getRpcMaxConcurrentClientNum(),
+              config.getDnRpcMaxConcurrentClientNum(),
               config.getThriftServerAwaitTimeForStopService(),
               new InfluxDBServiceThriftHandler(impl),
-              IoTDBDescriptor.getInstance().getConfig().isRpcThriftCompressionEnable());
+              IoTDBDescriptor.getInstance().getConfig().isDnRpcThriftCompressionEnable());
     } catch (RPCServiceException e) {
       throw new IllegalAccessException(e.getMessage());
     }
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 02485db5bf..55e72401b4 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
@@ -65,10 +65,10 @@ public class RPCService extends ThriftService implements RPCServiceMBean {
               ThreadName.CLIENT_RPC_PROCESSOR.getName(),
               config.getRpcAddress(),
               config.getRpcPort(),
-              config.getRpcMaxConcurrentClientNum(),
+              config.getDnRpcMaxConcurrentClientNum(),
               config.getThriftServerAwaitTimeForStopService(),
               new RPCServiceThriftHandler(impl),
-              IoTDBDescriptor.getInstance().getConfig().isRpcThriftCompressionEnable());
+              IoTDBDescriptor.getInstance().getConfig().isDnRpcThriftCompressionEnable());
     } catch (RPCServiceException e) {
       throw new IllegalAccessException(e.getMessage());
     }
diff --git a/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/ClientRPCServiceImpl.java b/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/ClientRPCServiceImpl.java
index 6bd5294f8a..478aac1fda 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/ClientRPCServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/thrift/impl/ClientRPCServiceImpl.java
@@ -545,7 +545,7 @@ public class ClientRPCServiceImpl implements IClientRPCServiceWithHandler {
     properties.setTimestampPrecision(
         IoTDBDescriptor.getInstance().getConfig().getTimestampPrecision());
     properties.setMaxConcurrentClientNum(
-        IoTDBDescriptor.getInstance().getConfig().getRpcMaxConcurrentClientNum());
+        IoTDBDescriptor.getInstance().getConfig().getDnRpcMaxConcurrentClientNum());
     properties.setWatermarkSecretKey(
         IoTDBDescriptor.getInstance().getConfig().getWatermarkSecretKey());
     properties.setWatermarkBitString(
@@ -556,7 +556,7 @@ public class ClientRPCServiceImpl implements IClientRPCServiceWithHandler {
         IoTDBDescriptor.getInstance().getConfig().getWatermarkParamMaxRightBit());
     properties.setIsReadOnly(CommonDescriptor.getInstance().getConfig().isReadOnly());
     properties.setThriftMaxFrameSize(
-        IoTDBDescriptor.getInstance().getConfig().getThriftMaxFrameSize());
+        IoTDBDescriptor.getInstance().getConfig().getDnThriftMaxFrameSize());
     return properties;
   }
 
diff --git a/server/src/main/java/org/apache/iotdb/db/sync/transport/client/IoTDBSyncClient.java b/server/src/main/java/org/apache/iotdb/db/sync/transport/client/IoTDBSyncClient.java
index 358a83901c..2e31211f88 100644
--- a/server/src/main/java/org/apache/iotdb/db/sync/transport/client/IoTDBSyncClient.java
+++ b/server/src/main/java/org/apache/iotdb/db/sync/transport/client/IoTDBSyncClient.java
@@ -82,7 +82,7 @@ public class IoTDBSyncClient implements ISyncClient {
    * @param databaseName database name that client belongs to
    */
   public IoTDBSyncClient(Pipe pipe, String remoteAddress, int port, String databaseName) {
-    RpcTransportFactory.setThriftMaxFrameSize(config.getThriftMaxFrameSize());
+    RpcTransportFactory.setThriftMaxFrameSize(config.getDnThriftMaxFrameSize());
     this.pipe = pipe;
     this.ipAddress = remoteAddress;
     this.port = port;
@@ -123,7 +123,7 @@ public class IoTDBSyncClient implements ISyncClient {
                   SyncConstant.SOCKET_TIMEOUT_MILLISECONDS,
                   SyncConstant.CONNECT_TIMEOUT_MILLISECONDS));
       TProtocol protocol;
-      if (config.isRpcThriftCompressionEnable()) {
+      if (config.isDnRpcThriftCompressionEnable()) {
         protocol = new TCompactProtocol(transport);
       } else {
         protocol = new TBinaryProtocol(transport);