You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Piotr Nowojski (Jira)" <ji...@apache.org> on 2025/01/03 16:40:00 UTC

[jira] [Created] (FLINK-37005) Make StreamExecDeduplicate ouput insert only where possible

Piotr Nowojski created FLINK-37005:
--------------------------------------

             Summary: Make StreamExecDeduplicate ouput insert only where possible
                 Key: FLINK-37005
                 URL: https://issues.apache.org/jira/browse/FLINK-37005
             Project: Flink
          Issue Type: Improvement
          Components: Table SQL / Planner, Table SQL / Runtime
    Affects Versions: 2.0.0
            Reporter: Piotr Nowojski
            Assignee: Piotr Nowojski


According to planner, {{StreamExecDeduplicate}} currently always outputs updates/retractions, even when this is currently not the case in the runtime. This can performance problems, for example forcing planner to add {{SinkUpsertMaterializer}} operator down stream from the deduplication, while it's actually not necessary. 

In this ticket, I would like to both support outputing insert only and increase number of cases where that's actually the case.

# Proc time keep first row is currently already implemented in such a way that it outputs inserts only, but this is not actually used/marked in the planner (planner change only)
# Row time keep first row, could be also implemented to output inserts only, with an operator that emits deduplication result on watermark, instead of on each record (planner + runtime change)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)