当前位置: 首页 > 专利查询>SAP欧洲公司专利>正文

对数据管道采用数据沿袭捕获的回滚恢复制造技术

技术编号:35283986 阅读:29 留言:0更新日期:2022-10-22 12:27
公开了对数据管道采用数据沿袭捕获来执行回滚恢复的计算机可读介质、方法和系统。中间操作符从在外部输入数据源读取数据的源操作符接收摄取的输入事件。然后,中间操作符将关于中间输入事件的信息的记载到中间操作符输入日志,将记载的中间输入事件信息指定为未完成的。然后,中间操作符处理与中间输入事件相关联的数据,并且更新中间输入日志条目,将中间输入日志条目设置为用于曾经被消耗以产生一个或多个中间输出事件的中间输入事件的完成记载状态指定。然后,中间操作符向后续操作符传输中间输出事件。执行垃圾收集,以将完成条目从中间操作符输出日志中移除。最后,基于从后续操作符接收到恢复消息,重新发送相应的中间输出事件。的中间输出事件。的中间输出事件。

【技术实现步骤摘要】
对数据管道采用数据沿袭捕获的回滚恢复


[0001]实施例总体上涉及数据管道(pipeline)中的准确且可重复的回滚恢复(rollback recovery)。更具体地,实施例涉及结合分布式数据管道执行的采用高效细粒度的数据沿袭捕获(data lineage capture)的回滚恢复。

技术介绍

[0002]数据管道支持对大量的有界数据和无界数据的处理。通常地,数据管道从数据源摄取(ingest)数据,转换数据,并且支持后续数据存储或进一步处理数据。在理想情况下,从用户角度来看,分布式数据管道可以被视为单个应用实体。因此,隐藏与数据管道的分布式执行相关的技术细节(包括在数据管道内的组件的潜在故障)成为围绕数据管道的执行基础设施的责任。一个需求是能够从与进程之间的通信相关的系统故障中恢复,其中,系统故障通常是消息丢失、或者是在进程执行期间进程的一些执行状态丢失。当故障发生时,必须应用回滚恢复协议来还原与较早的数据管道执行时间点相对应的数据管道的正确状态,使得数据管道执行可以继续进行。如果后续继续进行的数据管道执行的结果将与无故障执行相同,则还原的是正确状态。
[0003]为了建立准确的数据管道的回滚恢复,有必要确定数据管道在执行期间的特定时间的状态。两个主要决定影响回滚恢复算法的设计:(i)构建数据管道的状态,这涉及几个问题,诸如:要捕获什么状态,在什么时候和在哪里捕获该状态,以及(ii)当从故障中恢复时如何还原正确状态。算法的有效性取决于参数,诸如捕获状态所需的空间开销、存储状态所产生的延迟、可能对整个管道执行造成的瓶颈、以及在恢复之后必须完成的冗余处理量,其中,当给定故障发生时,冗余处理量会影响数据管道的总响应时间。恢复协议必须满足的基本要求是不需要数据管道的开发者或应用的干预来恢复发生故障的数据管道:系统根据每个操作符(operator)必须遵守的一些预定义策略来自动维护管道执行的状态,使得数据管道可以从故障中自动恢复。
[0004]与分布式数据管道相关联的另一个问题是捕获数据管道执行的细粒度数据沿袭所需的计算复杂度和潜在的大存储空间。数据沿袭描述计算的各个输入数据项和输出数据项之间的关系。数据项可以像表中的记录(record)一样精细。例如,给定数据管道中的错误输出记录,检索曾经用于生成错误记录的中间记录或输入记录是有帮助的。这有助于调查错误的根本原因(例如,到数据管道的不良输入数据、或者操作中的错误计算)。类似地,标识曾经受损坏的输入记录影响的输出记录可以有助于防止错误计算。因此,需要一种准确且可重复的回滚恢复机制,其中,该回滚恢复机制还可以提供结合分布式数据管道执行的高效细粒度的数据沿袭捕获,从而解决上述问题。

技术实现思路

[0005]所公开的实施例通过提供存储计算机可执行指令的一个或多个非暂时性计算机可读介质来解决上述问题,其中,计算机可执行指令在由处理器执行时,执行一种用于对数
据管道采用数据沿袭捕获来执行回滚恢复的方法,该方法包括:在中间操作符处,从源操作符接收由源操作符通过对外部输入数据源进行读取操作而摄取的一个或多个输入事件;将关于一个或多个中间输入事件的信息记载(log)到与中间操作符相关联的中间操作符输入日志(log),其中,一个或多个中间输入事件被记载有未完成记载状态指定;处理与一个或多个中间输入事件相关联的数据;更新一个或多个中间输入日志条目;将一个或多个中间输入日志条目设置为与曾经被消耗以产生一个或多个中间输出事件的一个或多个中间输入事件的已消耗子集合相对应的完成记载状态指定;向一个或多个后续操作符传输一个或多个中间输出事件;以及,基于从一个或多个后续操作符接收到恢复消息,重新发送保留在中间输出日志中的相对应的中间输出事件。
[0006]提供本
技术实现思路
是为了以简化形式介绍一系列构思,其中,这些构思将在下面的详细描述中进行进一步描述。本
技术实现思路
既不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。从下面对实施例和附图的详细描述将清楚地看出本教导的其他方面和优点。
附图说明
[0007]下面参考所附的附图详细描述实施例,其中:
[0008]图1描绘了用于特定实施例的示例性硬件平台;
[0009]图2描绘了用于执行特定实施例的系统的组件;
[0010]图3A描绘了根据各种实施例的示例性数据管道;
[0011]图3B描绘了示出根据各种实施例的数据沿袭捕获的示例性框图;
[0012]图3C描绘了示出根据各种实施例的在数据管道的处理中涉及的组件的示例性框图;
[0013]图4A描绘了示出根据各种实施例的数据沿袭路径和分析点的示例性数据管道;
[0014]图4B描绘了示出根据各种实施例的将监视代理注入到数据管道中的示例性数据管道;
[0015]图4C描绘了示出根据各种实施例的采用监视代理的数据管道执行的部分数据管道;
[0016]图5描绘了示出根据各种实施例的数据沿袭应用的操作的示例性框图;
[0017]图6描绘了示出根据各种实施例的示例性回滚恢复机制的操作的示例性数据流图;以及
[0018]图7描绘了示出根据各种实施例的方法的操作的示例性流程图。
[0019]附图并不将本专利技术限制于本文公开和描述的特定实施例。附图不一定是按比例绘制的,而是强调清楚地示出本公开的原理。
具体实施方式
[0020]在一些实施例中,公开了一种使得能够在大规模可扩展的分布式架构中以数据管道的形式提供和执行应用的数据平台。在一些实施例中,分布式架构是结合无服务器的云服务环境来提供的。结合当前实施例公开的与关联数据管道相关的编程概念是以基于流的编程范例为基础的。如本文所描述的,可以将“数据管道”表示为黑盒组件的有向图,以下称
为“操作符”,其中,“操作符”通过将操作符的“输出端口”与操作符的“输入端口”相关联的连接来交换信息数据包(也可以互换地称为“消息”或“事件”)。操作符表示在数据驱动模式下执行(即只要其必要的输入在其输入端口上可用就会执行)的异步过程。操作符可以进行分组,以在一个执行环境中(例如,在相同的应用容器内)一起执行。一组操作符可以被配置为以专用的重数(multiplicity)运行,也就是说,该组操作符可以被复制到多个实例中,每个实例在其自己的节点或执行环境中运行。
[0021]本文描述的是几种类型的操作符:(i)将数据摄取到数据管道中并且不具有前导(predecessor)操作符的源操作符(它们没有输入连接);(ii)从外部系统读取数据并在其输出端口上输出数据的读取器(reader)操作符(它们可以具有输入端口);(iii)获取中间结果并产生中间结果的中间操作符;以及(iv)将数据写入到外部系统中的写入器(writer)操作符。源操作符可以是读取器操作符,但是某些读取器操作符不是源操作符,因为它们具有一个或多个连接的输入端口。中间操作符可以是写入器操作符,但是某些写入器操作符不是中间操作符,因为它们没有输出连接。<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.存储计算机可执行指令的一个或多个非暂时性计算机可读介质,其中,当由处理器执行时,计算机可执行指令执行一种对数据管道采用数据沿袭捕获来执行回滚恢复的方法,所述方法包括:在中间操作符处,从源操作符接收由源操作符通过对外部输入数据源进行读取操作而摄取的一个或多个输入事件;将关于一个或多个中间输入事件的信息记载到与中间操作符相关联的中间操作符输入日志,其中,所述一个或多个中间输入事件被记载有未完成记载状态指定;处理与一个或多个中间输入事件相关联的数据;通过将一个或多个中间输入日志条目设置为与曾经被消耗以产生一个或多个中间输出事件的、一个或多个中间输入事件的已消耗子集合相对应的完成记载状态指定,来更新一个或多个中间输入日志条目;向一个或多个后续操作符传输一个或多个中间输出事件;以及基于从一个或多个后续操作符接收到恢复消息,重新发送来自中间输出日志的相应的中间输出事件。2.根据权利要求1所述的非暂时性计算机可读介质,所述方法还包括:对中间操作符输出日志执行后台垃圾收集,其中,已经被更新以反映完成记载状态指定的已更新的中间输入日志事件从中间操作符输出日志中被移除。3.根据权利要求1所述的非暂时性计算机可读介质,所述方法还包括:建立一个或多个数据沿袭分析起始点和一个或多个数据沿袭分析目标点。4.根据权利要求3所述的非暂时性计算机可读介质,其中,通过将一个或多个中间输入日志条目设置为完成记载状态指定来更新一个或多个中间输入日志条目包括:将一个或多个中间输入日志条目设置为完成日志保留状态指定。5.根据权利要求4所述的非暂时性计算机可读介质,其中,对中间操作符输出日志执行后台垃圾收集包括:保留具有完成日志保留状态指定的一个或多个中间输入日志条目。6.根据权利要求3所述的非暂时性计算机可读介质,所述方法还包括:将监视代理操作符插入到数据管道中,以将感兴趣的数据沿袭的输出事件与剩余的输出事件分开;以及在插入的监视代理操作符的下游建立一个或多个数据沿袭分析起始点。7.根据权利要求6所述的非暂时性计算机可读介质,所述方法还包括:遍历中间操作符输入日志和中间操作符输出日志,以标识在一个或多个数据沿袭分析起始点和一个或多个数据沿袭分析目标点之间的中间操作符处的中间输入值和中间输出值,以确定一个或多个数据沿袭分析目标点的初始值。8.一种对数据管道采用数据沿袭捕获来执行回滚恢复的方法,所述方法包括:在中间操作符处,从源操作符接收由源操作符通过对外部输入数据源进行读取操作而摄取的一个或多个输入事件;将关于一个或多个中间输入事件的信息记载到与中间操作符相关联的中间操作符输入日志,其中,所述一个或多个中间输入事件被记载有未完成记载状态指定;处理与一个或多个中间输入事件相关联的数据;通过将一个或多个中间输入日志条目设置为与曾经被消耗以产生一个或多个中间输
出事件的、一个或多个中间输入事件的已消耗子集合相对应的完成记载状态指定,来更新一个或多个中间输入日志条目;向一个或多个后续操作符传输一个或多个中间输出事件;以及基于从一个或多个后续操作符接收到恢复消息,重新发送来自中间输出日志的相应的中间输出事件。9.根据权利要求8所述的方法,还包括:对中间操作符输出日志执...

【专利技术属性】
技术研发人员:E西蒙CS维埃拉德索扎
申请(专利权)人:SAP欧洲公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1