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 2024/01/02 03:24:45 UTC
(iotdb) 01/01: Finish
This is an automated email from the ASF dual-hosted git repository.
yongzao pushed a commit to branch alter-timeout
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 45f7c7d57431c0c4ce9df598ffd47632b2f51b41
Author: YongzaoDan <53...@qq.com>
AuthorDate: Tue Jan 2 11:24:34 2024 +0800
Finish
---
.../iotdb/confignode/manager/ProcedureManager.java | 16 +++++++++++-----
.../iotdb/confignode/manager/load/cache/LoadCache.java | 8 ++++----
2 files changed, 15 insertions(+), 9 deletions(-)
diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ProcedureManager.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ProcedureManager.java
index d616b109660..0398657f55f 100644
--- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ProcedureManager.java
+++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ProcedureManager.java
@@ -25,6 +25,8 @@ import org.apache.iotdb.common.rpc.thrift.TDataNodeConfiguration;
import org.apache.iotdb.common.rpc.thrift.TDataNodeLocation;
import org.apache.iotdb.common.rpc.thrift.TSStatus;
import org.apache.iotdb.commons.cluster.NodeStatus;
+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.IoTDBException;
import org.apache.iotdb.commons.path.PartialPath;
@@ -108,7 +110,6 @@ import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
public class ProcedureManager {
@@ -116,8 +117,15 @@ public class ProcedureManager {
private static final ConfigNodeConfig CONFIG_NODE_CONFIG =
ConfigNodeDescriptor.getInstance().getConf();
+ private static final CommonConfig COMMON_CONFIG = CommonDescriptor.getInstance().getConfig();
- private static final int PROCEDURE_WAIT_TIME_OUT = 30;
+ public static final long PROCEDURE_WAIT_TIME_OUT =
+ Math.min(
+ 2
+ * Math.max(
+ CONFIG_NODE_CONFIG.getSchemaRegionRatisRpcLeaderElectionTimeoutMaxMs(),
+ CONFIG_NODE_CONFIG.getDataRegionRatisRpcLeaderElectionTimeoutMaxMs()),
+ COMMON_CONFIG.getConnectionTimeoutInMS());
private static final int PROCEDURE_WAIT_RETRY_TIMEOUT = 250;
private final ConfigManager configManager;
@@ -909,9 +917,7 @@ public class ProcedureManager {
long startTimeForCurrentProcedure = System.currentTimeMillis();
while (executor.isRunning()
&& !executor.isFinished(procedureId)
- && TimeUnit.MILLISECONDS.toSeconds(
- System.currentTimeMillis() - startTimeForCurrentProcedure)
- < PROCEDURE_WAIT_TIME_OUT) {
+ && System.currentTimeMillis() - startTimeForCurrentProcedure < PROCEDURE_WAIT_TIME_OUT) {
sleepWithoutInterrupt(PROCEDURE_WAIT_RETRY_TIMEOUT);
}
Procedure<ConfigNodeProcedureEnv> finishedProcedure =
diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/cache/LoadCache.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/cache/LoadCache.java
index c0f9312b77e..8695ae9071e 100644
--- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/cache/LoadCache.java
+++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/cache/LoadCache.java
@@ -27,10 +27,10 @@ import org.apache.iotdb.common.rpc.thrift.TRegionReplicaSet;
import org.apache.iotdb.commons.cluster.NodeStatus;
import org.apache.iotdb.commons.cluster.NodeType;
import org.apache.iotdb.commons.cluster.RegionStatus;
-import org.apache.iotdb.commons.conf.CommonDescriptor;
import org.apache.iotdb.confignode.conf.ConfigNodeConfig;
import org.apache.iotdb.confignode.conf.ConfigNodeDescriptor;
import org.apache.iotdb.confignode.manager.IManager;
+import org.apache.iotdb.confignode.manager.ProcedureManager;
import org.apache.iotdb.confignode.manager.load.cache.node.BaseNodeCache;
import org.apache.iotdb.confignode.manager.load.cache.node.ConfigNodeHeartbeatCache;
import org.apache.iotdb.confignode.manager.load.cache.node.DataNodeHeartbeatCache;
@@ -67,9 +67,9 @@ public class LoadCache {
private static final ConfigNodeConfig CONF = ConfigNodeDescriptor.getInstance().getConf();
private static final long HEARTBEAT_INTERVAL = CONF.getHeartbeatIntervalInMs();
private static final long LEADER_ELECTION_WAITING_TIMEOUT =
- Math.min(
- 2 * CONF.getSchemaRegionRatisRpcLeaderElectionTimeoutMaxMs(),
- CommonDescriptor.getInstance().getConfig().getConnectionTimeoutInMS());
+ Math.max(
+ ProcedureManager.PROCEDURE_WAIT_TIME_OUT - TimeUnit.SECONDS.toMillis(2),
+ TimeUnit.SECONDS.toMillis(10));
// Map<NodeId, INodeCache>
private final Map<Integer, BaseNodeCache> nodeCacheMap;