Beyyes commented on code in PR #8641:
URL: https://github.com/apache/iotdb/pull/8641#discussion_r1058274832
##########
confignode/src/main/java/org/apache/iotdb/confignode/manager/ProcedureManager.java:
##########
@@ -414,6 +413,35 @@ public TSStatus migrateRegion(TMigrateRegionReq
migrateRegionReq) {
+ migrateRegionReq.getRegionId());
return status;
}
+ // Here we only check Running DataNode to implement migration, because
removing nodes may not
+ // exist when add peer is performing
+ Set<Integer> aliveDataNodes =
+
configManager.getNodeManager().filterDataNodeThroughStatus(NodeStatus.Running).stream()
+ .map(TDataNodeConfiguration::getLocation)
+ .map(TDataNodeLocation::getDataNodeId)
+ .collect(Collectors.toSet());
+ DataNodesInRegion.retainAll(aliveDataNodes);
+ if (DataNodesInRegion.isEmpty()) {
+ LOGGER.warn(
+ "Submit RegionMigrateProcedure failed, because all of the DataNodes
in Region Group {} is unavailable.",
+ migrateRegionReq.getRegionId());
+ TSStatus status = new
TSStatus(TSStatusCode.MIGRATE_REGION_ERROR.getStatusCode());
+ status.setMessage(
+ "Submit RegionMigrateProcedure failed, because all of the DataNodes
in Region Group "
+ + migrateRegionReq.getRegionId()
+ + " is unavailable.");
+ return status;
+ } else if (!aliveDataNodes.contains(migrateRegionReq.getToId())) {
+ LOGGER.warn(
+ "Submit RegionMigrateProcedure failed, because the destDataNode {}
is ReadOnly.",
+ migrateRegionReq.getToId());
+ TSStatus status = new
TSStatus(TSStatusCode.MIGRATE_REGION_ERROR.getStatusCode());
+ status.setMessage(
+ "Submit RegionMigrateProcedure failed, because the destDataNode "
+ + migrateRegionReq.getToId()
+ + " is ReadOnly.");
Review Comment:
the destDataNode maybe ReadOnly or Unknown?
##########
confignode/src/main/java/org/apache/iotdb/confignode/manager/ProcedureManager.java:
##########
@@ -363,7 +367,10 @@ public TSStatus migrateRegion(TMigrateRegionReq
migrateRegionReq) {
"Submit RegionMigrateProcedure failed, because no region Group "
+ migrateRegionReq.getRegionId());
return status;
- } else if (originalDataNode == null) {
+ }
+ Set<Integer> DataNodesInRegion =
Review Comment:
```suggestion
Set<Integer> dataNodesInRegion =
```
##########
confignode/src/main/java/org/apache/iotdb/confignode/manager/ProcedureManager.java:
##########
@@ -363,7 +367,10 @@ public TSStatus migrateRegion(TMigrateRegionReq
migrateRegionReq) {
"Submit RegionMigrateProcedure failed, because no region Group "
+ migrateRegionReq.getRegionId());
return status;
- } else if (originalDataNode == null) {
+ }
+ Set<Integer> DataNodesInRegion =
Review Comment:
```suggestion
Set<Integer> dataNodesInRegion =
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]