Elias Levy created KAFKA-4153:
---------------------------------

             Summary: Incorrect KStream-KStream join behavior with asymmetric 
time window
                 Key: KAFKA-4153
                 URL: https://issues.apache.org/jira/browse/KAFKA-4153
             Project: Kafka
          Issue Type: Bug
          Components: streams
    Affects Versions: 0.10.0.1
            Reporter: Elias Levy
            Assignee: Guozhang Wang


Using Kafka 0.10.0.1, if joining records in two streams separated by some time, 
but only when records from one stream are newer than records from the other, 
i.e. doing:

{{stream1.join(stream2, valueJoiner, JoinWindows.of("X").after(10000))}}

One would expect that the following would be equivalent:

{{stream2.join(stream1, valueJoiner, JoinWindows.of("X").before(10000))}}

Alas, that this is not the case.  Instead, this generates the same output as 
the first example:

{{stream2.join(stream1, valueJoiner, JoinWindows.of("X").after(10000))}}

The problem is that the 
[{{DefaultJoin}}|https://github.com/apache/kafka/blob/caa9bd0fcd2fab4758791408e2b145532153910e/streams/src/main/java/org/apache/kafka/streams/kstream/internals/KStreamImpl.java#L692-L697]
 implementation in {{KStreamImpl}} fails to reverse the {{before}} and 
{{after}} values when creates the {{KStreamKStreamJoin}} for the other stream, 
even though is calls {{reverseJoiner}} to reverse the joiner.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to