Description
Assume the following execution graph:
f1n1 f1n2 | X | f2n3 f2n4
For simplicity, let there be only one column of type integer. If data both distributed and sorted by this very column, then we may end up in a situation, where exchange won't be able to proceed because every fragment will be blocked by another party. In the example above, let f1n1 expects odd numbers, while f1n2 expects even. If f2n3 contains only odd numbers, and f2n4 contains only even numbers, then both exchanges will never get response from another party, thus won't be able to proceed.
Proposed solution is to disable order-preserving exchange in cases where target distribution is not single.
Attachments
Issue Links
- blocks
-
IGNITE-21579 Sql. Investigate performance bottlenecks in sql engine
- Resolved
- fixes
-
IGNITE-21700 IgniteSort: result of RelOptCost.plus is ignored but it doesn't have side-effects
- Resolved
- links to