pick last node to remove Signed-off-by: OneSizeFitQuorum <tanxinyu@apache.org>
diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/env/DataNodeRemoveHandler.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/env/DataNodeRemoveHandler.java index d4cde05..26ca8f1 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/env/DataNodeRemoveHandler.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/env/DataNodeRemoveHandler.java
@@ -48,6 +48,7 @@ import java.util.ArrayList; import java.util.Collections; +import java.util.Comparator; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @@ -58,6 +59,7 @@ import static org.apache.iotdb.consensus.ConsensusFactory.SIMPLE_CONSENSUS; public class DataNodeRemoveHandler { + private static final Logger LOGGER = LoggerFactory.getLogger(DataNodeRemoveHandler.class); private static final ConfigNodeConfig CONF = ConfigNodeDescriptor.getInstance().getConf(); @@ -405,7 +407,7 @@ return configManager.getNodeManager().filterDataNodeThroughStatus(NodeStatus.Running).stream() .map(TDataNodeConfiguration::getLocation) .filter(e -> !regionReplicaNodes.contains(e)) - .findAny(); + .max(Comparator.comparingInt(TDataNodeLocation::getDataNodeId)); } private boolean isSucceed(TSStatus status) {