[ 
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)

Reply via email to