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 0c7fef076d8 [IOTDB-6285] Alter Procedure timeout (#11817)
0c7fef076d8 is described below
commit 0c7fef076d824197b47920778c8820ae98be723b
Author: Yongzao <[email protected]>
AuthorDate: Tue Jan 2 14:55:31 2024 +0800
[IOTDB-6285] Alter Procedure timeout (#11817)
---
.../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;