Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Batch mode refers to the behavior of Flink runtime prior to this FLIP with execution.runtime-mode = batch.
  • Stream mode refers to the behavior of Flink runtime prior to this FLIP with execution.runtime-mode = streaming.
  • Mixed mode refers to the behavior of Flink runtime after this FLIP with execution.runtime-mode = streaming AND execution.checkpointing.interval-during-backlog = 0.

...


And we make the following extra notes for the behavior changes:

  • After this FLIP, the behavior of Flink runtime with execution.runtime-mode = streaming AND execution.checkpointing.interval-during-backlog > 0, will be same as the stream mode prior to this FLIP.
  • The rational for switching the Flink runtime behavior based on whether execution.checkpointing.interval-during-backlog == 0 is that most (if not all) performance optimizations, which allow batch mode to achieve higher throughput than stream mode, involve operations (e.g. sorting inputs) that can only be used when checkpoint is not required.
  • It is possible for mixed mode to be slower than stream mode, particularly when there is only small amount of input records and the overhead of buffering/sorting inputs out-weight its benefit. This is similar to how the merge join might be slower than hash join. This FLIP focuses on optimizing the Flink throughput when there is a high number of input records. In the future, we might introduce more strategies to turn on mix mode in a smart way to avoid performance regression.

1) Scheduling strategy

Batch mode:

...