Hi Lu,

Thank you for your interest in unaligned checkpoints!

I just published some PRs that will warn you if you set both unaligned
checkpoints and AT_LEAST_ONCE. It's indeed not possible or even meaningful
to use them at the same time. AT_LEAST_ONCE has no alignment phase, so it's
faster than both EXACTLY_ONCE options (aligned and unaligned).



On Mon, Jun 22, 2020 at 5:20 AM Zhijiang <wangzhijiang...@aliyun.com> wrote:

> From implementation or logic complication perspective, the AT_LEAST_ONCE
> is somehow simpler compared with EXACTLY_ONCE w/o unaligned, since
> it can always process data without blocking any channels.
>
> ------------------------------------------------------------------
> From:Lu Weizheng <luweizhen...@hotmail.com>
> Send Time:2020年6月22日(星期一) 10:53
> To:Zhijiang <wangzhijiang...@aliyun.com>; user@flink.apache.org <
> user@flink.apache.org>
> Subject:回复: Unaligned Checkpoint and Exactly Once
>
> Thank you Zhijiang! The second question about config is just because I
> find a method in InputProcessorUtil. I guess AT_LEAST_ONCE  mode is a
> simpler way to handle checkpont barrier?
>
> private static CheckpointBarrierHandler createCheckpointBarrierHandler(
>       StreamConfig config,
>       InputGate[] inputGates,
>       SubtaskCheckpointCoordinator checkpointCoordinator,
>       String taskName,
>       AbstractInvokable toNotifyOnCheckpoint) {
>    switch (config.getCheckpointMode()) {
>       case EXACTLY_ONCE:
>          if (config.isUnalignedCheckpointsEnabled()) {
>             return new AlternatingCheckpointBarrierHandler(
>                new CheckpointBarrierAligner(taskName, toNotifyOnCheckpoint, 
> inputGates),
>                new CheckpointBarrierUnaligner(checkpointCoordinator, 
> taskName, toNotifyOnCheckpoint, inputGates),
>                toNotifyOnCheckpoint);
>          }
>          return new CheckpointBarrierAligner(taskName, toNotifyOnCheckpoint, 
> inputGates);
>       case AT_LEAST_ONCE:
>          int numInputChannels = 
> Arrays.stream(inputGates).mapToInt(InputGate::getNumberOfInputChannels).sum();
>          return new CheckpointBarrierTracker(numInputChannels, 
> toNotifyOnCheckpoint);
>       default:
>          throw new UnsupportedOperationException("Unrecognized Checkpointing 
> Mode: " + config.getCheckpointMode());
>    }
> }
>
>
> ------------------------------
> *发件人:* Zhijiang <wangzhijiang...@aliyun.com>
> *发送时间:* 2020年6月22日 10:41
> *收件人:* Lu Weizheng <luweizhen...@hotmail.com>; user@flink.apache.org <
> user@flink.apache.org>
> *主题:* Re: Unaligned Checkpoint and Exactly Once
>
> Hi Weizheng,
>
> The unaligned checkpoint (UC) only supports exactly-once mode in Flink
> 1.11 except savepoint mode. The savepoint is probably used in job rescaling
> scenario and we plan to support it in future release version. Of course UC
> can satisfy exactly-once semantic as promised.
>
> Regarding the config issue, i am not sure I get your point here. The first
> config is for describing whether the current setting mode (actually only
> exactly-once) enables UC or not, and the second config is for setting the
> different mode (exactly-once or at least-once). I guess you refer to
> merge them by using the first config form. But somehow they seem two
> different dimensions for config the checkpoint. One is for the semantic
> of data processing guarantee. And the other is for how we realize two
> different mechanisms to guarantee one (exactly-once) of the semantics.
>
>
> Best,
> Zhijiang
>
> ------------------------------------------------------------------
> From:Lu Weizheng <luweizhen...@hotmail.com>
> Send Time:2020年6月22日(星期一) 07:20
> To:user@flink.apache.org <user@flink.apache.org>
> Subject:Unaligned Checkpoint and Exactly Once
>
> Hi there,
>
> The new feature in Flink 1.11 will provide us the Unaligned Checkpoint
> which means a operator subtask does not need to wait all the Checkpoint
> barrier and will not block some channels. As the Checkpoint barrier is the
> key mechanism for Exactly Once guarantee, I am not sure Unaligned
> Checkpoint could still achieve Exactly Once guarantee or only AT Least Once?
>
> FLIP-76
> <https://cwiki.apache.org/confluence/display/FLINK/FLIP-76%3A+Unaligned+Checkpoints>
> :
> Unaligned checkpoints will initially be an optional feature. After
> collecting experience and implementing all necessary extensions, unaligned
> checkpoint will probably be enabled by default for exactly once.
>
> What's more, in the following two configs,
>
> Config 1
> env.getCheckpointConfig().enableUnalignedCheckpoints();
>
> Config 2
>
> checkpointCfg.setCheckpointingMode(CheckpointingMode.AT_LEAST_ONCE);
>
>
> Does Config 2 use a even simpler way for Checkpoint than Unaligned
> Checkpoint?
>
> Hope for replies!
>
> Weizheng
>
>
>

-- 

Arvid Heise | Senior Java Developer

<https://www.ververica.com/>

Follow us @VervericaData

--

Join Flink Forward <https://flink-forward.org/> - The Apache Flink
Conference

Stream Processing | Event Driven | Real Time

--

Ververica GmbH | Invalidenstrasse 115, 10115 Berlin, Germany

--
Ververica GmbH
Registered at Amtsgericht Charlottenburg: HRB 158244 B
Managing Directors: Timothy Alexander Steinert, Yip Park Tung Jason, Ji
(Toni) Cheng

Reply via email to