开发者社区> 问答> 正文

Blink 对状态的copy(从本机到HDFS)是异步的,怎样保证exactly once了?

已解决

如果copy是异步的,怎样保证exactly once了?
--稍微修改了标题

展开
收起
默岭亚峰 2016-07-19 21:05:53 2396 0
4 条回答
写回答
取消 提交回答
  • 2014年底加入阿里,现在负责搜索工程的数据团队。在加入阿里前曾经就职于西雅图的脸书。负责过调度系统,Timeline Infra和Messenger的项目。在微软的SQL Server引擎担任过Principal Engineer,负责关系数据库的架构工作
    采纳回答

    异步的copy都完成了以后那个checkpoint才算成功,我们只会回滚到成功的checkpoint

    2019-07-17 19:58:38
    赞同 展开评论 打赏
  • Not lost, not lazy, no loose end

    一次checkpoint包括所有算子都接到barrier,运算完,再落地。之后才会接着处理barrier之后的数据,这样就能保证exactly

    2019-07-17 19:58:38
    赞同 展开评论 打赏
  • Blink的state采取了多版本控制(MVCC)的方式进行并发控制。在barrier到达时,Blink对state进行了快照。尽管在copy时,state仍然会被更新,但是快照所看到的数据是不会改变的。由于所有operator在同一个barrier下对state进行了快照,所以得到的状态是一致的,都是处理完同一批输入之后的状态。以这个状态恢复的计算自然也就是exactly once的了。

    2019-07-17 19:58:38
    赞同 1 展开评论 打赏
  • 黎钢

    snapshot是同步,非常快,持久化是异步,不影响状态的一致性。

    2019-07-17 19:58:38
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
海量数据分布式存储——Apache HDFS之最新进展 立即下载
Apache Flink 流式应用中状态的数据结构定义升级 立即下载
HBase2.0重新定义小对象实时存取 立即下载