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

yongzao pushed a commit to branch 
Adjust-the-timeout-period-in-ConfigNode-registration-procedure
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 6182da9c67aba9499a696dbce045cccf2865bf68
Author: YongzaoDan <[email protected]>
AuthorDate: Tue Jan 23 21:46:30 2024 +0800

    Finish
---
 .../org/apache/iotdb/confignode/manager/ConfigManager.java   |  8 ++++++--
 .../java/org/apache/iotdb/confignode/service/ConfigNode.java | 12 +++++-------
 2 files changed, 11 insertions(+), 9 deletions(-)

diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
index d8995a0ca19..6d68981ded5 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
@@ -192,6 +192,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
 
@@ -1220,10 +1221,13 @@ public class ConfigManager implements IManager {
 
   @Override
   public TSStatus createPeerForConsensusGroup(List<TConfigNodeLocation> 
configNodeLocations) {
-    for (int i = 0; i < 30; i++) {
+    final long rpcTimeoutInMS = COMMON_CONF.getConnectionTimeoutInMS();
+    final long retryIntervalInMS = 1000;
+
+    for (int i = 0; i < rpcTimeoutInMS / retryIntervalInMS; i++) {
       try {
         if (consensusManager.get() == null) {
-          Thread.sleep(1000);
+          TimeUnit.MILLISECONDS.sleep(retryIntervalInMS);
         } else {
           // When add non Seed-ConfigNode to the ConfigNodeGroup, the 
parameter should be emptyList
           
consensusManager.get().createPeerForConsensusGroup(Collections.emptyList());
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 4565a8282bc..4502c4c1d79 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
@@ -26,6 +26,8 @@ import org.apache.iotdb.commons.client.ClientManagerMetrics;
 import org.apache.iotdb.commons.concurrent.ThreadModule;
 import org.apache.iotdb.commons.concurrent.ThreadName;
 import org.apache.iotdb.commons.concurrent.ThreadPoolMetrics;
+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.StartupException;
 import org.apache.iotdb.commons.service.JMXService;
@@ -74,11 +76,12 @@ public class ConfigNode implements ConfigNodeMBean {
   private static final Logger LOGGER = 
LoggerFactory.getLogger(ConfigNode.class);
 
   private static final ConfigNodeConfig CONF = 
ConfigNodeDescriptor.getInstance().getConf();
+  private static final CommonConfig COMMON_CONFIG = 
CommonDescriptor.getInstance().getConfig();
 
   private static final int STARTUP_RETRY_NUM = 10;
-  private static final int SCHEDULE_WAITING_RETRY_NUM = 20;
   private static final long STARTUP_RETRY_INTERVAL_IN_MS = 
TimeUnit.SECONDS.toMillis(3);
-
+  private static final int SCHEDULE_WAITING_RETRY_NUM =
+      (int) (COMMON_CONFIG.getConnectionTimeoutInMS() / 
STARTUP_RETRY_INTERVAL_IN_MS);
   private static final int SEED_CONFIG_NODE_ID = 0;
 
   private static final int INIT_NON_SEED_CONFIG_NODE_ID = -1;
@@ -425,11 +428,6 @@ public class ConfigNode implements ConfigNodeMBean {
     return configManager;
   }
 
-  public void addMetrics() {
-    // Add some Metrics for configManager
-    configManager.addMetrics();
-  }
-
   protected void addShutDownHook() {
     Runtime.getRuntime().addShutdownHook(new ConfigNodeShutdownHook());
   }

Reply via email to