You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Fabian Hueske (Jira)" <ji...@apache.org> on 2026/10/05 13:21:00 UTC
[jira] [Created] (FLINK-40914) Support partial updates on LATERAL SNAPSHOT join build side
Fabian Hueske created FLINK-40914:
-------------------------------------
Summary: Support partial updates on LATERAL SNAPSHOT join build side
Key: FLINK-40914
URL: https://issues.apache.org/jira/browse/FLINK-40914
Project: Flink
Issue Type: Improvement
Components: Table SQL / Runtime
Reporter: Fabian Hueske
Assignee: Fabian Hueske
LATERAL SNAPSHOT join maintains the build-side of the join in state.
Currently, the state is maintained as a MapState<Row, Long>, supporting any kind of tables as input. One drawback of this implementation is that retractions require full row matches, which is not needed if the input table has a primary key.
Inputs that are read from upsert connectors with partial deletes (like Kafka) require an expensive ChangelogNormalize operator to derive full deletion rows.
We can significantly improve the performance of such jobs by directly supporting partial deletes in the LateralSnapshotJoin operator.
This requires:
* Alternative state layout for build-side input with primary key
* Abstraction of build-side updates and lookups
* A switch (or new operator implementation) to determine the correct build-side mode
* Planner changes to configure the switch (or chose the correct operator implementation)
* Adjustment of LSJ logic in `StreamNonDeterministicUpdatePlanVisitor` (make it less restrictive if build-side has a PK)
* Tests for the new mode / implementation
--
This message was sent by Atlassian Jira
(v8.20.10#820010)