Hey Rex,

You probably will find the link below helpful; it explains how
at-least-once (does not have alignment) is different
from exactly-once(needs alignment). It also explains how the
alignment phase is skipped in the at-least-once mode.

https://ci.apache.org/projects/flink/flink-docs-release-1.12/concepts/stateful-stream-processing.html#exactly-once-vs-at-least-once

In a high level, at least once mode for a task with multiple input channels
1. does NOT block processing to wait for barriers from all inputs, meaning
the task keeps processing data after receiving a barrier even if it has
multiple inputs.
2. but still, a task takes a snapshot after seeing the checkpoint barrier
from all input channels.

In this way, a Snapshot N may contain data change coming from Epoch N+1;
that's where "at least once" comes from.

On Tue, Jan 12, 2021 at 1:03 PM Rex Fenley <r...@remind101.com> wrote:

> Hello,
>
> We're using the TableAPI and want to optimize for checkpoint alignment
> times. We received some advice to possibly use at-least-once. I'd like to
> understand how checkpointing works in at-least-once mode so I understand
> the caveats and can evaluate whether or not that will work for us.
>
> Thanks!
> --
>
> Rex Fenley  |  Software Engineer - Mobile and Backend
>
>
> Remind.com <https://www.remind.com/> |  BLOG <http://blog.remind.com/>  |
>  FOLLOW US <https://twitter.com/remindhq>  |  LIKE US
> <https://www.facebook.com/remindhq>
>

Reply via email to