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