This is an automated email from the ASF dual-hosted git repository.
tanxinyu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new d101d76879c [remove datanode] Not re-submit region migration procedure
when leader change or reboot #14277
d101d76879c is described below
commit d101d76879c8d4ddece6a7ac506ea8d9171dcd8b
Author: Li Yu Heng <[email protected]>
AuthorDate: Mon Dec 2 19:49:32 2024 +0800
[remove datanode] Not re-submit region migration procedure when leader
change or reboot #14277
---
.../procedure/impl/node/RemoveDataNodesProcedure.java | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/node/RemoveDataNodesProcedure.java
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/node/RemoveDataNodesProcedure.java
index 027a6c04a01..1340d968a7e 100644
---
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/node/RemoveDataNodesProcedure.java
+++
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/node/RemoveDataNodesProcedure.java
@@ -133,7 +133,10 @@ public class RemoveDataNodesProcedure extends
AbstractNodeProcedure<RemoveDataNo
setNextState(RemoveDataNodeState.SUBMIT_REGION_MIGRATE);
break;
case SUBMIT_REGION_MIGRATE:
- submitChildRegionMigrate(env);
+ // Avoid re-submit region-migration when leader change or ConfigNode
reboot
+ if (!isStateDeserialized()) {
+ submitChildRegionMigrate(env);
+ }
setNextState(RemoveDataNodeState.STOP_DATA_NODE);
break;
case STOP_DATA_NODE:
@@ -183,10 +186,10 @@ public class RemoveDataNodesProcedure extends
AbstractNodeProcedure<RemoveDataNo
LOG.info(
"Submit RegionMigrateProcedure for regionId {}:
removedDataNode={}, destDataNode={}, coordinatorForAddPeer={},
coordinatorForRemovePeer={}",
regionId,
- removedDataNode,
- destDataNode,
- coordinatorForAddPeer,
- coordinatorForRemovePeer);
+ simplifyTDataNodeLocation(removedDataNode),
+ simplifyTDataNodeLocation(destDataNode),
+ simplifyTDataNodeLocation(coordinatorForAddPeer),
+ simplifyTDataNodeLocation(coordinatorForRemovePeer));
} else {
LOG.error(
"{}, Cannot find target DataNode to migrate the region: {}",
@@ -197,6 +200,12 @@ public class RemoveDataNodesProcedure extends
AbstractNodeProcedure<RemoveDataNo
});
}
+ private String simplifyTDataNodeLocation(TDataNodeLocation dataNodeLocation)
{
+ return String.format(
+ "DataNode(id:%d, address:%s)",
+ dataNodeLocation.getDataNodeId(),
dataNodeLocation.getInternalEndPoint().getIp());
+ }
+
private void checkRegionStatusAndStopDataNode(ConfigNodeProcedureEnv env) {
List<TRegionReplicaSet> replicaSets =
env.getConfigManager().getPartitionManager().getAllReplicaSets();