Flink 1.11 的 Unaligned Checkpoint 主要解决在高反压情况下作业难以完成 Checkpoint 的问题,同时它以磁盘资源为代价,避免了 Checkpoint 可能带来的阻塞,有利于提升 Flink 的资源利用率。随着流计算的普及,未来的 Flink 应用大概会越来越复杂,在未来经过实战打磨完善后 Unaligned Checkpoint 很有可能会取代 Aligned Checkpo...
回到最开始的AlternatingWaitingForFirstBarrierUnaligned类当保存完input buffer的数据 调用initInputsCheckpoint方法之后,来看下具体的逻辑 当触发完input数据的保存以后,就是触发全局的checkpoint了,这里会一直走到streamTask的triggerCheckpointOnBarrier在里面会走到performCheckpoint 最后在SubtaskCheckpointCoordinatorImpl类中 ...
最终 Reducing Task 的 Checkpoint 就会失败,从而导致 Job 的 Checkpoint 失败。 1.5 Unaligned Checkpoint 核心思路 UC 的核心思路是 Barrier 超越这些 ongoing data,即 Buffer 中的数据,并快照这些数据。由此可见,当 Barrier 超越 ongoing data 后,快速到达了 Sink Task。与此同时,这些数据需要被快照,防止数据丢失。
Unaligned checkpoints 可用于加快 checkpoint barriers 的传播,但并不能解决导致反压的根本问题(端到端记录延迟仍然很高)。 3.Checkpoint 调优 应用程序可以配置定期触发 checkpoints,当 checkpoint 完成时间超过 checkpoint 间隔时,在正在进行的 checkpoint 完成之前,不会触发下一个 checkpoint;默认,一旦正在进行的 checkpo...
Unaligned Checkpoint 这里简称UC 整个UC分为UC同步阶段、UC异步阶段两部分 UC同步阶段 UC开始后,task的3个input-buffer会陆续收到上游发送的barrier,如图所示input-buffer1收到了barrier1,其它的input-buffer还没有收到barrier,当某一个input-buffer接收到barrier时,task会直接开始UC的第一阶段,即UC同步阶段。
setAlignmentTimeout:checkpoint align超时时间。只有在启用Unaligned checkpoint时候生效。默认是0不启用。如果启用的话,checkpoint默认为aligned checkpoint,如果checkpoint启动延迟时间超过配置时间,会自动转换为unaligned checkpoint模式。 setCheckpointStorage:配置checkpoint存储。可配置文件系统路径等。
关于backend配置及选择可以参考上一篇Flink详解之七--状态管理 1.3 非对齐检查点(unaligned checkpoint) 二、Savepoint savepoint是使用检查点机制创建的,作业执行状态的全局镜像,可用于flink的停止与恢复,升级等。savepoint有两部分构成:一是在稳定存储(如:HDFS、S3等)中保存了二进制文件的目录,二是元数据文件。这些文件...
Unaligned Checkpoint:Checkpoint 完成的时候是否是一个 unaligned checkpoint,在 alignment 超时的时候 aligned checkpoint 可以自动切换成 unaligned checkpoint。 **【配置】**历史记录所保存的检查点的数量,默认为 10 # 保存最近 checkpoint 的个数 web.checkpoints.history: 15 ...
Unaligned Checkpoint在设计上与Chandy-Lamport算法保持一致,但考虑到Flink算子的输入和输出通道,快照时需要同时考虑两者状态。它取消了对屏障位置的严格要求,允许算子在屏障到达前处理数据,这在处理瓶颈算子时显著提高了屏障通过DAG的速度。尽管Unaligned Checkpoint在某些场景下能显著提升性能,但它也引入了新...