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

tanxinyu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/master by this push:
     new ce4fc833223 [IOTDB-6194] Remove _list from parameter 
target_config_node_list (#11335)
ce4fc833223 is described below

commit ce4fc833223ba90d6e81afa807e830335653691c
Author: Yongzao <[email protected]>
AuthorDate: Fri Oct 20 19:01:21 2023 +0800

    [IOTDB-6194] Remove _list from parameter target_config_node_list (#11335)
---
 .../DockerCompose/docker-compose-cluster-1c2d.yml  |  6 ++---
 .../DockerCompose/docker-compose-host-3c3d.yml     |  4 ++--
 .../DockerCompose/docker-compose-standalone.yml    |  4 ++--
 docker/src/main/Dockerfile-1c1d                    |  4 ++--
 .../iotdb/it/env/cluster/env/AbstractEnv.java      |  6 ++---
 .../it/env/cluster/node/ConfigNodeWrapper.java     |  9 ++++----
 .../iotdb/it/env/cluster/node/DataNodeWrapper.java |  4 ++--
 .../resources/conf/iotdb-confignode.properties     |  9 ++++----
 .../iotdb/confignode/conf/ConfigNodeConfig.java    | 10 ++++-----
 .../confignode/conf/ConfigNodeDescriptor.java      | 26 ++++++++++++++--------
 .../confignode/conf/ConfigNodeStartupCheck.java    | 10 ++++-----
 .../manager/node/ClusterNodeStartUtils.java        |  4 ++--
 .../iotdb/confignode/service/ConfigNode.java       | 14 ++++++------
 .../confignode/service/ConfigNodeShutdownHook.java |  6 ++---
 .../confignode1conf/iotdb-confignode.properties    |  2 +-
 .../confignode2conf/iotdb-confignode.properties    |  2 +-
 .../confignode3conf/iotdb-confignode.properties    |  2 +-
 .../resources/conf/iotdb-datanode.properties       |  7 +++---
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 12 +++++-----
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  | 21 ++++++++++++-----
 .../java/org/apache/iotdb/db/service/DataNode.java |  8 ++++---
 .../datanode1conf/iotdb-datanode.properties        |  2 +-
 .../datanode2conf/iotdb-datanode.properties        |  2 +-
 .../datanode3conf/iotdb-datanode.properties        |  2 +-
 .../src/test/resources/iotdb-datanode.properties   |  1 +
 .../apache/iotdb/commons/conf/IoTDBConstant.java   |  4 +++-
 26 files changed, 99 insertions(+), 82 deletions(-)

diff --git a/docker/src/main/DockerCompose/docker-compose-cluster-1c2d.yml 
b/docker/src/main/DockerCompose/docker-compose-cluster-1c2d.yml
index b4309296395..d7fd52ead2f 100644
--- a/docker/src/main/DockerCompose/docker-compose-cluster-1c2d.yml
+++ b/docker/src/main/DockerCompose/docker-compose-cluster-1c2d.yml
@@ -26,7 +26,7 @@ services:
       - cn_internal_address=iotdb-confignode
       - cn_internal_port=10710
       - cn_consensus_port=10720
-      - cn_target_config_node_list=iotdb-confignode:10710
+      - cn_seed_config_node=iotdb-confignode:10710
     volumes:
         - ./data/confignode:/iotdb/data
         - ./logs/confignode:/iotdb/logs
@@ -43,7 +43,7 @@ services:
     environment:
       - dn_rpc_address=iotdb-datanode-1
       - dn_internal_address=iotdb-datanode-1
-      - dn_target_config_node_list=iotdb-confignode:10710
+      - dn_seed_config_node=iotdb-confignode:10710
       - dn_rpc_port=6667
       - dn_mpp_data_exchange_port=10740
       - dn_schema_region_consensus_port=10750
@@ -62,7 +62,7 @@ services:
     environment:
       - dn_rpc_address=iotdb-datanode-2
       - dn_internal_address=iotdb-datanode-2
-      - dn_target_config_node_list=iotdb-confignode:10710
+      - dn_seed_config_node=iotdb-confignode:10710
       - dn_rpc_port=6667
       - dn_mpp_data_exchange_port=10740
       - dn_schema_region_consensus_port=10750
diff --git a/docker/src/main/DockerCompose/docker-compose-host-3c3d.yml 
b/docker/src/main/DockerCompose/docker-compose-host-3c3d.yml
index 03ac8ec9fd0..ab88c54f254 100644
--- a/docker/src/main/DockerCompose/docker-compose-host-3c3d.yml
+++ b/docker/src/main/DockerCompose/docker-compose-host-3c3d.yml
@@ -23,7 +23,7 @@ services:
     container_name: iotdb-confignode
     environment:
       - cn_internal_address=iotdb-1
-      - cn_target_config_node_list=iotdb-1:10710
+      - cn_seed_config_node=iotdb-1:10710
       - cn_internal_port=10710
       - cn_consensus_port=10720
       - schema_replication_factor=3
@@ -41,7 +41,7 @@ services:
     environment:
       - dn_rpc_address=iotdb-1
       - dn_internal_address=iotdb-1
-      - dn_target_config_node_list=iotdb-1:10710
+      - dn_seed_config_node=iotdb-1:10710
       - dn_rpc_port=6667
       - dn_mpp_data_exchange_port=10740
       - dn_schema_region_consensus_port=10750
diff --git a/docker/src/main/DockerCompose/docker-compose-standalone.yml 
b/docker/src/main/DockerCompose/docker-compose-standalone.yml
index 7724cce21e1..7193acfdcde 100644
--- a/docker/src/main/DockerCompose/docker-compose-standalone.yml
+++ b/docker/src/main/DockerCompose/docker-compose-standalone.yml
@@ -28,14 +28,14 @@ services:
       - cn_internal_address=iotdb-service
       - cn_internal_port=10710
       - cn_consensus_port=10720
-      - cn_target_config_node_list=iotdb-service:10710
+      - cn_seed_config_node=iotdb-service:10710
       - dn_rpc_address=iotdb-service
       - dn_internal_address=iotdb-service
       - dn_rpc_port=6667
       - dn_mpp_data_exchange_port=10740
       - dn_schema_region_consensus_port=10750
       - dn_data_region_consensus_port=10760
-      - dn_target_config_node_list=iotdb-service:10710
+      - dn_seed_config_node=iotdb-service:10710
     volumes:
         - ./data:/iotdb/data
         - ./logs:/iotdb/logs
diff --git a/docker/src/main/Dockerfile-1c1d b/docker/src/main/Dockerfile-1c1d
index aefa5d2965a..9aacd0aa0ca 100644
--- a/docker/src/main/Dockerfile-1c1d
+++ b/docker/src/main/Dockerfile-1c1d
@@ -32,8 +32,8 @@ RUN apt update \
   && mv /start-1c1d.sh /iotdb/sbin \
   && sed -i 's/dn_internal_address=127.0.0.1/dn_internal_address=0.0.0.0/g' 
/iotdb/conf/iotdb-datanode.properties \
   && sed -i 's/cn_internal_address=127.0.0.1/cn_internal_address=0.0.0.0/g' 
/iotdb/conf/iotdb-confignode.properties \
-  && sed -i 
's/cn_target_config_node_list=127.0.0.1:10710/cn_target_config_node_list=0.0.0.0:10710/g'
 /iotdb/conf/iotdb-confignode.properties \
-  && sed -i 
's/dn_target_config_node_list=127.0.0.1:10710/dn_target_config_node_list=0.0.0.0:10710/g'
 /iotdb/conf/iotdb-datanode.properties \
+  && sed -i 
's/cn_seed_config_node=127.0.0.1:10710/cn_seed_config_node=0.0.0.0:10710/g' 
/iotdb/conf/iotdb-confignode.properties \
+  && sed -i 
's/dn_seed_config_node=127.0.0.1:10710/dn_seed_config_node=0.0.0.0:10710/g' 
/iotdb/conf/iotdb-datanode.properties \
   && sed -i 's/# 
config_node_consensus_protocol_class=org.apache.iotdb.consensus.ratis.RatisConsensus/config_node_consensus_protocol_class=org.apache.iotdb.consensus.simple.SimpleConsensus/g'
 /iotdb/conf/iotdb-common.properties \
   && sed -i 's/# 
schema_region_consensus_protocol_class=org.apache.iotdb.consensus.ratis.RatisConsensus/schema_region_consensus_protocol_class=org.apache.iotdb.consensus.simple.SimpleConsensus/g'
 /iotdb/conf/iotdb-common.properties \
   && sed -i 's/# 
data_region_consensus_protocol_class=org.apache.iotdb.consensus.iot.IoTConsensus/data_region_consensus_protocol_class=org.apache.iotdb.consensus.simple.SimpleConsensus/g'
 /iotdb/conf/iotdb-common.properties \
diff --git 
a/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/env/AbstractEnv.java
 
b/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/env/AbstractEnv.java
index c6108934289..6edfe0122ff 100644
--- 
a/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/env/AbstractEnv.java
+++ 
b/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/env/AbstractEnv.java
@@ -153,7 +153,7 @@ public abstract class AbstractEnv implements BaseEnv {
         (MppJVMConfig) clusterConfig.getConfigNodeJVMConfig());
     seedConfigNodeWrapper.createLogDir();
     seedConfigNodeWrapper.start();
-    String targetConfigNode = seedConfigNodeWrapper.getIpAndPortString();
+    String seedConfigNode = seedConfigNodeWrapper.getIpAndPortString();
     this.configNodeWrapperList.add(seedConfigNodeWrapper);
 
     // Check if the Seed-ConfigNode started successfully
@@ -171,7 +171,7 @@ public abstract class AbstractEnv implements BaseEnv {
       ConfigNodeWrapper configNodeWrapper =
           new ConfigNodeWrapper(
               false,
-              targetConfigNode,
+              seedConfigNode,
               testClassName,
               testMethodName,
               EnvUtils.searchAvailablePorts(),
@@ -205,7 +205,7 @@ public abstract class AbstractEnv implements BaseEnv {
     for (int i = 0; i < dataNodesNum; i++) {
       DataNodeWrapper dataNodeWrapper =
           new DataNodeWrapper(
-              targetConfigNode,
+              seedConfigNode,
               testClassName,
               testMethodName,
               EnvUtils.searchAvailablePorts(),
diff --git 
a/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/node/ConfigNodeWrapper.java
 
b/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/node/ConfigNodeWrapper.java
index e33b5fcb86e..8aec051dc9b 100644
--- 
a/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/node/ConfigNodeWrapper.java
+++ 
b/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/node/ConfigNodeWrapper.java
@@ -70,11 +70,11 @@ public class ConfigNodeWrapper extends AbstractNodeWrapper {
     super(testClassName, testMethodName, portList, clusterIndex, 
isMultiCluster, startTime);
     this.consensusPort = portList[1];
     this.isSeed = isSeed;
-    String targetConfigNodes;
+    String seedConfigNodes;
     if (isSeed) {
-      targetConfigNodes = getIpAndPortString();
+      seedConfigNodes = getIpAndPortString();
     } else {
-      targetConfigNodes = targetCNs;
+      seedConfigNodes = targetCNs;
     }
     this.defaultNodePropertiesFile =
         EnvUtils.getFilePathFromSysVar(DEFAULT_CONFIG_NODE_PROPERTIES, 
clusterIndex);
@@ -85,8 +85,7 @@ public class ConfigNodeWrapper extends AbstractNodeWrapper {
     reloadMutableFields();
 
     // initialize immutable properties
-    immutableNodeProperties.setProperty(
-        IoTDBConstant.CN_TARGET_CONFIG_NODE_LIST, targetConfigNodes);
+    immutableNodeProperties.setProperty(IoTDBConstant.CN_SEED_CONFIG_NODE, 
seedConfigNodes);
     immutableNodeProperties.setProperty(CN_SYSTEM_DIR, 
MppBaseConfig.NULL_VALUE);
     immutableNodeProperties.setProperty(CN_CONSENSUS_DIR, 
MppBaseConfig.NULL_VALUE);
     immutableNodeProperties.setProperty(
diff --git 
a/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/node/DataNodeWrapper.java
 
b/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/node/DataNodeWrapper.java
index ebd9934a16d..e7543813599 100644
--- 
a/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/node/DataNodeWrapper.java
+++ 
b/integration-test/src/main/java/org/apache/iotdb/it/env/cluster/node/DataNodeWrapper.java
@@ -80,7 +80,7 @@ public class DataNodeWrapper extends AbstractNodeWrapper {
   private final String defaultCommonPropertiesFile;
 
   public DataNodeWrapper(
-      String targetConfigNode,
+      String seedConfigNode,
       String testClassName,
       String testMethodName,
       int[] portList,
@@ -109,7 +109,7 @@ public class DataNodeWrapper extends AbstractNodeWrapper {
     immutableCommonProperties.setProperty(
         PIPE_AIR_GAP_RECEIVER_PORT, 
String.valueOf(this.pipeAirGapReceiverPort));
 
-    
immutableNodeProperties.setProperty(IoTDBConstant.DN_TARGET_CONFIG_NODE_LIST, 
targetConfigNode);
+    immutableNodeProperties.setProperty(IoTDBConstant.DN_SEED_CONFIG_NODE, 
seedConfigNode);
     immutableNodeProperties.setProperty(DN_SYSTEM_DIR, 
MppBaseConfig.NULL_VALUE);
     immutableNodeProperties.setProperty(DN_DATA_DIRS, 
MppBaseConfig.NULL_VALUE);
     immutableNodeProperties.setProperty(DN_CONSENSUS_DIR, 
MppBaseConfig.NULL_VALUE);
diff --git 
a/iotdb-core/confignode/src/assembly/resources/conf/iotdb-confignode.properties 
b/iotdb-core/confignode/src/assembly/resources/conf/iotdb-confignode.properties
index bbe831b7238..36d7e53c20c 100644
--- 
a/iotdb-core/confignode/src/assembly/resources/conf/iotdb-confignode.properties
+++ 
b/iotdb-core/confignode/src/assembly/resources/conf/iotdb-confignode.properties
@@ -35,15 +35,14 @@ cn_internal_port=10710
 cn_consensus_port=10720
 
 ####################
-### Target Config Nodes
+### Seed ConfigNode
 ####################
 
-# For the first ConfigNode to start, cn_target_config_node_list points to its 
own cn_internal_address:cn_internal_port.
-# For other ConfigNodes that to join the cluster, cn_target_config_node_list 
points to any running ConfigNode's cn_internal_address:cn_internal_port.
-# Note: Currently only endpoints that point to a single confignode are 
supported
+# For the first ConfigNode to start, cn_seed_config_node points to its own 
cn_internal_address:cn_internal_port.
+# For other ConfigNodes that to join the cluster, cn_seed_config_node points 
to any running ConfigNode's cn_internal_address:cn_internal_port.
 # Format: address:port   e.g. 127.0.0.1:10710
 # Datatype: String
-cn_target_config_node_list=127.0.0.1:10710
+cn_seed_config_node=127.0.0.1:10710
 
 ####################
 ### Directory configuration
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
index db12e430679..277a3513f3c 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
@@ -51,7 +51,7 @@ public class ConfigNodeConfig {
   private int consensusPort = 10720;
 
   /** Used for connecting to the ConfigNodeGroup. */
-  private TEndPoint targetConfigNode = new TEndPoint("127.0.0.1", 10710);
+  private TEndPoint seedConfigNode = new TEndPoint("127.0.0.1", 10710);
 
   // TODO: Read from iotdb-confignode.properties.
   private int configRegionId = 0;
@@ -387,12 +387,12 @@ public class ConfigNodeConfig {
     this.consensusPort = consensusPort;
   }
 
-  public TEndPoint getTargetConfigNode() {
-    return targetConfigNode;
+  public TEndPoint getSeedConfigNode() {
+    return seedConfigNode;
   }
 
-  public void setTargetConfigNode(TEndPoint targetConfigNode) {
-    this.targetConfigNode = targetConfigNode;
+  public void setSeedConfigNode(TEndPoint seedConfigNode) {
+    this.seedConfigNode = seedConfigNode;
   }
 
   public int getConfigRegionId() {
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
index 5faadebc128..99cc0e6376d 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
@@ -172,11 +172,19 @@ public class ConfigNodeDescriptor {
                     IoTDBConstant.CN_CONSENSUS_PORT, 
String.valueOf(conf.getConsensusPort()))
                 .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()));
+    String seedConfigNode = 
properties.getProperty(IoTDBConstant.CN_SEED_CONFIG_NODE, null);
+    if (seedConfigNode == null) {
+      seedConfigNode = 
properties.getProperty(IoTDBConstant.CN_TARGET_CONFIG_NODE_LIST, null);
+      LOGGER.warn(
+          "The parameter cn_target_config_node_list has been abandoned, "
+              + "only the first ConfigNode address will be used to join in the 
cluster. "
+              + "Please use cn_seed_config_node instead.");
+    }
+    if (seedConfigNode != null) {
+      
conf.setSeedConfigNode(NodeUrlUtils.parseTEndPointUrls(seedConfigNode.trim()).get(0));
+    } else {
+      throw new IOException(
+          "The parameter dn_seed_config_node is not set, this ConfigNode will 
not join in any cluster.");
     }
 
     conf.setSeriesSlotNum(
@@ -879,13 +887,13 @@ public class ConfigNodeDescriptor {
    *
    * <p>Notice: Only invoke this interface when first startup.
    *
-   * @return True if the target_config_node_list points to itself
+   * @return True if the seed_config_node points to itself
    */
   public boolean isSeedConfigNode() {
-    return 
(conf.getInternalAddress().equals(conf.getTargetConfigNode().getIp())
+    return (conf.getInternalAddress().equals(conf.getSeedConfigNode().getIp())
             || (NodeUrlUtils.isLocalAddress(conf.getInternalAddress())
-                && 
NodeUrlUtils.isLocalAddress(conf.getTargetConfigNode().getIp())))
-        && conf.getInternalPort() == conf.getTargetConfigNode().getPort();
+                && 
NodeUrlUtils.isLocalAddress(conf.getSeedConfigNode().getIp())))
+        && conf.getInternalPort() == conf.getSeedConfigNode().getPort();
   }
 
   public static ConfigNodeDescriptor getInstance() {
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeStartupCheck.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeStartupCheck.java
index 18882e9095a..000e08d348e 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeStartupCheck.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeStartupCheck.java
@@ -89,13 +89,13 @@ public class ConfigNodeStartupCheck extends StartupChecks {
    */
   private void checkGlobalConfig() throws ConfigurationException {
     // When the ConfigNode consensus protocol is set to SIMPLE_CONSENSUS,
-    // the target_config_node_list needs to point to itself
+    // the seed_config_node needs to point to itself
     if 
(CONF.getConfigNodeConsensusProtocolClass().equals(ConsensusFactory.SIMPLE_CONSENSUS)
-        && 
(!CONF.getInternalAddress().equals(CONF.getTargetConfigNode().getIp())
-            || CONF.getInternalPort() != 
CONF.getTargetConfigNode().getPort())) {
+        && (!CONF.getInternalAddress().equals(CONF.getSeedConfigNode().getIp())
+            || CONF.getInternalPort() != CONF.getSeedConfigNode().getPort())) {
       throw new ConfigurationException(
-          IoTDBConstant.CN_TARGET_CONFIG_NODE_LIST,
-          CONF.getTargetConfigNode().getIp() + ":" + 
CONF.getTargetConfigNode().getPort(),
+          IoTDBConstant.CN_SEED_CONFIG_NODE,
+          CONF.getSeedConfigNode().getIp() + ":" + 
CONF.getSeedConfigNode().getPort(),
           CONF.getInternalAddress() + ":" + CONF.getInternalPort(),
           "the config_node_consensus_protocol_class is set to" + 
ConsensusFactory.SIMPLE_CONSENSUS);
     }
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/node/ClusterNodeStartUtils.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/node/ClusterNodeStartUtils.java
index 0e8e26f8b4e..baf293ed5e4 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/node/ClusterNodeStartUtils.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/node/ClusterNodeStartUtils.java
@@ -71,7 +71,7 @@ public class ClusterNodeStartUtils {
               "Reject %s start. Because the ClusterName of the current %s and 
the target cluster are inconsistent. "
                   + "ClusterName of the current Node: %s, ClusterName of the 
target cluster: %s."
                   + POSSIBLE_SOLUTIONS
-                  + "\t1. Change the target_config_node_list parameter in %s 
to join the correct cluster."
+                  + "\t1. Change the seed_config_node parameter in %s to join 
the correct cluster."
                   + "\n\t2. Change the cluster_name parameter in %s to match 
the target cluster",
               nodeType.getNodeType(),
               nodeType.getNodeType(),
@@ -145,7 +145,7 @@ public class ClusterNodeStartUtils {
               "Reject %s restart. Because the ClusterName of the current %s 
and the target cluster are inconsistent. "
                   + "ClusterName of the current Node: %s, ClusterName of the 
target cluster: %s."
                   + POSSIBLE_SOLUTIONS
-                  + "\t1. Change the target_config_node_list parameter in %s 
to join the correct cluster."
+                  + "\t1. Change the seed_config_node parameter in %s to join 
the correct cluster."
                   + "\n\t2. Change the cluster_name parameter in %s to match 
the target cluster",
               nodeType.getNodeType(),
               nodeType.getNodeType(),
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNode.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNode.java
index 1f0c1ee32ec..0a2a9fd9c5e 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNode.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNode.java
@@ -315,11 +315,11 @@ public class ConfigNode implements ConfigNodeMBean {
 
     req.setVersionInfo(new TNodeVersionInfo(IoTDBConstant.VERSION, 
IoTDBConstant.BUILD_INFO));
 
-    TEndPoint targetConfigNode = CONF.getTargetConfigNode();
-    if (targetConfigNode == null) {
+    TEndPoint seedConfigNode = CONF.getSeedConfigNode();
+    if (seedConfigNode == null) {
       LOGGER.error(
-          "Please set the cn_target_config_node_list parameter in 
iotdb-confignode.properties file.");
-      throw new StartupException("The targetConfigNode setting in conf is 
empty");
+          "Please set the cn_seed_config_node parameter in 
iotdb-confignode.properties file.");
+      throw new StartupException("The seedConfigNode setting in conf is 
empty");
     }
 
     for (int retry = 0; retry < STARTUP_RETRY_NUM; retry++) {
@@ -328,7 +328,7 @@ public class ConfigNode implements ConfigNodeMBean {
       Object obj =
           SyncConfigNodeClientPool.getInstance()
               .sendSyncRequestToConfigNodeWithRetry(
-                  targetConfigNode, req, 
ConfigNodeRequestType.REGISTER_CONFIG_NODE);
+                  seedConfigNode, req, 
ConfigNodeRequestType.REGISTER_CONFIG_NODE);
 
       if (obj instanceof TConfigNodeRegisterResp) {
         resp = (TConfigNodeRegisterResp) obj;
@@ -347,8 +347,8 @@ public class ConfigNode implements ConfigNodeMBean {
         configManager.initConsensusManager();
         return;
       } else if (status.getCode() == 
TSStatusCode.REDIRECTION_RECOMMEND.getStatusCode()) {
-        targetConfigNode = status.getRedirectNode();
-        LOGGER.info("ConfigNode need redirect to  {}, retry {} ...", 
targetConfigNode, retry);
+        seedConfigNode = status.getRedirectNode();
+        LOGGER.info("ConfigNode need redirect to  {}, retry {} ...", 
seedConfigNode, retry);
       } else if (status.getCode() == 
TSStatusCode.INTERNAL_REQUEST_RETRY_ERROR.getStatusCode()) {
         LOGGER.warn("The result of register self ConfigNode is {}, retry {} 
...", status, retry);
       } else {
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNodeShutdownHook.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNodeShutdownHook.java
index 1089830508e..bd8ea079690 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNodeShutdownHook.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNodeShutdownHook.java
@@ -58,13 +58,13 @@ public class ConfigNodeShutdownHook extends Thread {
       // Set and report shutdown to cluster ConfigNode-leader
       
CommonDescriptor.getInstance().getConfig().setNodeStatus(NodeStatus.Unknown);
       boolean isReportSuccess = false;
-      TEndPoint targetConfigNode = CONF.getTargetConfigNode();
+      TEndPoint seedConfigNode = CONF.getSeedConfigNode();
       for (int retry = 0; retry < SHUTDOWN_REPORT_RETRY_NUM; retry++) {
         TSStatus result =
             (TSStatus)
                 SyncConfigNodeClientPool.getInstance()
                     .sendSyncRequestToConfigNodeWithRetry(
-                        targetConfigNode,
+                        seedConfigNode,
                         new TConfigNodeLocation(
                             CONF.getConfigNodeId(),
                             new TEndPoint(CONF.getInternalAddress(), 
CONF.getInternalPort()),
@@ -77,7 +77,7 @@ public class ConfigNodeShutdownHook extends Thread {
           break;
         } else if (result.getCode() == 
TSStatusCode.REDIRECTION_RECOMMEND.getStatusCode()) {
           // Redirect
-          targetConfigNode = result.getRedirectNode();
+          seedConfigNode = result.getRedirectNode();
         }
       }
       if (!isReportSuccess) {
diff --git 
a/iotdb-core/confignode/src/test/resources/confignode1conf/iotdb-confignode.properties
 
b/iotdb-core/confignode/src/test/resources/confignode1conf/iotdb-confignode.properties
index ebc0e98212a..0ab8e60fa71 100644
--- 
a/iotdb-core/confignode/src/test/resources/confignode1conf/iotdb-confignode.properties
+++ 
b/iotdb-core/confignode/src/test/resources/confignode1conf/iotdb-confignode.properties
@@ -20,7 +20,7 @@
 cn_internal_address=127.0.0.1
 cn_internal_port=10710
 cn_consensus_port=10720
-cn_target_config_node_list=127.0.0.1:10710
+cn_seed_config_node=127.0.0.1:10710
 cn_system_dir=target/confignode1/system
 cn_data_dirs=target/confignode1/data
 cn_consensus_dir=target/confignode1/consensus
diff --git 
a/iotdb-core/confignode/src/test/resources/confignode2conf/iotdb-confignode.properties
 
b/iotdb-core/confignode/src/test/resources/confignode2conf/iotdb-confignode.properties
index 1a0ceaf8c35..b9c63f33cbd 100644
--- 
a/iotdb-core/confignode/src/test/resources/confignode2conf/iotdb-confignode.properties
+++ 
b/iotdb-core/confignode/src/test/resources/confignode2conf/iotdb-confignode.properties
@@ -20,7 +20,7 @@
 cn_internal_address=127.0.0.1
 cn_internal_port=10711
 cn_consensus_port=10721
-cn_target_config_node_list=127.0.0.1:10710
+cn_seed_config_node=127.0.0.1:10710
 cn_system_dir=target/confignode2/system
 cn_data_dirs=target/confignode2/data
 cn_consensus_dir=target/confignode2/consensus
diff --git 
a/iotdb-core/confignode/src/test/resources/confignode3conf/iotdb-confignode.properties
 
b/iotdb-core/confignode/src/test/resources/confignode3conf/iotdb-confignode.properties
index f2eaaa2c7a8..a56f7cf3682 100644
--- 
a/iotdb-core/confignode/src/test/resources/confignode3conf/iotdb-confignode.properties
+++ 
b/iotdb-core/confignode/src/test/resources/confignode3conf/iotdb-confignode.properties
@@ -20,7 +20,7 @@
 cn_internal_address=127.0.0.1
 cn_internal_port=10712
 cn_consensus_port=10722
-cn_target_config_node_list=127.0.0.1:10710
+cn_seed_config_node=127.0.0.1:10710
 cn_system_dir=target/confignode3/system
 cn_data_dirs=target/confignode3/data
 cn_consensus_dir=target/confignode3/consensus
diff --git 
a/iotdb-core/datanode/src/assembly/resources/conf/iotdb-datanode.properties 
b/iotdb-core/datanode/src/assembly/resources/conf/iotdb-datanode.properties
index c8aef63aa1b..e616df68b70 100644
--- a/iotdb-core/datanode/src/assembly/resources/conf/iotdb-datanode.properties
+++ b/iotdb-core/datanode/src/assembly/resources/conf/iotdb-datanode.properties
@@ -61,14 +61,13 @@ dn_data_region_consensus_port=10760
 # dn_join_cluster_retry_interval_ms=5000
 
 ####################
-### Target Config Nodes
+### Seed ConfigNode
 ####################
 
-# For the first ConfigNode to start, cn_target_config_node_list points to its 
own cn_internal_address:cn_internal_port.
-# For other ConfigNodes that to join the cluster, target_config_node_list 
points to any running ConfigNode's cn_internal_address:cn_internal_port.
+# dn_seed_config_node points to any running ConfigNode's 
cn_internal_address:cn_internal_port.
 # Format: address:port(,address:port)*   e.g. 127.0.0.1:10710,127.0.0.1:10711
 # Datatype: String
-dn_target_config_node_list=127.0.0.1:10710
+dn_seed_config_node=127.0.0.1:10710
 
 ####################
 ### Connection Configuration
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
index 0cf68f97426..e7685e25c0d 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
@@ -58,7 +58,6 @@ import java.io.IOException;
 import java.lang.reflect.Field;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Objects;
@@ -862,8 +861,7 @@ public class IoTDBConfig {
   private int schemaRegionConsensusPort = 10750;
 
   /** Ip and port of config nodes. */
-  private List<TEndPoint> targetConfigNodeList =
-      Collections.singletonList(new TEndPoint("127.0.0.1", 10710));
+  private TEndPoint seedConfigNode = new TEndPoint("127.0.0.1", 10710);
 
   /** The time of data node waiting for the next retry to join into the 
cluster */
   private long joinClusterRetryIntervalMs = TimeUnit.SECONDS.toMillis(5);
@@ -2913,12 +2911,12 @@ public class IoTDBConfig {
     this.schemaRegionConsensusPort = schemaRegionConsensusPort;
   }
 
-  public List<TEndPoint> getTargetConfigNodeList() {
-    return targetConfigNodeList;
+  public TEndPoint getSeedConfigNode() {
+    return seedConfigNode;
   }
 
-  public void setTargetConfigNodeList(List<TEndPoint> targetConfigNodeList) {
-    this.targetConfigNodeList = targetConfigNodeList;
+  public void setSeedConfigNode(TEndPoint seedConfigNode) {
+    this.seedConfigNode = seedConfigNode;
   }
 
   public long getJoinClusterRetryIntervalMs() {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
index cb20779d0b7..7d0f230bc16 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
@@ -220,7 +220,7 @@ public class IoTDBDescriptor {
     }
   }
 
-  public void loadProperties(Properties properties) throws BadNodeUrlException 
{
+  public void loadProperties(Properties properties) throws 
BadNodeUrlException, IOException {
     conf.setClusterSchemaLimitLevel(
         properties
             .getProperty("cluster_schema_limit_level", 
conf.getClusterSchemaLimitLevel())
@@ -2015,16 +2015,25 @@ public class IoTDBDescriptor {
             false));
   }
 
-  public void loadClusterProps(Properties properties) {
-    String configNodeUrls = 
properties.getProperty(IoTDBConstant.DN_TARGET_CONFIG_NODE_LIST);
+  public void loadClusterProps(Properties properties) throws IOException {
+    String configNodeUrls = 
properties.getProperty(IoTDBConstant.DN_SEED_CONFIG_NODE);
+    if (configNodeUrls == null) {
+      configNodeUrls = 
properties.getProperty(IoTDBConstant.DN_TARGET_CONFIG_NODE_LIST);
+      logger.warn(
+          "The parameter dn_target_config_node_list has been abandoned, "
+              + "only the first ConfigNode address will be used to join in the 
cluster. "
+              + "Please use dn_seed_config_node instead.");
+    }
     if (configNodeUrls != null) {
       try {
         configNodeUrls = configNodeUrls.trim();
-        
conf.setTargetConfigNodeList(NodeUrlUtils.parseTEndPointUrls(configNodeUrls));
+        
conf.setSeedConfigNode(NodeUrlUtils.parseTEndPointUrls(configNodeUrls).get(0));
       } catch (BadNodeUrlException e) {
-        logger.error(
-            "Config nodes are set in wrong format, please set them like 
127.0.0.1:10710,127.0.0.1:10712");
+        logger.error("ConfigNodes are set in wrong format, please set them 
like 127.0.0.1:10710");
       }
+    } else {
+      throw new IOException(
+          "The parameter dn_seed_config_node is not set, this DataNode will 
not join in any cluster.");
     }
 
     conf.setInternalAddress(
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/DataNode.java 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/DataNode.java
index 038996a9c6d..8bba3a10d31 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/DataNode.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/DataNode.java
@@ -97,6 +97,7 @@ import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.nio.charset.Charset;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
@@ -166,7 +167,8 @@ public class DataNode implements DataNodeMBean {
       isFirstStart = prepareDataNode();
 
       // Set target ConfigNodeList from iotdb-datanode.properties file
-      
ConfigNodeInfo.getInstance().updateConfigNodeList(config.getTargetConfigNodeList());
+      ConfigNodeInfo.getInstance()
+          
.updateConfigNodeList(Collections.singletonList(config.getSeedConfigNode()));
 
       // Pull and check system configurations from ConfigNode-leader
       pullAndCheckSystemConfigurations();
@@ -392,7 +394,7 @@ public class DataNode implements DataNodeMBean {
       // All tries failed
       logger.error(
           "Cannot register into cluster after {} retries. "
-              + "Please check dn_target_config_node_list in 
iotdb-datanode.properties.",
+              + "Please check dn_seed_config_node in 
iotdb-datanode.properties.",
           DEFAULT_RETRY);
       throw new StartupException("Cannot register into the cluster.");
     }
@@ -453,7 +455,7 @@ public class DataNode implements DataNodeMBean {
       // All tries failed
       logger.error(
           "Cannot send restart DataNode request to ConfigNode-leader after {} 
retries. "
-              + "Please check dn_target_config_node_list in 
iotdb-datanode.properties.",
+              + "Please check dn_seed_config_node in 
iotdb-datanode.properties.",
           DEFAULT_RETRY);
       throw new StartupException("Cannot send restart DataNode request to 
ConfigNode-leader.");
     }
diff --git 
a/iotdb-core/datanode/src/test/resources/datanode1conf/iotdb-datanode.properties
 
b/iotdb-core/datanode/src/test/resources/datanode1conf/iotdb-datanode.properties
index 5d5e8340d5c..44924be86fd 100644
--- 
a/iotdb-core/datanode/src/test/resources/datanode1conf/iotdb-datanode.properties
+++ 
b/iotdb-core/datanode/src/test/resources/datanode1conf/iotdb-datanode.properties
@@ -26,7 +26,7 @@ dn_mpp_data_exchange_port=10740
 dn_schema_region_consensus_port=10750
 dn_data_region_consensus_port=10760
 
-dn_target_config_node_list=127.0.0.1:10710,127.0.0.1:10711,127.0.0.1:10712
+dn_seed_config_node=127.0.0.1:10710
 
 dn_system_dir=target/datanode1/system
 dn_data_dirs=target/datanode1/data
diff --git 
a/iotdb-core/datanode/src/test/resources/datanode2conf/iotdb-datanode.properties
 
b/iotdb-core/datanode/src/test/resources/datanode2conf/iotdb-datanode.properties
index 43fa3fa8d63..7e36e385d3e 100644
--- 
a/iotdb-core/datanode/src/test/resources/datanode2conf/iotdb-datanode.properties
+++ 
b/iotdb-core/datanode/src/test/resources/datanode2conf/iotdb-datanode.properties
@@ -26,7 +26,7 @@ dn_mpp_data_exchange_port=10741
 dn_schema_region_consensus_port=10751
 dn_data_region_consensus_port=10761
 
-dn_target_config_node_list=127.0.0.1:10710,127.0.0.1:10711,127.0.0.1:10712
+dn_seed_config_node=127.0.0.1:10710
 
 dn_system_dir=target/datanode2/system
 dn_data_dirs=target/datanode2/data
diff --git 
a/iotdb-core/datanode/src/test/resources/datanode3conf/iotdb-datanode.properties
 
b/iotdb-core/datanode/src/test/resources/datanode3conf/iotdb-datanode.properties
index 5ba1bd38ddc..7330e3a11d6 100644
--- 
a/iotdb-core/datanode/src/test/resources/datanode3conf/iotdb-datanode.properties
+++ 
b/iotdb-core/datanode/src/test/resources/datanode3conf/iotdb-datanode.properties
@@ -26,7 +26,7 @@ dn_mpp_data_exchange_port=10742
 dn_schema_region_consensus_port=10752
 dn_data_region_consensus_port=10762
 
-dn_target_config_node_list=127.0.0.1:10710,127.0.0.1:10711,127.0.0.1:10712
+dn_seed_config_node=127.0.0.1:10710
 
 dn_system_dir=target/datanode3/system
 dn_data_dirs=target/datanode3/data
diff --git a/iotdb-core/datanode/src/test/resources/iotdb-datanode.properties 
b/iotdb-core/datanode/src/test/resources/iotdb-datanode.properties
index 7d730ba7d61..6cdd3134b79 100644
--- a/iotdb-core/datanode/src/test/resources/iotdb-datanode.properties
+++ b/iotdb-core/datanode/src/test/resources/iotdb-datanode.properties
@@ -26,3 +26,4 @@ minimum_pbtree_segment_in_bytes=0
 page_cache_in_pbtree=10
 dn_internal_address=0.0.0.0
 dn_sync_dir=target/sync
+dn_seed_config_node=127.0.0.1:10710
\ No newline at end of file
diff --git 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
index b19f6f0ec63..02cd2c2106b 100644
--- 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
+++ 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
@@ -66,8 +66,10 @@ public class IoTDBConstant {
   public static final String DN_INTERNAL_PORT = "dn_internal_port";
   public static final String CN_CONSENSUS_PORT = "cn_consensus_port";
 
+  public static final String CN_SEED_CONFIG_NODE = "cn_seed_config_node";
   public static final String CN_TARGET_CONFIG_NODE_LIST = 
"cn_target_config_node_list";
-  public static final String DN_TARGET_CONFIG_NODE_LIST = 
"dn_target_config_node_list";
+  public static final String DN_SEED_CONFIG_NODE = "dn_seed_config_node";
+  public static final String DN_TARGET_CONFIG_NODE_LIST = 
"dn_target_config_node_list ";
 
   public static final String CLUSTER_NAME = "cluster_name";
   public static final String DEFAULT_CLUSTER_NAME = "defaultCluster";


Reply via email to