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 7c580c652a01067b446655a697d65940f300402c
Author: BUAAserein <[email protected]>
AuthorDate: Thu Aug 17 16:54:28 2023 +0800

    refactor deleteLocalPeer
---
 .../thrift/ConfigNodeRPCServiceProcessor.java      |  8 ++++----
 .../consensus/simple/SimpleConsensusTest.java      | 14 ++++++-------
 .../impl/DataNodeInternalRPCServiceImpl.java       | 24 +++++++++++-----------
 .../iotdb/db/service/RegionMigrateService.java     | 24 ++++++++++------------
 4 files changed, 34 insertions(+), 36 deletions(-)

diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
index 4d352cf59db..0993272f8a6 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
@@ -162,7 +162,7 @@ import 
org.apache.iotdb.confignode.rpc.thrift.TUnsetSchemaTemplateReq;
 import org.apache.iotdb.confignode.rpc.thrift.TUpdateModelInfoReq;
 import org.apache.iotdb.confignode.rpc.thrift.TUpdateModelStateReq;
 import org.apache.iotdb.confignode.service.ConfigNode;
-import org.apache.iotdb.consensus.common.response.ConsensusGenericResponse;
+import org.apache.iotdb.consensus.exception.ConsensusException;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.queryengine.plan.statement.AuthorType;
 import org.apache.iotdb.rpc.RpcUtils;
@@ -624,9 +624,9 @@ public class ConfigNodeRPCServiceProcessor implements 
IConfigNodeRPCService.Ifac
     }
 
     ConsensusGroupId groupId = 
configManager.getConsensusManager().getConsensusGroupId();
-    ConsensusGenericResponse resp =
-        
configManager.getConsensusManager().getConsensusImpl().deleteLocalPeer(groupId);
-    if (!resp.isSuccess()) {
+    try {
+      
configManager.getConsensusManager().getConsensusImpl().deleteLocalPeer(groupId);
+    } catch (ConsensusException e) {
       return new TSStatus(TSStatusCode.REMOVE_CONFIGNODE_ERROR.getStatusCode())
           .setMessage(
               "remove ConsensusGroup failed because internal failure. See 
other logs for more details");
diff --git 
a/iotdb-core/consensus/src/test/java/org/apache/iotdb/consensus/simple/SimpleConsensusTest.java
 
b/iotdb-core/consensus/src/test/java/org/apache/iotdb/consensus/simple/SimpleConsensusTest.java
index f4d6eb58296..48f0d240ddb 100644
--- 
a/iotdb-core/consensus/src/test/java/org/apache/iotdb/consensus/simple/SimpleConsensusTest.java
+++ 
b/iotdb-core/consensus/src/test/java/org/apache/iotdb/consensus/simple/SimpleConsensusTest.java
@@ -206,10 +206,12 @@ public class SimpleConsensusTest {
   }
 
   @Test
-  public void removeConsensusGroup() {
-    ConsensusGenericResponse response1 = 
consensusImpl.deleteLocalPeer(dataRegionId);
-    assertFalse(response1.isSuccess());
-    assertTrue(response1.getException() instanceof 
ConsensusGroupNotExistException);
+  public void removeConsensusGroup() throws ConsensusException {
+    try {
+      consensusImpl.deleteLocalPeer(dataRegionId);
+    } catch (ConsensusException e) {
+      assertTrue(e instanceof ConsensusGroupNotExistException);
+    }
 
     try {
       consensusImpl.createLocalPeer(
@@ -219,9 +221,7 @@ public class SimpleConsensusTest {
       throw new RuntimeException(e);
     }
 
-    ConsensusGenericResponse response3 = 
consensusImpl.deleteLocalPeer(dataRegionId);
-    assertTrue(response3.isSuccess());
-    assertNull(response3.getException());
+    consensusImpl.deleteLocalPeer(dataRegionId);
   }
 
   @Test
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/DataNodeInternalRPCServiceImpl.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/DataNodeInternalRPCServiceImpl.java
index 4866d77bcfc..3dce5d6f5fa 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/DataNodeInternalRPCServiceImpl.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/DataNodeInternalRPCServiceImpl.java
@@ -1412,21 +1412,21 @@ public class DataNodeInternalRPCServiceImpl implements 
IDataNodeRPCService.Iface
     ConsensusGroupId consensusGroupId =
         
ConsensusGroupId.Factory.createFromTConsensusGroupId(tconsensusGroupId);
     if (consensusGroupId instanceof DataRegionId) {
-      ConsensusGenericResponse response =
-          
DataRegionConsensusImpl.getInstance().deleteLocalPeer(consensusGroupId);
-      if (!response.isSuccess()
-          && !(response.getException() instanceof 
PeerNotInConsensusGroupException)) {
-        return RpcUtils.getStatus(
-            TSStatusCode.DELETE_REGION_ERROR, 
response.getException().getMessage());
+      try {
+        
DataRegionConsensusImpl.getInstance().deleteLocalPeer(consensusGroupId);
+      } catch (ConsensusException e) {
+        if (!(e instanceof PeerNotInConsensusGroupException)) {
+          return RpcUtils.getStatus(TSStatusCode.DELETE_REGION_ERROR, 
e.getMessage());
+        }
       }
       return regionManager.deleteDataRegion((DataRegionId) consensusGroupId);
     } else {
-      ConsensusGenericResponse response =
-          
SchemaRegionConsensusImpl.getInstance().deleteLocalPeer(consensusGroupId);
-      if (!response.isSuccess()
-          && !(response.getException() instanceof 
PeerNotInConsensusGroupException)) {
-        return RpcUtils.getStatus(
-            TSStatusCode.DELETE_REGION_ERROR, 
response.getException().getMessage());
+      try {
+        
SchemaRegionConsensusImpl.getInstance().deleteLocalPeer(consensusGroupId);
+      } catch (ConsensusException e) {
+        if (!(e instanceof PeerNotInConsensusGroupException)) {
+          return RpcUtils.getStatus(TSStatusCode.DELETE_REGION_ERROR, 
e.getMessage());
+        }
       }
       return regionManager.deleteSchemaRegion((SchemaRegionId) 
consensusGroupId);
     }
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 b1829b810f4..6a8f7958cae 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
@@ -35,6 +35,7 @@ import org.apache.iotdb.commons.service.ServiceType;
 import org.apache.iotdb.confignode.rpc.thrift.TRegionMigrateResultReportReq;
 import org.apache.iotdb.consensus.common.Peer;
 import org.apache.iotdb.consensus.common.response.ConsensusGenericResponse;
+import org.apache.iotdb.consensus.exception.ConsensusException;
 import org.apache.iotdb.db.consensus.DataRegionConsensusImpl;
 import org.apache.iotdb.db.consensus.SchemaRegionConsensusImpl;
 import org.apache.iotdb.db.protocol.client.ConfigNodeClient;
@@ -406,29 +407,26 @@ public class RegionMigrateService implements IService {
           tRegionId);
       ConsensusGroupId regionId = 
ConsensusGroupId.Factory.createFromTConsensusGroupId(tRegionId);
       TSStatus status = new 
TSStatus(TSStatusCode.SUCCESS_STATUS.getStatusCode());
-      ConsensusGenericResponse resp;
       try {
         if (regionId instanceof DataRegionId) {
-          resp = 
DataRegionConsensusImpl.getInstance().deleteLocalPeer(regionId);
+          DataRegionConsensusImpl.getInstance().deleteLocalPeer(regionId);
         } else {
-          resp = 
SchemaRegionConsensusImpl.getInstance().deleteLocalPeer(regionId);
+          SchemaRegionConsensusImpl.getInstance().deleteLocalPeer(regionId);
         }
-      } catch (Throwable e) {
-        taskLogger.error("{}, deletePeer error, regionId: {}", 
REGION_MIGRATE_PROCESS, regionId, e);
-        status.setCode(TSStatusCode.MIGRATE_REGION_ERROR.getStatusCode());
-        status.setMessage(
-            "deletePeer for region: " + regionId + " error. exception: " + 
e.getMessage());
-        return status;
-      }
-      if (!resp.isSuccess()) {
+      } catch (ConsensusException e) {
         String errorMsg =
             String.format(
-                "deletePeer error, regionId: %s, errorMessage: %s",
-                regionId, resp.getException().getMessage());
+                "deletePeer error, regionId: %s, errorMessage: %s", regionId, 
e.getMessage());
         taskLogger.error(errorMsg);
         status.setCode(TSStatusCode.MIGRATE_REGION_ERROR.getStatusCode());
         status.setMessage(errorMsg);
         return status;
+      } catch (Throwable e) {
+        taskLogger.error("{}, deletePeer error, regionId: {}", 
REGION_MIGRATE_PROCESS, regionId, e);
+        status.setCode(TSStatusCode.MIGRATE_REGION_ERROR.getStatusCode());
+        status.setMessage(
+            "deletePeer for region: " + regionId + " error. exception: " + 
e.getMessage());
+        return status;
       }
       taskLogger.info(
           "{}, Succeed to deletePeer {} from consensus group", 
REGION_MIGRATE_PROCESS, regionId);

Reply via email to