说明
检查点算法的核心就是检查点栅栏(Checkpoint Barrier)
第一步
Barrier可以理解为 特殊的数据,插入到数据流中,作为数据流的一部分,随着数据流动,这些barrier不会跨越流中的数据,如下图:
第二步
如下图:数据流中插入 barrier,当 barrier 流入到算子map(),就开始执行快照。
每个 barrier 有一个 ID,表示该段数据属于 哪一次的 Checkpoint
当 ID 为 1 的 barrier 到达 map() 算子后,会把数据流分成 两部分:
barrier之前的数据:将其状态保存到 当前 快照中barrier之后的数据:将其状态保存到 下一个 快照
第三步
barrier 跟数据流一块往下游流动,执行下一个算子
当 ID 为 2 的 barrier 到达 map() 算子后,开始执行 checkpoint 2
在流中,同一时间可以有多个 barrier,可以 并发的出现不同的快照
参考:
https://blog.csdn.net/zznanyou/article/details/121347608
https://www.jianshu.com/p/4d31d6cddc99


