Github user twalthr commented on a diff in the pull request:

    https://github.com/apache/flink/pull/6076#discussion_r192981069
  
    --- Diff: docs/dev/event_time.md ---
    @@ -213,10 +213,33 @@ arrive after the system's event time clock (as 
signaled by the watermarks) has a
     timestamp. See [Allowed Lateness]({{ site.baseurl 
}}/dev/stream/operators/windows.html#allowed-lateness) for more information on 
how to work
     with late elements in event time windows.
     
    +## Idling sources
    +
    +Currently with pure event time watermarks generators, watermarks can not 
progress if there are no elements
    +to be processed. That means in case of gap in the incoming data, even time 
will not progress and for
    +example window operator will not be triggered and thus existing windows 
will not be able produce any
    +output data.
    +
    +To circumvent this one can use periodic watermark assigners that don't 
only assign based on
    +element timestamps. Example solution could be an assigner that switches to 
using current processing time
    +as the time basis after not observing new events for a while.
     
     ## Debugging Watermarks
     
     Please refer to the [Debugging Windows & Event Time]({{ site.baseurl 
}}/monitoring/debugging_event_time.html) section for debugging
     watermarks at runtime.
     
    +## How operators are processing watermarks
    +
    +As a general rule, operators are required to completely process a given 
watermark before forwarding it downstream. For example,
    +`WindowOperator` will first evaluate which windows should be fired, and 
only after producing all of the output triggered by
    +the watermark will the watermark itself be sent downstream. In other 
words, all elements produced due to occurrence of a watermark
    +will be emitted before the watermark.
    +
    +The same rule applies to `TwoInputStreamOperator`. However, in this case 
the current watermark of the operator is defined as
    --- End diff --
    
    `TwoInputStreamOperator` and `OneInputStreamOperator` are internal classes. 
We should not mention them here but use a generic `operator with one input` 
term.


---

Reply via email to