码迷,mamicode.com
首页 > 其他好文 > 详细

Flink State的两张图

时间:2018-09-14 23:00:41      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:points   backend   end   ack   分享   snapshot   task   关系   分享图片   

streamTask的invoke方法中,会循环去调用task上的每个operator的initializeState方法,在这个方法中,会真正创建除了savepointStream的其他三个对象,

而savepointStream会lazy到做savepoint的时候才创建对象,这个也可以理解,毕竟savepoint不是必须的。
那么,三个对象创建了之后,就可以发挥作用了吗?不是。KeyedStateBackend和OperatorStateBackend创建之后立刻就会发生作用,因为用户的
代码需要获取和操作state,都会和这两个对象打交道,而checkpointStream要发挥作用就必须等到系统发出做checkpoint的指示之后,也就是开始
做snapshot之后,这个checkpointStream作为管道将KeyedStateBackend和OperatorStateBackend中的state进行持久化。

 

内存模型

技术分享图片

 

 

 

 

 调用关系:

其中task持有processor对象和operator对象,operator对象持有runtime对象,processor和runtime都持有operator对象,大量的这种对象之间的相互引用关系。

技术分享图片

 

Flink State的两张图

标签:points   backend   end   ack   分享   snapshot   task   关系   分享图片   

原文地址:https://www.cnblogs.com/029zz010buct/p/9649020.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!