Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-4558

Add support for synchronizing streams

    XMLWordPrintableJSON

Details

    Description

      As mentioned on the mailing list, there are use cases that require synchronizing two streams on via their times and where it is not practical to buffer all messages from one streams while waiting for the other to synchronize. Flink should add functionality to enable such use cases.

      This could be implemented by modifying TwoInputStreamOperator so that calls to processElement1 and processElement2 could return a value indicating that the element can't yet be processed, having the framework then pause processing for some time, potentially using exponential back off with a hard maximum, and then allowing the back pressure system to do its work and pause the stream.

      Alternatively, an API could be added to explicitly pause/unpause a stream.

      For ease of use either of these mechanism should be used to create a SynchronizedTwoInputStreamOperator that end users can utilize by passing a configurable time delta to use as a synchronization threshold.

      Attachments

        Activity

          People

            Unassigned Unassigned
            elevy Elias Levy
            Votes:
            3 Vote for this issue
            Watchers:
            17 Start watching this issue

            Dates

              Created:
              Updated: