John Roesler created KAFKA-6978:
-----------------------------------

             Summary: Make Streams Window retention time strict
                 Key: KAFKA-6978
                 URL: https://issues.apache.org/jira/browse/KAFKA-6978
             Project: Kafka
          Issue Type: Improvement
          Components: streams
            Reporter: John Roesler


Currently, the configured retention time for windows is a lower bound. We 
actually keep the window around until it's time to roll a new segment. At that 
time, we drop all windows in the oldest segment.

As long as a window is still in a segment, we will continue to add 
late-arriving records to it and also serve IQ queries from it. This is sort of 
nice, because it makes optimistic use of the fact that the windows live for 
some time after their retention expires. However, it is also a source of 
(apparent) non-determinism, and it's arguably better for programability if we 
adhere strictly to the configured constraints.

Therefore, the new behavior will be:
 * once the retention time for a window passes, Streams will drop any 
later-arriving records (with a warning log and a metric)

 * likewise, IQ will first check whether the window is younger than its 
retention time before answering queries.

No changes need to be made to the underlying segment management, this is purely 
to make the behavior more strict wrt the configuration.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to