Hi everyone,

I'd like to propose FLIP-516: Multi-Way Join Operator [1] for discussion.

Chained non-temporal joins in Flink SQL often cause a "big state issue" due
to large intermediate results, impacting performance and stability. This
FLIP introduces a StreamingMultiJoinOperator to tackle this by joining
multiple inputs (that need to share a common key) simultaneously within one
operator.

The main goal is achieving zero intermediate state for these common join
patterns, significantly reducing state size. This initial version requires
a common partitioning key and focuses on INNER/LEFT joins, with plans for
future expansion. The operator is opt-in via
table.optimizer.multi-join.enabled (default false). PR with the initial
version of the operator is available [2].

Happy to be contributing to this community, and looking forward to your
feedback and thoughts.

Kind regards,
Gustavo de Morais

[1]
https://cwiki.apache.org/confluence/display/FLINK/FLIP-516%3A+Multi-Way+Join+Operator

[2] https://github.com/apache/flink/pull/26313

Reply via email to