课程培训网站模板下载,室内设计主要学什么课程,建立网站怎么赚钱,重庆大型的网站建设背景
flink的checkpoint监控页面那里有两个指标Sync Duration 和Async Duration#xff0c;一个是开始进行同步checkpoint所需的时间#xff0c;一个是异步checkpoint过程所需的时间#xff0c;你是否也有过疑惑#xff0c;是否只是同步过程中的时间才会阻塞正常的数据处理…背景
flink的checkpoint监控页面那里有两个指标Sync Duration 和Async Duration一个是开始进行同步checkpoint所需的时间一个是异步checkpoint过程所需的时间你是否也有过疑惑是否只是同步过程中的时间才会阻塞正常的数据处理而异步checkpoint的时间不会影响正常的数据处理流程
问题追踪
这里我们只拿Aligned checkpoint 和FsBackEnd作为例子我们知道当一个算子收到前置所有算子的checkpoint barrier后就会开始进行checkpoint操作
checkpoint操作的过程的第一步是同步操作也就是这一步使用的lock和数据处理过程使用的lock是同一个同步checkpoint操作的过程中是会阻塞数据正常处理流程的在同步处理的这一步骤中最主要进行的操作是对当前的状态进行快照操作进行状态快照的过程只是拷贝当前状态的对象引用那一定有人说你仅仅拷贝对象的引用那么当这个对应引用所指向的对象是可变的并且数据处理过程中改变了这个对象内容那你之前快照的内容不就变了吗其实是这样的如果数据处理过程中改变了对象的内容那么会生成一个新的对象应用替换状态对象中持有的旧的对象引用不过快照中的持有的还是旧的对象应用而旧对象应用指向的对象不会发生改变checkpoint过程的第二步是把快照的数据拷贝到远程存储HDFS上这一步由于涉及到的网络传输所以可能耗时相当长的时间不过数据处理过程和异步checkpoint的过程是并行的不会影响到数据的处理。
结论
checkpoint的同步处理阶段会阻塞数据的正常处理流程相当于这个算子在此期间是不能进行数据处理的而checkpoint的异步处理阶段和算子的数据处理是并行进行的不会影响到数据的正常处理流程
参考 https://zhuanlan.zhihu.com/p/392556253