流处理引擎(SPE)中的的分布式一致性语义之Exactly-Once和Effectively

流处理引擎(SPE)中的的分布式一致性语义之Exactly-Once和EffectivelyAt most Onece:最多一次,如果算子处理事件失败,事件将不再尝试该事件。 At Least Onece:至少一次,如果算子处理事件失败,算子会再次尝试该处理事件,直到有一次成功。 Exact

流处理引擎(SPE)中的的分布式一致性语义之Exactly-Once和Effectively

— At most Onece:最多一次,如果算子处理事件失败,事件将不再尝试该事件。
— At Least Onece:至少一次,如果算子处理事件失败,算子会再次尝试该处理事件,直到有一次成功。

Exactly-Once:严格一次,通常有两种方法实现:

— 1.分布式快照+状态检查点,思想就是对比检查点和分布式快照中的状态,如出现状态不一致就回退到最小状态处,重新计算。
— 2.At least Onece + 去重,重播失败的算子,并删除重复算子的结果。
— 虽然从理论上看,分布式快照,和至少一次事件交付外加去重,这两种机制之间存在差异,但两者均可理解为至少一次处理外加幂等保证。

上文提到的两种机制均使用持久的后端存储作为事实来源(Source of truth),用于保存每个操作符的状态,并自动提交状态更新。对于机制 1(分布式快照 / 状态检查点),这个持久的后端存储可用于保存流应用程序中全局一致的状态检查点(每个运算符的状态检查点);对于机制 2(至少一次事件交付,外加去重),这个持久的后端存储可用于保存每个运算符的状态,以及为了追踪哪些事件已经被成功处理过而为每个运算符生成的事务日志。

状态的提交或对事实来源的持久后端进行的更新可描述为事件(Occurring)的严格一次。然而在计算状态的更新 / 改动,例如所处理的事件正在针对事件执行各种用户定义的逻辑时,如果失败则可能进行多次,这一点正如上文所述。换句话说,事件的处理可能会进行多次,但处理的最终结果只会在持久的后端状态存储中体现一次。因此 Streamlio 认为“实际一次(Effectively-once)”可以更精确地描述这样地处理语义。

Effectively-Onece:有效的一次或者最终一次。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/9890.html

(0)
上一篇 2023-01-30
下一篇 2023-01-30

相关推荐

  • 以’ufeff’为中心的Python工程师

    以’ufeff’为中心的Python工程师Python语言是当前最受欢迎的编程语言之一,其应用领域非常广泛,如Web开发、数据科学、人工智能等。’ufeff’是一个被误解和忽视的字符编码,但在某些情况下,它对于系统和编程任务是至关重要的。Python工程师需要掌握’ufeff’编码,以便在处理字符编码时保持准确性。

    2024-06-27
    43
  • 数据库中间件漫谈_数据中间件

    数据库中间件漫谈_数据中间件1.前言 随着业务的发展,MySQL数据库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作的开销也会越来越大;另外,无论怎样升级硬件资源,单台服务器的资源(CPU、磁盘、内存、网络IO、…

    2023-02-06
    153
  • 请问下python的(关于python的)

    请问下python的(关于python的)当我们进行Python学习的时候,一定要保持良好的逻辑思维能力,虽然说Python适合零基础人员学习,但是学习的时候也需要较强的思维能力。

    2023-10-27
    152
  • sqlserver怎么导出数据库「建议收藏」

    sqlserver怎么导出数据库「建议收藏」
    展开全部 材料/工具:SQL Server 1、打开SQL Server,找抄到需要2113导5261出的数据库。 2、在需要导出的数据库上右击,选择410…

    2023-04-08
    147
  • 【MySQL】笔记(2)-「终于解决」

    【MySQL】笔记(2)-「终于解决」分组函数一般都会和group by联合使用,这也是为什么它被称为分组函数的原因,并且任何一个分组函数(count sum avg max min)都是在group by语句执行结束之后才会执行的,当一

    2023-05-01
    134
  • Postgresql数据库命令行、数据库、表空间操作「终于解决」

    Postgresql数据库命令行、数据库、表空间操作「终于解决」一、查看数据库和表 列出数据库: 您可以使用以下任何一个命令列出PostgreSQL中的所有数据库。 postgres=# list postgres=# l 列出数据库中所有表: 要列出任何数据库…

    2023-02-09
    150
  • MySQL数据库从入门到放弃[通俗易懂]

    MySQL数据库从入门到放弃[通俗易懂]MySQL数据库从入门到放弃 193 数据库基础 194 初识MySQL 195 Windows安装MySQL 196 Linux安装MySQL 197 Mac安装MySQL 198 MySQL存储引

    2023-04-14
    142
  • Python工程师的职责与技能

    Python工程师的职责与技能Python是一种高级编程语言,被广泛应用于Web应用程序开发、科学计算、数据分析和人工智能等领域。Python工程师是一种非常受欢迎的职业,因为Python具有简单易学的特点,使得工程师们可以快速开发出高效可靠的软件程序。在这篇文章中,我们将介绍Python工程师的职责与技能,帮助读者更好地了解这一职业以及如何成为一名优秀的Python工程师。

    2024-06-13
    52

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注