Pipe: Disabled the restart logic by default (#15663)
* Added switch
* Refactor
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/task/PipeDataNodeTaskAgent.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/task/PipeDataNodeTaskAgent.java
index 8fd099b..dee6b76 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/task/PipeDataNodeTaskAgent.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/agent/task/PipeDataNodeTaskAgent.java
@@ -140,8 +140,9 @@
}
private void restartPipeToReloadResourceIfNeeded(final PipeMeta pipeMeta) {
- if (System.currentTimeMillis() - pipeMeta.getStaticMeta().getCreationTime()
- < PipeConfig.getInstance().getPipeStuckRestartMinIntervalMs()) {
+ if (!PipeConfig.getInstance().isPipeStuckRestartEnabled()
+ || System.currentTimeMillis() - pipeMeta.getStaticMeta().getCreationTime()
+ < PipeConfig.getInstance().getPipeStuckRestartMinIntervalMs()) {
return;
}
@@ -562,6 +563,9 @@
///////////////////////// Restart Logic /////////////////////////
public void restartAllStuckPipes() {
+ if (!PipeConfig.getInstance().isPipeStuckRestartEnabled()) {
+ return;
+ }
final List<String> removedPipeName = removeOutdatedPipeInfoFromLastRestartTimeMap();
if (!removedPipeName.isEmpty()) {
final long currentTime = System.currentTimeMillis();
diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
index 3004ace..4172a7a 100644
--- a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
+++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
@@ -272,6 +272,7 @@
private int pipeMaxAllowedPinnedMemTableCount = Integer.MAX_VALUE; // per data region
private long pipeMaxAllowedLinkedTsFileCount = Long.MAX_VALUE; // Deprecated
private float pipeMaxAllowedLinkedDeletedTsFileDiskUsagePercentage = 0.1F;
+ private boolean pipeStuckRestartEnabled = false;
private long pipeStuckRestartIntervalSeconds = 120;
private long pipeStuckRestartMinIntervalMs = 5 * 60 * 1000L; // 5 minutes
private boolean pipeEpochKeepTsFileAfterStuckRestartEnabled = false;
@@ -1465,6 +1466,18 @@
pipeMaxAllowedLinkedDeletedTsFileDiskUsagePercentage);
}
+ public boolean isPipeStuckRestartEnabled() {
+ return pipeStuckRestartEnabled;
+ }
+
+ public void setPipeStuckRestartEnabled(boolean pipeStuckRestartEnabled) {
+ if (this.pipeStuckRestartEnabled == pipeStuckRestartEnabled) {
+ return;
+ }
+ this.pipeStuckRestartEnabled = pipeStuckRestartEnabled;
+ logger.info("pipeStuckRestartEnabled is set to {}", pipeStuckRestartEnabled);
+ }
+
public long getPipeStuckRestartIntervalSeconds() {
return pipeStuckRestartIntervalSeconds;
}
diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/config/PipeConfig.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/config/PipeConfig.java
index b099e71..6ded199 100644
--- a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/config/PipeConfig.java
+++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/config/PipeConfig.java
@@ -323,6 +323,10 @@
return COMMON_CONFIG.getPipeMaxAllowedLinkedDeletedTsFileDiskUsagePercentage();
}
+ public boolean isPipeStuckRestartEnabled() {
+ return COMMON_CONFIG.isPipeStuckRestartEnabled();
+ }
+
public long getPipeStuckRestartIntervalSeconds() {
return COMMON_CONFIG.getPipeStuckRestartIntervalSeconds();
}
@@ -592,6 +596,7 @@
LOGGER.info(
"PipeMaxAllowedLinkedDeletedTsFileDiskUsagePercentage: {}",
getPipeMaxAllowedLinkedDeletedTsFileDiskUsagePercentage());
+ LOGGER.info("PipeStuckRestartEnabled: {}", isPipeStuckRestartEnabled());
LOGGER.info("PipeStuckRestartIntervalSeconds: {}", getPipeStuckRestartIntervalSeconds());
LOGGER.info("PipeStuckRestartMinIntervalMs: {}", getPipeStuckRestartMinIntervalMs());
LOGGER.info(
diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/config/PipeDescriptor.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/config/PipeDescriptor.java
index cc9850e..c8920aa 100644
--- a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/config/PipeDescriptor.java
+++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/config/PipeDescriptor.java
@@ -438,6 +438,10 @@
properties.getProperty(
"pipe_max_allowed_linked_deleted_tsfile_disk_usage_percentage",
String.valueOf(config.getPipeMaxAllowedLinkedDeletedTsFileDiskUsagePercentage()))));
+ config.setPipeStuckRestartEnabled(
+ Boolean.parseBoolean(
+ properties.getProperty(
+ "pipe_stuck_restart_enabled", String.valueOf(config.isPipeStuckRestartEnabled()))));
config.setPipeStuckRestartIntervalSeconds(
Long.parseLong(
properties.getProperty(