解读Flink中轻量级的异步快照机制--论文

本文根据论文Lightweight Asynchronous Snapshots for Distributed Dataflows
,通过这种轻量级的异步快照算法,解释Flink如何实现一致性快照以及恢复时如何实现exactly once的处理。

1、简介

对于分布式流处理系统而言,高吞吐、低延迟往往是最主要的需求。与此同时,容错在分布式系统中也很重要,对于正确性要求较高的场景,exactly once的实现往往也非常重要。

实时计算领域,往往低延迟、正确性是用户最关心的两个方面。
这里写图片描述

对于正确性,容错机制是必不可少的。当前分布式系统中保证exactly-once的处理,主要是通过对有状态的operator就行全局的、异性的快照完成的。但是这种方法通常有2个缺点:

1、为了获得全局的一致性状态,需要停止流处理程序,直到快照的完成,这显然对性能有着很大的影响。
2、快照的内容包含传输过程中所有的内容,这导致快照的大小过大。

因此,一种新型的分布式快照的算法是即提供轻量级的快照,同时让快照发生时对系统的影响降到最低。这种算法不会停止流处理,因此是异步的,而且对于整个无环图的拓扑结构,只对有状态的operator进行快照,因此快照的大小也会占用很小的空间。

这里所说的新型的快照算法,既适用于有向无环图,也适用于有向有环图。本文重点关注在有向无环图中的应用,即在Apache Flink中的异步barrier快照(Asynchronous Barrier Snapshotting (ABS))。

2、Apache Flink系统

简单来说,Flink就是一个分布式、有状态的批和流统一的流处理框架。每一个Flink的job都被编译为一个有向无环图(DAG)。在这个stream图中,每个点代表一个task,每个边代表task之间的数据传输。因此,每个operator既有输入也有输出(对于source而言,只有输出;对于sink而言,只有输入)。

2.

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值