Skip to content

Commit d101d76

Browse files
[remove datanode] Not re-submit region migration procedure when leader change or reboot apache#14277
1 parent 73476e0 commit d101d76

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/node/RemoveDataNodesProcedure.java

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,10 @@ protected Flow executeFromState(ConfigNodeProcedureEnv env, RemoveDataNodeState
133133
setNextState(RemoveDataNodeState.SUBMIT_REGION_MIGRATE);
134134
break;
135135
case SUBMIT_REGION_MIGRATE:
136-
submitChildRegionMigrate(env);
136+
// Avoid re-submit region-migration when leader change or ConfigNode reboot
137+
if (!isStateDeserialized()) {
138+
submitChildRegionMigrate(env);
139+
}
137140
setNextState(RemoveDataNodeState.STOP_DATA_NODE);
138141
break;
139142
case STOP_DATA_NODE:
@@ -183,10 +186,10 @@ private void submitChildRegionMigrate(ConfigNodeProcedureEnv env) {
183186
LOG.info(
184187
"Submit RegionMigrateProcedure for regionId {}: removedDataNode={}, destDataNode={}, coordinatorForAddPeer={}, coordinatorForRemovePeer={}",
185188
regionId,
186-
removedDataNode,
187-
destDataNode,
188-
coordinatorForAddPeer,
189-
coordinatorForRemovePeer);
189+
simplifyTDataNodeLocation(removedDataNode),
190+
simplifyTDataNodeLocation(destDataNode),
191+
simplifyTDataNodeLocation(coordinatorForAddPeer),
192+
simplifyTDataNodeLocation(coordinatorForRemovePeer));
190193
} else {
191194
LOG.error(
192195
"{}, Cannot find target DataNode to migrate the region: {}",
@@ -197,6 +200,12 @@ private void submitChildRegionMigrate(ConfigNodeProcedureEnv env) {
197200
});
198201
}
199202

203+
private String simplifyTDataNodeLocation(TDataNodeLocation dataNodeLocation) {
204+
return String.format(
205+
"DataNode(id:%d, address:%s)",
206+
dataNodeLocation.getDataNodeId(), dataNodeLocation.getInternalEndPoint().getIp());
207+
}
208+
200209
private void checkRegionStatusAndStopDataNode(ConfigNodeProcedureEnv env) {
201210
List<TRegionReplicaSet> replicaSets =
202211
env.getConfigManager().getPartitionManager().getAllReplicaSets();

0 commit comments

Comments
 (0)