korlov42 commented on a change in pull request #9009:
URL: https://github.com/apache/ignite/pull/9009#discussion_r618368523
##########
File path:
modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/trait/DistributionTrait.java
##########
@@ -142,7 +142,7 @@
&& DistributionFunction.satisfy(function, other.function));
if (other.getType() == RANDOM_DISTRIBUTED)
- return getType() == HASH_DISTRIBUTED;
+ return getType() == HASH_DISTRIBUTED || getType() == SINGLETON;
Review comment:
> single trait means that data for this plan node is located only on one
cluster node
This is correct. And the plan above is correct too. But the problem caused
by limitation of current splitter implementation. When an exchange connects two
fragments with SINGLE and RANDOM distribution, and the data flows from the
first to the second, the IgniteReceiver nodes becomes a source of the data with
a SINGLE distribution, but presented on every node of the fragment with RANDOM
distribution, thereby creates N copies of the original data.
The same problem with BROADCAST to RANDOM transition.
--
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.
For queries about this service, please contact Infrastructure at:
[email protected]