对于 flink checkpoint 的流程,大概分为这几部分。
1. broadcast state 备份存储
2. keyed state 备份存储
3. 用户实现的 CheckpointedFunction 执行
本文主要说明 1 3 部分,2 有时间再补充
先说结论
flink 的 checkpoint 流程并非全同步或全异步,是同步异步并存的。
流程:
算子收到 barry 后,会同步做以下操作:
1. 执行用户实现的 CheckpointedFunction - snapshotState。
2. 将现有的 broadcast state 深拷贝,其中副本用来备份。
准备完毕后,会异步执行上传到远端存储备份的操作。
两部分分别在两个函数中执行。