Data Artisans发布支持ACID事务的流式处理框架Streaming Ledger

data Artisans宣布推出Streaming Ledger,它扩展了Apache Flink,提供了跨表、键和事件流执行可序列化ACID事务的功能。这项正在申请专利的技术是Flink的专有附加技术,超越了当前一次只能在一个键上实现一致性的标准。

在发布Streaming Ledger之前,流式处理框架(如Flink和Spark)只提供一次性语义,只能在单个键上实现一致性。然而,随着data Artisans Streaming Ledger的发布,Flink现在允许跨越事件状态边界,同时仍然能够保证ACID事务。ACID是事务系统关键组件的首字母缩写。

原子性:事务以原子方式应用所有更改,事务函数要么执行全部修改或不执行任何修改。

一致性:事务函数将表从一个一致状态带入另一个一致状态。

隔离:执行事务时,就好像当前事务是在表上运行的唯一事务。

持久性:事务所做的更改是持久的,永远不会丢失。

根据ACID原则实现的事务作为单个操作执行,要么全部完成要么全部失败。这确保了数据一致性,即使是发生了中断或应用程序错误。ACID事务的一个常用例子是将资金从一个银行账户转移到另一个银行账户。虽然Streaming Ledger是流式处理框架中第一个实现ACID事务的,但ACID事务已经在SQL Server和Oracle等关系数据库系统中存在了很长时间。

来源:Data Artisans Streaming Ledger白皮书

Artisans公司由开源流式处理框架Apache Flink的原作者创建,提供了一个流式处理基础设施,其中包括数据Artisans Platform,也称为dA平台。该平台由Apache Flink、dA应用程序管理器和Streaming Ledger组成。该公司专注于流式处理领域,WSO2研究副总裁Srinath Perera将其描述为一种大数据技术,允许查询数据流并基于信息做出决策。

data Artisans还发布了一份白皮书,介绍了Streaming Ledger的细节和架构。例如,我们发现该架构由四个基本构建块组成。用于维护应用程序状态的表、用于更新表的事务函数、驱动事务的事务事件流和根据流处理成功或失败发出事件的可选结果流。此外,在事务中修改表时,表与并发更改是相互隔离的。因此,即使是跨多个流,也可以确保数据一致性。

来源:Data Artisans Streaming Ledger白皮书

Data Artisans还提供了一个GitHub存储库,可以从源代码构建Streaming Ledger或从Maven Central中获取它。此外,存储库还提供了几个入门示例,如SimpleTrade示例,演示了如何使用Streaming Ledger。

查看英文原文Data Artisans Announces Serializable ACID Transactions on Streaming Data

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址http://www.infoq.com/cn/news/2018/09/data-artisans-acid-streaming
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券