From c52da2bdbd0a5ec39cb47219529ab0ea80dfb181 Mon Sep 17 00:00:00 2001 From: Yongzao Date: Wed, 24 Jan 2024 09:47:35 +0800 Subject: [PATCH] [IOTDB-6295] Adjust the timeout period in ConfigNode registration procedure (#11962) --- .../iotdb/confignode/manager/ConfigManager.java | 8 ++++++-- .../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 d8995a0ca192..6d68981ded5a 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.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 TSStatus checkConfigNodeGlobalConfig(TConfigNodeRegisterReq req) { @Override public TSStatus createPeerForConsensusGroup(List 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 4565a8282bc3..4502c4c1d792 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.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 ConfigManager getConfigManager() { return configManager; } - public void addMetrics() { - // Add some Metrics for configManager - configManager.addMetrics(); - } - protected void addShutDownHook() { Runtime.getRuntime().addShutdownHook(new ConfigNodeShutdownHook()); }