You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ne...@apache.org on 2021/06/16 06:22:38 UTC

[iotdb] branch master updated: [Cluster]No need to shake hands with itself when one node restart (#3404)

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

neuyilan 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 a5e07e2  [Cluster]No need to shake hands with itself when one node restart  (#3404)
a5e07e2 is described below

commit a5e07e288e83beff6571efe94bea5ee9a675ee87
Author: Houliang Qi <ne...@163.com>
AuthorDate: Wed Jun 16 14:22:08 2021 +0800

    [Cluster]No need to shake hands with itself when one node restart  (#3404)
---
 .../org/apache/iotdb/cluster/server/member/MetaGroupMember.java     | 4 ++++
 .../src/main/java/org/apache/iotdb/cluster/utils/ClusterUtils.java  | 6 ++++++
 2 files changed, 10 insertions(+)

diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java
index 1d75920..0224c29 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java
@@ -786,6 +786,10 @@ public class MetaGroupMember extends RaftMember {
   /** When the node restarts, it sends handshakes to all other nodes so they may know it is back. */
   private void sendHandshake() {
     for (Node node : allNodes) {
+      if (ClusterUtils.nodeEqual(node, thisNode)) {
+        // no need to shake hands with yourself
+        continue;
+      }
       try {
         if (ClusterDescriptor.getInstance().getConfig().isUseAsyncServer()) {
           AsyncMetaClient asyncClient = (AsyncMetaClient) getAsyncClient(node);
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/utils/ClusterUtils.java b/cluster/src/main/java/org/apache/iotdb/cluster/utils/ClusterUtils.java
index 4c64587..446382b 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/utils/ClusterUtils.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/utils/ClusterUtils.java
@@ -353,4 +353,10 @@ public class ClusterUtils {
     }
     return partitionGroup;
   }
+
+  public static boolean nodeEqual(Node node1, Node node2) {
+    ClusterNode clusterNode1 = new ClusterNode(node1);
+    ClusterNode clusterNode2 = new ClusterNode(node2);
+    return clusterNode1.equals(clusterNode2);
+  }
 }