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

Reply via email to