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; } }
