元组恢复的制作方法

文档序号:9510384阅读:428来源:国知局
元组恢复的制作方法
【专利说明】
【背景技术】
[0001]数据可以作为数据流而被发送和/或接收。数据流可以包括可逐元组发送的数据的连续流。可以按照特定的次序来处理元组的数据流。
【附图说明】
[0002]图1是根据本公开内容的用于元组恢复的系统的示例的图示。
[0003]图2是根据本公开内容的用于元组恢复的流程图的示例的图示。
[0004]图3是根据本公开内容的用于元组恢复的流程图的示例的图示。
[0005]图4是根据本公开内容的用于元组恢复的处理资源和存储器资源的示例的图示。
[0006]图5是根据本公开内容的用于元组恢复的方法的示例的流程图。
[0007]图6是根据本公开内容的用于元组恢复的方法的示例的流程图。
【具体实施方式】
[0008]数据系统可以包括数据的连续流(例如,流送(streaming)系统)。示例流送系统可以包括可实施并行处理(例如,同时实施对数据流的各部分的处理)的分布式流送系统。从特定源向特定目的地传送数据流(例如,数据流动(dataflow))的顺序和/或次序可以被表示为具有节点和边的图形结构。节点可以包括能够在流送系统上发送、接收和/或转发数据流的电子设备和/或计算机可读指令。在一些示例中,电子设备可以包括多个节点。
[0009]数据流可以包括数据事件(例如元组)的序列。元组可以被按照特定次序从一个节点发送至另一个节点。每个节点可以包括接收和发送元组的任务(例如,实例)。数据流可以包括操作。操作可以包括用于实施特定功能的计算机可读指令。操作的执行可以被划分成多个间隔(例如,状态)。操作可以包括并行地运行以实施功能的多个任务。
[0010]任务可以监视节点处元组向任务中和从任务向外的流动。依赖于数据的流动,任务可以是上游的或下游的。例如,第一任务(例如,上游任务)可以接收第一元组。第一任务(例如,上游任务、源任务)可以处理第一元组并将第一元组发送至第二任务(例如,下游任务、目标任务)。第二任务(例如,下游任务、目标任务)然后可以变成处于第二任务下游的第三任务的上游任务。任务可以包括周期,其中每个周期包括多个操作。该操作可以包括接收元组、处理接收到的元组、更新执行状态以及将所得到的元组发射至下游任务。
[0011]任务可以逐元组地处理数据流中的元组。元组可能需要被任务处理一次。元组可以被顺序地处理,并且序列中在前的元组可能需要在在后的元组可以被发送至任务之前被任务处理。任务可以保存所接收和发送的元组的记录。一些数据流可以将整个流送过程视作单个操作。该方法可能在故障发生的情况下经历中间结果的丢失。
[0012]一些数据流可以使下游任务向上游任务发送元组已被接收的应答。在这样的数据流中,在后的元组可能在应答被接收到之前不被发送。如果第一元组从未被接收到,则可以不发送第二元组。如果应答从未被接收到,则可以不发送第二元组。应答方法可能在数据流中造成等待时间。
[0013]相比之下,本公开内容的示例可以包括从上游节点向下游节点发送元组。当元组被发送和/或接收时,节点的状态(例如,已发送和/或接收什么元组)可以被记录(例如,被进行检查点处理(checkpointed))。维持对最后发送和/或接收的元组的记录可以允许在节点故障的情况下以较小的间隔恢复(例如,恢复中间结果而不恢复整个流送过程)。此外,可以将元组从上游节点发送至下游节点,而不等待顺序上在先的元组已在下游节点处被接收的应答。例如,可以将第一元组从上游节点发送至下游节点。可以在上游节点未接收到第一元组在下游节点处被接收的应答的情况下将第二元组从上游节点发送至下游。
[0014]数据的流送可以通过在未首先接收到继续进行的应答的情况下发送数据来避免系统中的等待时间。由于故障较不频繁,因此对于每个所发送的元组来说应答不是必要的。当故障确实发生时,请上游节点重新发送缺失元组的过程可以避免最初未接收到的元组的丢失。
[0015]图1是根据本公开内容的用于元组恢复的系统100的示例的图示。系统100可以包括在数据通道104上向下游任务106 (例如,下游节点)发送数据(例如,元组)的上游任务102(例如,上游节点)。数据通道104可以包括上游节点与下游节点之间的通信链路。数据通道104可以被用来按照顺序的次序发送来自数据流的元组。下游任务106可以包括用于存储从上游任务102接收到的数据的队列108 (例如,缓冲器、数据存储装置)。
[0016]下游任务106可以在消息传递通道110上向上游任务102发送消息。消息传递通道110可以包括上游节点与下游节点之间的通信链路。消息传递通道110可以被用来发送重新发送元组的请求,发送元组被接收的应答,以及重新发送所请求的元组。消息传递通道可以被用来基于重新发送元组的请求来发送不按次序的元组。消息可以包括重新发送缺失数据(例如,元组)的请求(“ASK”)。上游任务102可以在消息传递通道110上向下游任务106重新发送所请求的缺失数据。当下游任务106在数据通道104和/或消息传递通道110上接收到数据时,下游任务可以在消息传递通道110上发送指示数据被接收的应答(“ACK”)。
[0017]可以通过使用消息传递通道作为虚拟通道来在逻辑上跟踪在消息传递通道110上发送的数据。虚拟通道可以允许由任务别名(例如,任务标识符)标识任务。任务别名可以被用于在逻辑上推断、跟踪和传送通道信息。
[0018]可以按照顺序的次序在数据通道104上从上游任务102向下游任务106发送数据(例如,元组)。例如,第一元组可以第一个被发送,并且第二元组可以第二个被发送。数据(例如,元组)可以包括消息标识符。消息标识符可以包括顺序信息。顺序信息可以指示数据(例如,元组)的次序。例如,与第一元组相关联的第一消息标识符可以指示第一元组应当第一个被发送和/或第一个被处理。此外,与第二元组相关联的第二消息标识符可以指示第二元组应当第二个被发送和/或第二个被处理。
[0019]数据(例如,元组)的顺序可以在数据不按次序时指示缺失数据。例如,可以将顺序上第一个元组从(例如,与上游节点相关联的)上游任务102发送至(例如,与下游节点相关联的)下游任务106。在一些示例中,任务可以与节点相关联。在一些示例中,多个任务可以与节点相关联。可以将顺序上第三个元组从上游任务102发送至下游任务106。如果下游任务106没有在第一个元组之后以及在第三个元组之前接收到顺序上第二个元组,则可以识别缺失元组。可以通过从下游任务向上游任务发送重新发送缺失元组的请求,来在消息传递通道110上请求所识别的缺失元组。
[0020]图2是根据本公开内容的用于元组恢复的流程图201的示例的图示。流程图201是任务可如何对元组的周期进行处理(例如针对其实施执行循环和/或操作)的示例。在220,任务可以使元组输入出队列(例如,如图1中的队列108图示的)。在222,可以检查元组的顺序次序。如果元组是重复元组(例如,接收到的元组中的信息已经在在先元组中被发送),则在226,不处理(例如,忽略)元组,并且可以在消息传递通道(例如,图1中的110)上向上游任务发送应答(“ACK”)。应答可以向上游任务(例如,图1中的102)指示上游任务可以从队列中释放与重复元组相关联的数据。
[0021]如果被发送至下游任务的元组不按次序228(例如,附加的元组原本应当在接收到的元组之前被发送,并因此是缺失的),则在230,下游任务可以发送请求(“ASK”)并且重新发送的元组可以被处理。对重新发送的元组的处理可以包括通过返回(例如,虚线箭头)到使输入出队列的第一操作(例如,在220)来经历执行的操作
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1