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

tanxinyu pushed a commit to branch consensus_module_refactor
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit bcfb5287f6f4a24125db9e132bc697115ffbcba3
Author: BUAAserein <[email protected]>
AuthorDate: Thu Aug 17 17:44:46 2023 +0800

    refactor removeRemotePeer
---
 .../manager/consensus/ConsensusManager.java        | 19 +++++++++++--------
 .../iotdb/db/service/RegionMigrateService.java     | 22 ++++++++++------------
 2 files changed, 21 insertions(+), 20 deletions(-)

diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/consensus/ConsensusManager.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/consensus/ConsensusManager.java
index b8869263d83..b76ab1743bd 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/consensus/ConsensusManager.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/consensus/ConsensusManager.java
@@ -289,14 +289,17 @@ public class ConsensusManager {
    *     ConfigRegion
    */
   public boolean removeConfigNodePeer(TConfigNodeLocation configNodeLocation) {
-    return consensusImpl
-        .removeRemotePeer(
-            DEFAULT_CONSENSUS_GROUP_ID,
-            new Peer(
-                DEFAULT_CONSENSUS_GROUP_ID,
-                configNodeLocation.getConfigNodeId(),
-                configNodeLocation.getConsensusEndPoint()))
-        .isSuccess();
+    try {
+      consensusImpl.removeRemotePeer(
+          DEFAULT_CONSENSUS_GROUP_ID,
+          new Peer(
+              DEFAULT_CONSENSUS_GROUP_ID,
+              configNodeLocation.getConfigNodeId(),
+              configNodeLocation.getConsensusEndPoint()));
+      return true;
+    } catch (ConsensusException e) {
+      return false;
+    }
   }
 
   /** Transmit PhysicalPlan to confignode.consensus.statemachine */
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/RegionMigrateService.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/RegionMigrateService.java
index f4360a8cd02..e0fd46ba4fe 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/RegionMigrateService.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/RegionMigrateService.java
@@ -309,9 +309,11 @@ public class RegionMigrateService implements IService {
           if (!removePeerSucceed) {
             Thread.sleep(SLEEP_MILLIS);
           }
-          resp =
-              removeRegionPeer(
-                  regionId, new Peer(regionId, destDataNode.getDataNodeId(), 
destEndPoint));
+          removeRegionPeer(
+              regionId, new Peer(regionId, destDataNode.getDataNodeId(), 
destEndPoint));
+          if (removePeerSucceed) {
+            break;
+          }
         } catch (Throwable e) {
           removePeerSucceed = false;
           taskLogger.error(
@@ -322,12 +324,9 @@ public class RegionMigrateService implements IService {
               i,
               e);
         }
-        if (removePeerSucceed && resp != null && resp.isSuccess()) {
-          break;
-        }
       }
 
-      if (!removePeerSucceed || resp == null || !resp.isSuccess()) {
+      if (!removePeerSucceed) {
         String errorMsg =
             String.format(
                 "%s, RemovePeer for region error after max retry times, 
peerId: %s, regionId: %s, resp: %s",
@@ -348,14 +347,13 @@ public class RegionMigrateService implements IService {
       return status;
     }
 
-    private ConsensusGenericResponse removeRegionPeer(ConsensusGroupId 
regionId, Peer oldPeer) {
-      ConsensusGenericResponse resp;
+    private void removeRegionPeer(ConsensusGroupId regionId, Peer oldPeer)
+        throws ConsensusException {
       if (regionId instanceof DataRegionId) {
-        resp = 
DataRegionConsensusImpl.getInstance().removeRemotePeer(regionId, oldPeer);
+        DataRegionConsensusImpl.getInstance().removeRemotePeer(regionId, 
oldPeer);
       } else {
-        resp = 
SchemaRegionConsensusImpl.getInstance().removeRemotePeer(regionId, oldPeer);
+        SchemaRegionConsensusImpl.getInstance().removeRemotePeer(regionId, 
oldPeer);
       }
-      return resp;
     }
   }
 

Reply via email to