This is an automated email from the ASF dual-hosted git repository.

jackietien pushed a commit to branch rc/2.0.5
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit f22fa9041d9fb8e2ef38300ce663b66a8a0e53a0
Author: Zhenyu Luo <[email protected]>
AuthorDate: Tue Jul 22 14:08:32 2025 +0800

    Pipe: Reduce IoTDBAirGapConnector Handshake times (#15990)
    
    (cherry picked from commit 75d7f27fbdfdeb3e1d0c88395e01d93eb0a4e7da)
---
 .../commons/pipe/connector/protocol/IoTDBAirGapConnector.java | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/connector/protocol/IoTDBAirGapConnector.java
 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/connector/protocol/IoTDBAirGapConnector.java
index 7c396db352b..9d345108022 100644
--- 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/connector/protocol/IoTDBAirGapConnector.java
+++ 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/pipe/connector/protocol/IoTDBAirGapConnector.java
@@ -89,6 +89,7 @@ public abstract class IoTDBAirGapConnector extends 
IoTDBConnector {
 
   protected final List<AirGapSocket> sockets = new ArrayList<>();
   protected final List<Boolean> isSocketAlive = new ArrayList<>();
+  private long lastCheckClientStatusTimestamp = 0L;
 
   private LoadBalancer loadBalancer;
   private long currentClientIndex = 0;
@@ -156,6 +157,15 @@ public abstract class IoTDBAirGapConnector extends 
IoTDBConnector {
   @Override
   @SuppressWarnings("java:S2095")
   public void handshake() throws Exception {
+    if (System.currentTimeMillis() - lastCheckClientStatusTimestamp
+        < 
PipeConfig.getInstance().getPipeCheckAllSyncClientLiveTimeIntervalMs()) {
+      for (int i = 0; i < sockets.size(); i++) {
+        if (Boolean.TRUE.equals(isSocketAlive.get(i))) {
+          return;
+        }
+      }
+    }
+
     for (int i = 0; i < sockets.size(); i++) {
       if (Boolean.TRUE.equals(isSocketAlive.get(i))) {
         continue;
@@ -212,6 +222,7 @@ public abstract class IoTDBAirGapConnector extends 
IoTDBConnector {
 
     for (int i = 0; i < sockets.size(); i++) {
       if (Boolean.TRUE.equals(isSocketAlive.get(i))) {
+        lastCheckClientStatusTimestamp = System.currentTimeMillis();
         return;
       }
     }

Reply via email to