开发者社区> 问答> 正文

CheckPoint失败排查方案是怎样的?

已解决

CheckPoint失败排查方案是怎样的?

展开
收起
詹姆斯邦德00 2022-10-17 11:16:58 358 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    当 checkpoint coordinator(job manager 的一部分)指示 task manager 开始checkpoint 时,它会让所有 sources 记录它们的偏移量,并将编号的 checkpointbarriers 插入到它们的流中。这些 barriers 流经 job graph,标注每个checkpoint 前后的流部分。Checkpoint n将包含每个 operator 的 state,这些 state 是对应的operator 消费了在 checkpoint barrier n之前的所有事件,当 job graph 中的每个operator 接收到 barriers 时,它就会记录下其状态。拥有两个输入流的 Operators(例如 CoProcessFunction)会执行 barrier 对齐(barrier alignment) 以便当前快照能够包含消费两个输入流 barrier 之前(但不超过)的所有 events 而产生的状态。

    image.png

    Flink 的 state backends 利用写时复制(copy-on-write)机制允许当异步生成旧版本的状态快照时,能够不受影响地继续流处理。只有当快照被持久保存后,这些旧版本的状态才会被当做垃圾回收。整体流程:

    •JM trigger checkpoint

    •Source 收到 trigger checkpoint 的 PRC,开始做 snapshot,并往下游发送barrier

    •下游接收 barrier(需要 barrier 都到齐才会开始做checkpoint)

    •Task 开始同步阶段 snapshot

    •Task 开始异步阶段 snapshot

    •Task snapshot 完成,汇报给 JM

    以上内容摘自《企业级云原生白皮书项目实战》电子书,点击https://developer.aliyun.com/ebook/download/7774可下载完整版

    2022-10-17 19:21:21
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
阿里云开发者社区官方技术圈,用户产品功能发布、用户反馈收集等。
问答排行榜
最热
最新

相关电子书

更多
面向失败设计 立即下载
《离线日志转存服务全新升级》 立即下载
俞航翔|基于Log的通用增量Checkpoint 立即下载