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 e437ef3d056 [remove datanode] Log the node information when submitting 
RegionMigrateProcedure (#14051)
e437ef3d056 is described below

commit e437ef3d05648a4d356bdb28544a14eda1a64f83
Author: Xiangpeng Hu <[email protected]>
AuthorDate: Mon Nov 11 21:58:23 2024 +0800

    [remove datanode] Log the node information when submitting 
RegionMigrateProcedure (#14051)
---
 .../load/cache/node/DataNodeHeartbeatCache.java    |  9 +++++++
 .../procedure/env/RemoveDataNodeHandler.java       | 28 ++++++++++++++++++----
 .../impl/node/RemoveDataNodesProcedure.java        |  8 ++++++-
 .../procedure/impl/region/RegionMigrationPlan.java | 12 ++++++++++
 .../apache/iotdb/commons/conf/CommonConfig.java    |  8 -------
 5 files changed, 51 insertions(+), 14 deletions(-)

diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/cache/node/DataNodeHeartbeatCache.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/cache/node/DataNodeHeartbeatCache.java
index cf550931c40..36bed0ecc67 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/cache/node/DataNodeHeartbeatCache.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/load/cache/node/DataNodeHeartbeatCache.java
@@ -22,11 +22,16 @@ package org.apache.iotdb.confignode.manager.load.cache.node;
 import org.apache.iotdb.common.rpc.thrift.TLoadSample;
 import org.apache.iotdb.commons.cluster.NodeStatus;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import java.util.concurrent.atomic.AtomicReference;
 
 /** Heartbeat cache for cluster DataNodes. */
 public class DataNodeHeartbeatCache extends BaseNodeCache {
 
+  private static final Logger LOGGER = 
LoggerFactory.getLogger(DataNodeHeartbeatCache.class);
+
   // TODO: The load sample may be moved into NodeStatistics in the future
   private final AtomicReference<TLoadSample> latestLoadSample;
 
@@ -74,6 +79,10 @@ public class DataNodeHeartbeatCache extends BaseNodeCache {
     long loadScore = NodeStatus.isNormalStatus(status) ? 0 : Long.MAX_VALUE;
 
     currentStatistics.set(new NodeStatistics(currentNanoTime, status, 
statusReason, loadScore));
+
+    if (forceUpdate) {
+      LOGGER.info("Force update NodeCache: status={}, currentNanoTime={}", 
status, currentNanoTime);
+    }
   }
 
   public double getFreeDiskSpace() {
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/env/RemoveDataNodeHandler.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/env/RemoveDataNodeHandler.java
index 44371956981..19e0b8f422f 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/env/RemoveDataNodeHandler.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/env/RemoveDataNodeHandler.java
@@ -130,23 +130,40 @@ public class RemoveDataNodeHandler {
 
     for (Map.Entry<Integer, TSStatus> entry :
         changeDataNodeStatusContext.getResponseMap().entrySet()) {
-      long currentTime = System.nanoTime();
-
       int dataNodeId = entry.getKey();
       NodeStatus nodeStatus = nodeStatusMap.get(dataNodeId);
       RegionStatus regionStatus = RegionStatus.valueOf(nodeStatus.getStatus());
+
+      if (!isSucceed(entry.getValue())) {
+        LOGGER.error(
+            "{}, Failed to change DataNode status, dataNodeId={}, 
nodeStatus={}",
+            REMOVE_DATANODE_PROCESS,
+            dataNodeId,
+            nodeStatus);
+        continue;
+      }
+
       // Force updating NodeStatus
+      long currentTime = System.nanoTime();
       configManager
           .getLoadManager()
           .forceUpdateNodeCache(
               NodeType.DataNode, dataNodeId, new 
NodeHeartbeatSample(currentTime, nodeStatus));
 
+      LOGGER.info(
+          "{}, Force update NodeCache: dataNodeId={}, nodeStatus={}, 
currentTime={}",
+          REMOVE_DATANODE_PROCESS,
+          dataNodeId,
+          nodeStatus,
+          currentTime);
+
       Map<TConsensusGroupId, Map<Integer, RegionHeartbeatSample>> 
heartbeatSampleMap =
           new TreeMap<>();
+
       // Force update RegionStatus
       configManager
           .getPartitionManager()
-          .getAllReplicaSets(entry.getKey())
+          .getAllReplicaSets(dataNodeId)
           .forEach(
               replicaSet ->
                   heartbeatSampleMap.put(
@@ -276,14 +293,15 @@ public class RemoveDataNodeHandler {
         .sendAsyncRequestWithRetry(stopDataNodesContext);
 
     for (Map.Entry<Integer, TSStatus> entry : 
stopDataNodesContext.getResponseMap().entrySet()) {
-      configManager.getLoadManager().removeNodeCache(entry.getKey());
+      int dataNodeId = entry.getKey();
+      configManager.getLoadManager().removeNodeCache(dataNodeId);
       if (!isSucceed(entry.getValue())) {
         LOGGER.error(
             "{}, Stop Data Node meets error, error datanode: {}",
             REMOVE_DATANODE_PROCESS,
             entry.getValue());
       } else {
-        LOGGER.info("{}, Stop Data Node {} success.", REMOVE_DATANODE_PROCESS, 
entry.getKey());
+        LOGGER.info("{}, Stop Data Node {} success.", REMOVE_DATANODE_PROCESS, 
dataNodeId);
       }
     }
   }
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 aa27a0276f7..094e330eea9 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
@@ -154,7 +154,13 @@ public class RemoveDataNodesProcedure extends 
AbstractNodeProcedure<RemoveDataNo
                     coordinatorForAddPeer,
                     coordinatorForRemovePeer);
             addChildProcedure(regionMigrateProcedure);
-            LOG.info("Submit child procedure {} for regionId {}", 
regionMigrateProcedure, regionId);
+            LOG.info(
+                "Submit RegionMigrateProcedure for regionId {}: 
removedDataNode={}, destDataNode={}, coordinatorForAddPeer={}, 
coordinatorForRemovePeer={}",
+                regionId,
+                removedDataNode,
+                destDataNode,
+                coordinatorForAddPeer,
+                coordinatorForRemovePeer);
           } else {
             LOG.error(
                 "{}, Cannot find target DataNode to migrate the region: {}",
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/RegionMigrationPlan.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/RegionMigrationPlan.java
index c9c0ea018f1..9e90a00e84a 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/RegionMigrationPlan.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/region/RegionMigrationPlan.java
@@ -94,4 +94,16 @@ public class RegionMigrationPlan {
   public int hashCode() {
     return Objects.hash(regionId, fromDataNode, toDataNode);
   }
+
+  @Override
+  public String toString() {
+    return "RegionMigrationPlan{"
+        + "regionId="
+        + regionId
+        + ", fromDataNode="
+        + fromDataNode
+        + ", toDataNode="
+        + toDataNode
+        + '}';
+  }
 }
diff --git 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
index 45be713bb57..59e20daae55 100644
--- 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
+++ 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
@@ -567,14 +567,6 @@ public class CommonConfig {
     this.statusReason = statusReason;
   }
 
-  public NodeStatus getStatus() {
-    return status;
-  }
-
-  public void setStatus(NodeStatus status) {
-    this.status = status;
-  }
-
   public TEndPoint getTargetAINodeEndPoint() {
     return targetAINodeEndPoint;
   }

Reply via email to