[ https://issues.apache.org/jira/browse/KAFKA-10847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17273206#comment-17273206 ]
Matthias J. Sax commented on KAFKA-10847: ----------------------------------------- Thanks [~spena] – overall using a second store might be the simples solution and if we can get some perf results we can make a better decision if the performance is acceptable or not. The only thing I tend to object is the usage of _wall-clock_ time punctuation, because it would introduce non-determinism. And if we use stream-time punctuations, we could even avoid punctuations at all, an "piggy-back" emitting left/outer join result, each time we process an input record. Also take into account the grace period, ie, we should only emit left/outer join result after a window closes (not when a window end): window close = window end + grace period. > Avoid spurious left/outer join results in stream-stream join > ------------------------------------------------------------- > > Key: KAFKA-10847 > URL: https://issues.apache.org/jira/browse/KAFKA-10847 > Project: Kafka > Issue Type: Improvement > Components: streams > Reporter: Matthias J. Sax > Assignee: Sergio Peña > Priority: Major > > KafkaStreams follows an eager execution model, ie, it never buffers input > records but processes them right away. For left/outer stream-stream join, > this implies that left/outer join result might be emitted before the window > end (or window close) time is reached. Thus, a record what will be an > inner-join result, might produce a eager (and spurious) left/outer join > result. > We should change the implementation of the join, to not emit eager left/outer > join result, but instead delay the emission of such result after the window > grace period passed. -- This message was sent by Atlassian Jira (v8.3.4#803005)