当前位置: 首页 > news >正文

Flink Checkpoint 中的通用增量Checkpoint

文章目录

    • 知识点
      • 状态
      • Flink容错恢复
        • 周期性的 Checkpoint
        • 错误检测 Failure Detected
        • 重新调度 Re-scheduling
        • 状态恢复 State Recovery
      • 通用增量Checkpoint

知识点

状态

算子需要记录之前数据处理的中间结果,把中间结果暂时缓存在算子的内部,这就是算子的状态。

为了避免算子挂掉,状态丢失,就需要重头开始进行Flink作业,这样效率太差,为了解决算子挂掉导致状态丢失无法恢复算子、算子状态的问题,周期性的对算子状态进行snapshot,这就是Flink的CheckPoint机制

Flink容错恢复

因为Checkpoint是频发的,所以Checkpoint过程要尽可能轻量、稳定且能够保证成功。

容错恢复过程有以下几个方面

周期性的 Checkpoint

错误检测 Failure Detected

如果某个节点挂了,就需要快速的发现这个失败节点,并完成相应的清理工作

重新调度 Re-scheduling

生成新的作业并重新调度,最后完成部署

状态恢复 State Recovery

作业重新调度起来以后,就需要从最新的快照中把算子的中间状态恢复起来

通用增量Checkpoint

Generic Log-based Incremental Checkpoints

算子在更新自身状态时,会将状态更新结果记录到状态表中

快照异步上传到DFS的时间和状态表的大小正相关,时间非常长并且不可控

为了解决这个问题引入了通用增量Checkpoint机制

解耦状态表和增量日志上传过程

在维护原有状态表的同时,记录一份增量状态更新日志(Change Log)

原有的算子状态快照的过程有两个部分
第一个部分是同步对算子进行快照,这个过程中内存的数据会刷写到磁盘,准备好上传到DFS的文件

第二个部分就是异步上传快照文件

存在的问题

  1. 异步上传的文件大小严重依赖StateBackend的实现
  2. 在同步快照结束前,是无法开始异步上传过程的,整个异步上传过程要等到同步过程结束后才能进行

对于第一个问题,以RocksDB为例,虽然说RocksDB支持增量快照,但是RocksDB因为自身的实现机制,需要对文件Compaction,每次Compaction都会产生新的比较大的文件,这种情况下即使是增量的Checkpoint也会时不时的使需要上传的Checkpoints文件变得比较大,如果并发比较大的情况下,上传文件时不时变大导致的问题就会很严重,因为只有等所有并发上传的文件都上传完毕,一个完整的算子状态才算是快照完成。

对于第二个问题,状态同步快照结束前无法开始异步上传过程,会导致较大的作业延迟

针对以上两个问题新的通用增量Checkpoint机制
算子状态更新时不仅会更新状态表,还会记录状态更新日志,这样的话状态表还是会周期性的刷新到DFS中,但是这个周期可以变得比较大,比如10分钟,状态表在后台慢慢的进行上传,这个过程称之为物化过程物化过程。同时这个状态更新日志也会不断的上传到远端DFS,并且在Checkpointing的时候Flush剩余的全部日志。

通过将状态快照过程和物化过程完全的独立开来,可以让异步上传的文件大小变得很稳定,同时因为状态更新是持续的,可以在快照之前就一直持续的上传、更新,所以在快照的时候实际上需要上传的数据量就会变得很小。物化过程结束后,相对应的更新日志可以被删除。

Change Log Storage ,DSTL(Durable Short-term Log)

DSTL的几个特性:
持久化
高频写
写延迟
一致性

待定…

资料:

Flink 1.15 新功能架构解析:高效稳定的通用增量 Checkpoint

相关文章:

Flink Checkpoint 中的通用增量Checkpoint

文章目录知识点状态Flink容错恢复周期性的 Checkpoint错误检测 Failure Detected重新调度 Re-scheduling状态恢复 State Recovery通用增量Checkpoint知识点 状态 算子需要记录之前数据处理的中间结果,把中间结果暂时缓存在算子的内部,这就是算子的状态…...

金三银四必看的软件测试面试题宝典,背完offer随便拿

怎么来设计测试方案根据测试需求(包括功能需求和非功能性需求),识别测试要点,识别测试环境要求,安排测试轮次,根据项目计划和开发计划做整体的测试安排。 被测试的特性:通过对需求规格说明书进行…...

企业电子招标采购系统源码Spring Cloud + Spring Boot +二次开发+ MybatisPlus + Redis

一、立项管理 1、招标立项申请 功能点:招标类项目立项申请入口,用户可以保存为草稿,提交。 2、非招标立项申请 功能点:非招标立项申请入口、用户可以保存为草稿、提交。 3、采购立项列表 功能点:对草稿进行编辑&#x…...

扬帆优配“数字经济+实体经济”融合发展,行业增长空间大!

组织以为,数字经济已经逐步成为工业商场和资本商场的共同主题。 2月16日,国家发改委在《求是》杂志发表文章《努力推进经济完成质的有效提升和量的合理增加》。文章指出要加速开展数字经济,加速实施“东数西算”等重大工程,推进数…...

分享82个HTML电脑主机模板,总有一款适合您

分享82个HTML电脑主机模板,总有一款适合您 82个HTML电脑主机模板下载链接:https://pan.baidu.com/s/13DGOCgvbxSksMPwJzi2z0g?pwdl0mi 提取码:l0mi Python采集代码下载链接:采集代码.zip - 蓝奏云 云虚拟主机运营商网站模板…...

.htaccess语法教程

RewriteEngine On RewriteCond %{HTTP_HOST} ^(www\.)?xxx\.com$ RewriteCond %{REQUEST_URI} !^/blog/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /blog/$1# 没有输入文件名的默认到到首页 RewriteCond %{HTTP_HOST} ^(w…...

C++ ——多态 下 (图解多态原理、虚函数的再认知)

目录 一、抽象类 1)抽象类定义 2)抽象类的继承 3)抽象类实现多态 4)抽象类的好处 二、多态的实现原理 1)虚函数的存储方式 2)子类中虚函数的存储方式 ① 子类将基类中的虚表原封不动的拷贝到自己的…...

cocos creater 3.x 构建QQ小游戏

一、目前 cocos creater 不支持直接构建QQ小游戏,需要构建成微信小游戏,然后修改成QQ小游戏 二、构建QQ小游戏不能勾选 分离引擎 的选项,勾选分离引擎的选项,需要安装cocos微信小游戏引擎插件,这个插件似乎目前只支持微…...

ArcGIS笔记3_如何编辑、修改和导出散点数据

本文目录前言Step 1 在ArcGIS中添加并显示坐标点Step 2 将坐标数据保存成shp文件Step 3 编辑或修改坐标数据Step 4 导出修改后的数据:法一:通过转换工具导出Step 5 导出修改后的数据:法二:通过dBASE表导出前言 本博文更多针对Arc…...

Computer Graphics From Scratch - Chapter 8

系列文章目录 简介:Computer Graphics From Scratch-《从零开始的计算机图形学》简介 第一章: Computer Graphics From Scratch - Chapter 1 介绍性概念 第二章:Computer Graphics From Scratch - Chapter 2 基本光线追踪 第三章:Computer Gr…...

金三银四”不香了?

“金三银四”不香了? “金三银四”这个词,放在三年前,勾勒的是无数踌躇满志的年轻人涌向职场,大中小企业血液更新与流动的鲜活画面。 尤其是互联网行业,这个在过去20多年里极大改变文化交流方式与商业形态的领域&…...

个人开源PCB开发板列表汇总

个人开源PCB开发板列表汇总✨首先感谢立创EDA的免费打样和立创一起开源的广大网页。 🔰STC单片机为主控开源PCB开发板列表 📌STC15F2K60S2开发板:https://oshwhub.com/perseverance51/stc15f2k60s2-ji-tong-ban 📌STC15W408AS系…...

2023美国大学生数学建模竞赛(美赛)思路代码

2023美国大学生数学建模竞赛(美赛)思路&代码报名时间节点比赛说明问题A(数据分析题):收干旱影响的植物群落(MCM)第一问第二问问题B(仿真建模题):重塑马赛…...

makefile简易教程

makefile简易教程 一、学习目标 达到多文件快速编译的需求,相关符号的意思,以及其它注意事项。 二、快速入门 2.1 基本概念 Makefile 是一个在Unix和Linux操作系统上使用的构建工具,用于自动化编译和构建源代码。 2.2 用处 通过Makefi…...

快速入门nginx

目录 1.nginx前言 2.什么是nginx 3.Nginx作用? 1.正向代理 2.反向代理 3.轮询 4.加权轮询 4.Nginx的安装 1.windows下安装 2.linux下安装 5.Nginx常用命令 1.nginx前言 我们公司项目刚刚上线的时候,并发量小,用户使用的少&#…...

甘特图:项目管理工具,轻松简化工作流程

项目规模越大,管理就越复杂,有时候甚至一个项目经理需要管理多个项目,当多个项目、多条任务同时进行,项目所涉及的范围广,内容越来越复杂,使得项目越难以把控,好的管理工具,可以提升…...

刷题专练之翻转题练习

文章目录一、 编写函数实现字符串翻转二、轮转数组总结一、 编写函数实现字符串翻转 描述 编写一个函数,实现字符串的翻转 输入描述: 输入一个字符串 输出描述: 输出翻转后的字符串 写法一: 这种方法是定义begin和end&#xff0…...

【Java】死锁

一、什么是死锁 死锁指多个线程在执行过程中,因争夺资源造成的一种相互等待的僵局。 进程死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。…...

DS图—图的最短路径(无框架)迪杰斯特拉算法

目录 题目描述 AC代码 题目描述 给出一个图的邻接矩阵,输入顶点v,用迪杰斯特拉算法求顶点v到其它顶点的最短路径。 输入 第一行输入t,表示有t个测试实例 第二行输入顶点数n和n个顶点信息 第三行起,每行输入邻接矩阵的一行&…...

【笔记】数据异常检测与修复总结

文章目录一、异常种类1. 对于移动对象的数据异常2. 对于时序数据的异常检测二、异常数据清洗流程三、数据预处理四、异常检测算法五、异常修复算法六、漂移数据清洗一、异常种类 不同的研究对象,有着不同的异常分类方式 1. 对于移动对象的数据异常 异常数据信息&…...

LaMa图像修复:基于傅里叶卷积的大掩码鲁棒修复方法

1. 项目概述:这不是又一个“修图工具”,而是一次对图像修复底层逻辑的重新定义LaMa——全称Large Mask Inpainting,直译是“大区域掩码图像修复”,但它的实际能力远超字面。我第一次在CVPR 2022论文里看到它时,第一反应…...

Next.js功能开关实践:用happykit/flags实现灰度发布与A/B测试

1. 项目概述:为什么我们需要一个功能开关系统?在软件开发,尤其是现代Web应用和微服务架构的迭代过程中,我们经常面临一个经典困境:新功能开发完成后,是直接全量发布给所有用户,还是先小范围灰度…...

LoRa模块信号弱?可能是你的“射频快递”堵车了:深入Sx1262前端电路的信号处理流水线

LoRa模块信号弱?可能是你的“射频快递”堵车了:深入Sx1262前端电路的信号处理流水线 想象一下,你精心打包的快递包裹在运输途中被随意堆放、地址模糊不清,最终导致收件人无法正常签收——这正是许多LoRa模块信号问题的真实写照。当…...

Muse:现代化多仓库管理工具,提升开发效率与协作体验

1. 项目概述:一个面向开发者的现代化代码库管理工具最近在和一些团队交流时,发现一个挺普遍的现象:大家手头的项目代码库越来越多,有的是自己维护的开源项目,有的是公司内部的核心业务模块,还有一堆实验性的…...

现代React Native开发:从Expo生态到Redux状态管理的工程实践

1. 项目概述:一个为现代React Native开发量身定制的生产力引擎 如果你和我一样,在过去几年里用React Native做过几个项目,那你一定对项目初始化时那种重复、繁琐的“体力活”深有体会。每次新建一个项目,都要重新安装一堆依赖库&…...

解锁PS4游戏存档的终极掌控:Apollo Save Tool深度技术解析

解锁PS4游戏存档的终极掌控:Apollo Save Tool深度技术解析 【免费下载链接】apollo-ps4 Apollo Save Tool (PS4) 项目地址: https://gitcode.com/gh_mirrors/ap/apollo-ps4 在PlayStation 4的游戏生态中,PS4存档管理和游戏数据修改一直是玩家和开…...

芯片设计中的责任边界:从工程师素养到系统性流程构建

1. 从桥梁垮塌到芯片失效:工程师的责任边界在哪里?每次看到新闻里报道桥梁垮塌、大楼倾斜或者某个关键设备在运行中突然失效,我心里总会咯噔一下。作为一个在电子设计自动化(EDA)和半导体行业摸爬滚打了十几年的工程师…...

A Survey for Image Quality Assessment: From Handcrafted Features to Deep Learning

1. 图像质量评估的起源与核心挑战 当你用手机拍完一张照片,系统自动弹出"画质优化建议"时,背后就是图像质量评估(IQA)技术在发挥作用。这项技术最早可以追溯到上世纪70年代电视信号传输质量检测,当时工程师们…...

工业DC-DC电源模块性能选型解析|钡特电源 VB15-48S24MD 与 URB4824YMD-15WR3 封装互通

在工业控制、通信设备、仪器仪表等领域,工业 DC-DC 模块电源作为核心供电单元,其稳定性、兼容性与性价比直接影响系统整体可靠性。随着国产化进程加速,国产工业电源模块在技术、品质上已达到国际先进水平,成为硬件工程师选型的重要…...

终极指南:SpringAll安全框架实战——Shiro与Spring Security权限控制最佳实践

终极指南:SpringAll安全框架实战——Shiro与Spring Security权限控制最佳实践 【免费下载链接】SpringAll 循序渐进,学习Spring Boot、Spring Boot & Shiro、Spring Batch、Spring Cloud、Spring Cloud Alibaba、Spring Security & Spring Secur…...