guozhangwang commented on a change in pull request #10462:
URL: https://github.com/apache/kafka/pull/10462#discussion_r610209134



##########
File path: 
streams/src/main/java/org/apache/kafka/streams/kstream/internals/KStreamKStreamJoin.java
##########
@@ -38,20 +48,36 @@
     private final String otherWindowName;
     private final long joinBeforeMs;
     private final long joinAfterMs;
+    private final long joinGraceMs;
 
     private final ValueJoinerWithKey<? super K, ? super V1, ? super V2, ? 
extends R> joiner;
     private final boolean outer;
+    private final Optional<String> outerJoinWindowName;
+    private final boolean thisJoin;
+
+    // Observed time is AtomicLong because this time is shared between the 
left and side processor nodes. However,
+    // this time is not updated in parallel, so we can call get() several 
times without worry about getting different
+    // times.
+    private final AtomicLong maxObservedStreamTime;

Review comment:
       I personally was on the side of always using task stream time everywhere 
but more people feel that we should use processor stream time :P Anyways, all 
I'm trying to say is that we need to make an educated decision here, and if we 
concluded that either 1) we rely on task time here, but still use processor 
time on other expiration logic, or 2) we rely on processor time on all logic, 
or 3) we rely on task time on all logic, we have a good rationale for whichever 
we choose.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to