Flink基础学习记录(七)Checkpoint

检查点的保存

周期性触发保存

还原现场

检查点分界线(Barrier)

Flink采用Chandy-Lamport算法的分布式快照。

Barrier不会像水位线一样不断生产。只在JM发送保存checkpoint指令时,由source任务中生产一条。

当JobManager发送指令:“兄弟们,开始保存checkpoint啦!”

source任务(各子任务)生产插入一个Barrier!并将读取的offset保存起来(用于还原现场)

Barrier对齐精准一次

1、source所有并发都会生成一个barrirer,存好offset。

2、offset存好后,会通知source,报告大哥,offset已经保存完毕。source收到消息后,会报告给JM:报告大哥,source检查点完毕。

3、当下游出现宽依赖的情况,将barrier广播下去。

4、当出现宽依赖的时候,下游会接收到上游多个barrirer。

5、当某个子任务的barrier未到齐时,会停下来等着。

6、当属于本次checkpoint的数据到达时,计算进去。

7、当下一个checkpoint的数据提前到来时,缓存起来。等待barrier到齐,处理完本次checkpoint再计算。

8、当各个分区的barrier都到齐后,就可以对当前算子的状态做checkpoint。

总结

Barrier对齐至少一次

精准一次中第7步中,先到的barrier的下一个checkpoint的数据先到了,不再缓存,而是计算进来,保存状态。那么出现故障重启,介于到了和没到的barrier之间的数据,会出现重复计算。多算了,称为至少一次。

优点:不缓存,不等,压力不大

缺点:重复计算

非Barrier对齐精准一次

每个算子节点,前面有个输入缓冲区,后面有个输出缓冲区。

Barrier总结

检查点API

Barrier对齐

非Barrier对齐

增量checkpoint changelog

.

保存点(Savepoint)

原理和算法和检查点相同,触发时机不同。手动存盘。

比如更改代码上线之前,需要手动保存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值