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