You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by xi...@apache.org on 2022/05/27 13:32:37 UTC
[iotdb] 04/07: fix the issue in exchange node adder
This is an automated email from the ASF dual-hosted git repository.
xingtanzjr pushed a commit to branch xingtanzjr/align_by_device_distribution
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 634492a8f3eab19042e92a19efbf13cf1fb919a3
Author: Jinrui.Zhang <xi...@gmail.com>
AuthorDate: Fri May 27 20:43:01 2022 +0800
fix the issue in exchange node adder
---
.../iotdb/db/mpp/plan/planner/distribution/ExchangeNodeAdder.java | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/distribution/ExchangeNodeAdder.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/distribution/ExchangeNodeAdder.java
index 6c502c464f..70982ca1fc 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/distribution/ExchangeNodeAdder.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/planner/distribution/ExchangeNodeAdder.java
@@ -263,7 +263,13 @@ public class ExchangeNodeAdder extends PlanVisitor<PlanNode, NodeGroupContext> {
children.stream()
.collect(
Collectors.groupingBy(
- child -> context.getNodeDistribution(child.getPlanNodeId()).region,
+ child -> {
+ TRegionReplicaSet region = context.getNodeDistribution(child.getPlanNodeId()).region;
+ if (region == null && context.getNodeDistribution(child.getPlanNodeId()).type == NodeDistributionType.SAME_WITH_ALL_CHILDREN) {
+ return calculateSchemaRegionByChildren(child.getChildren(), context);
+ }
+ return region;
+ },
Collectors.counting()));
// Step 2: return the RegionReplicaSet with max count
return Collections.max(groupByRegion.entrySet(), Map.Entry.comparingByValue()).getKey();