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(