用于数据处理的分布式计算系统和方法以及存储介质技术方案

技术编号:31822192 阅读:52 留言:0更新日期:2022-01-12 12:37
本申请涉及用于数据处理的分布式计算系统和方法以及存储介质。总体上,本公开描述了用于在分布式计算系统中应用分布式流水线模型以使分布式计算系统的处理节点根据具有在流水线语句内指定的执行拓扑的分布式流水线来处理数据以执行任务的技术。来处理数据以执行任务的技术。来处理数据以执行任务的技术。

【技术实现步骤摘要】
用于数据处理的分布式计算系统和方法以及存储介质
[0001]本申请要求于2020年7月9日提交的美国临时申请第63/049,920号的权益,其全部内容通过引用并入本文。


[0002]本公开涉及一种计算系统,并且具体地,涉及在计算系统内的分布式处理。

技术介绍

[0003]在计算设备上执行的节点可以相互连接以形成网络化的分布式计算系统来交换数据和共享资源。在一些示例中,在计算设备上执行的多个节点相互连接以共同执行一个或多个应用程序以执行作业。节点可以包括裸金属服务器、虚拟机、容器、进程和/或具有用于分布式计算系统的数据处理能力的其他执行元件。每个节点可以单独地为分布式计算系统执行各种操作,诸如收集、处理和导出数据,并且节点可以彼此通信以分发处理的数据。

技术实现思路

[0004]通常,本公开描述了用于在分布式计算系统中应用分布式流水线(pipeline)模型以使分布式计算系统的处理节点根据具有在流水线语句内指定的执行拓扑的分布式流水线来处理数据以执行任务的技术。例如,计算设备可以接收用于任务的流水线语句。流水线语句包括多个阶段语句,每个阶段语句描述要执行一个或多个操作的集合的对应的阶段。一个或多个阶段语句还为对应的阶段指定拓扑信息。例如,阶段语句可以指定对应的阶段包括要由分布式计算系统的指定的一个或多个处理节点执行的子流水线。阶段语句可以指定被指定的一个或多个处理节点执行子流水线的一个或多个操作。在一些情况下,阶段语句还指定下一阶段,该阶段将接收用于阶段语句的对应的阶段的输出。在一些情况下,流水线语句是人类可读的文本,以允许运算符容易地在阶段内布置操作,并在流水线语句内布置阶段,以指定具有由分布式计算系统执行的任务的总体执行拓扑的分布式流水线。接收流水线语句的计算设备可以是或可以执行分布式计算系统的处理节点中的一个。在这种情况下,该处理节点可以被称为原点。
[0005]计算设备处理流水线语句以使分布式计算系统的处理节点根据在流水线语句内指定的执行拓扑来处理数据。例如,计算设备可以向处理节点输出单独的命令、流水线语句中的至少一些、阶段信息、配置数据或其他控制信息,以使节点根据执行拓扑来处理数据。此后,处理节点开始执行用于在阶段内的操作的运算符,并使用诸如标准流(stdin、stdout)或队列的输入/输出信道将运算符绑定在一起。例如,运算符可以是进程,并且绑定在阶段内的运算符可以被称为子流水线。如果阶段语句将下一阶段指定为对应的阶段的最终操作,则执行对应的阶段的一个或多个处理节点可以将该阶段的最终操作绑定到被配置为执行下一阶段的一个或多个处理节点。处理节点之间的多个阶段的绑定操作可以包括在处理节点之间创建通信信道,该通信信道在诸如套接字的网络上操作。从一个阶段到下一阶段的节点间绑定可以使通过该阶段的最终操作输出的数据扇出(即,由一个处理节点输
出并由多个处理节点接收)或扇入(即,由多个处理节点输出并由一个处理节点接收)到下一阶段。
[0006]在一个示例中,流水线语句可以包括第一阶段和第二阶段,第一阶段指定要由多个处理节点中的每一个处理节点来处理的一个或多个操作,第二阶段指定要由处理节点中的扇入节点(诸如原点)来处理的一个或多个操作。多个处理节点可以为第一阶段生成第一子流水线,第一子流水线绑定第一阶段的运算符以处理数据以执行对应的操作,然后将运算符的结果发送到第二阶段。作为一个示例,每个处理节点可以为其本地运算符编排队列和接口,并生成发送操作以将其本地运算符的结果发送到扇入节点。扇入节点可生成用于第二阶段的第二子流水线,该第二子流水线绑定第二阶段的运算符并接收由多个处理节点输出的第一阶段的操作的结果。作为一个示例,扇入节点可以为其本地运算符编排队列和接口,以首先接收第一阶段的操作的结果,并且还执行其本地运算符以执行第二阶段的操作。
[0007]这里描述的技术可以提供一个或多个技术优点,该技术优点提供至少一个实际应用。例如,技术可以扩展传统的单设备Unix样式的流水线模型以实现分布式流水线模型,其中分布式计算系统的处理节点至少部分地独立地为总体分布式流水线设置子流水线,并根据在流水线语句中指定的执行拓扑处理数据以执行任务。通过自动生成分布式流水线以根据拓扑绑定将处理的操作,技术可以允许用户以相对简单的流水线语句的形式指定用于分布式流水线的所有操作和拓扑,从而避免通常复杂和繁琐的任务,即不仅用将执行的操作配置分布式计算系统的每个节点,而且用节点之间的拓扑的节点间通信信道配置分布式计算系统的每个节点。指定的拓扑可以利用分布式计算系统的处理节点内和处理节点间的并行性,以至少部分地并发地执行针对在流水线语句中的阶段限定的子流水线的操作。
[0008]在一些示例中,一种分布式计算系统,包括多个被配置为获得流水线语句的计算设备,流水线语句包括第一阶段语句,该第一阶段语句限定包括第一子流水线的第一阶段,并指定第二阶段作为第一子流水线的结果数据的接收方,流水线语句还包括第二阶段语句,该第二阶段语句将第二阶段限定为包括第二子流水线,其中多个计算设备包括第一处理节点,该第一处理节点被配置为,至少基于通过处理流水线语句生成的第一流水线设置规范,配置第一处理节点中的第一子流水线,以将第一处理节点中的第一子流水线的结果数据发送到第二处理节点,其中多个计算设备包括第二处理节点,该第二处理节点被配置为至少基于通过处理流水线语句生成的第二流水线设置规范,配置第二处理节点中的第二子流水线,并将第一处理节点中的第一子流水线的结果数据输入到第二处理节点中的第二子流水线。
[0009]在一些示例中,一种分布式计算系统包括多个被配置为执行相应协作程序的设备,以:接收流水线语句,其中流水线语句包括多个阶段,其中每个阶段包括一个或多个要由多个设备中的一个或多个设备处理的操作,并且其中阶段的一个或多个操作将在不同的拓扑中处理,并且生成分布式流水线的子流水线以绑定阶段的一个或多个操作并从阶段的最终阶段输出结果数据。
[0010]在一些示例中,方法包括:由通过网络连接的多个设备中的设备接收包括多个阶段的命令,其中阶段中的每一个包括要由多个设备中的一个或多个设备来处理的一个或多个操作,并且其中阶段中的一个或多个操作将在不同的拓扑中处理;由设备并向多个设备
中的其他设备分发命令,使得多个设备中的其他设备各自生成分布式流水线的第一子流水线,其中第一子流水线绑定在不同的拓扑的第一拓扑中处理的一个或多个操作;以及由设备生成分布式流水线的第二子流水线,其中第二子流水线绑定在不同的拓扑的第二拓扑中处理的一个或多个操作。
[0011]在一些示例中,方法包括:由包括第一处理节点和第二处理节点的分布式计算系统获得流水线语句,该流水线语句包括第一阶段语句,该第一阶段语句限定包括第一子流水线的第一阶段,并且将第二阶段指定为第一子流水线的结果数据的接收方,该流水线语句还包括第二阶段语句,该第二阶段语句限定包括第二子流水线的第二阶段语句;至少基于从流水线语句生成的第一流水线设置规范,配置第一处理节点中的第一子流水线,以将第一处理节点中的第本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于数据处理的分布式计算系统,包括:多个计算设备,被配置为获得流水线语句,所述流水线语句包括第一阶段语句,所述第一阶段语句限定第一阶段以包括第一子流水线并且将第二阶段指定为所述第一子流水线的结果数据的接收方,所述流水线语句还包括第二阶段语句,所述第二阶段语句限定所述第二阶段以包括第二子流水线,其中,所述多个计算设备包括第一处理节点,所述第一处理节点被配置为至少基于通过处理所述流水线语句生成的第一流水线设置规范,配置所述第一处理节点中的所述第一子流水线,以将所述第一处理节点中的所述第一子流水线的结果数据发送到第二处理节点,以及其中,所述多个计算设备包括所述第二处理节点,所述第二处理节点被配置为至少基于通过处理所述流水线语句生成的第二流水线设置规范,配置所述第二处理节点中的所述第二子流水线,并将所述第一处理节点中的所述第一子流水线的结果数据输入到所述第二处理节点中的所述第二子流水线。2.根据权利要求1所述的分布式计算系统,其中,所述第一子流水线包括一个或多个第一操作,以及其中,所述第二子流水线包括一个或多个第二操作。3.根据权利要求1所述的分布式计算系统,还包括:编译器计算设备,被配置为处理所述流水线语句以生成所述第一流水线设置规范和所述第二流水线设置规范。4.根据权利要求3所述的分布式计算系统,其中,所述编译器计算设备包括所述第二处理节点。5.根据权利要求1所述的分布式计算系统,其中,所述流水线语句包括人类可读的文本。6.根据权利要求1

5中任一项所述的分布式计算系统,其中,所述第二阶段语句包括用于所述第二阶段的阶段标识符,以及其中,为了将第二阶段指定为所述第一子流水线的结果数据的接收方,所述第一阶段语句包括作为所述第一子流水线的操作的所述第二阶段的所述阶段标识符,以及其中,所述分布式计算系统被配置为基于在所述第一阶段语句中包括的所述第二阶段的所述阶段标识符,生成所述第一流水线设置规范,以配置所述第一处理节点中的所述第一子流水线,以将所述第一处理节点中的所述第一子流水线的结果数据发送到所述第二处理节点。7.根据权利要求1、2或5中任一项所述的分布式计算系统,其中,所述多个计算设备包括编译器计算设备,所述编译器计算设备被配置为获得所述流水线语句并处理所述流水线语句以生成所述第一流水线设置规范和所述第二流水线设置规范。8.根据权利要求7所述的分布式计算系统,其中,所述编译器计算设备包括所述第二处理节点。9.根据权利要求1

5中任一项所述的分布式计算系统,其中,所述第一子流水线包括一个或多个第一操作,以及
其中,为了配置所述第一子流水线,所述第一处理节点被配置为实例化用于所述一个或多个第一操作的相应的运算符,并且使用输入/输出信道绑定至少一对所述运算符。10.根据权利要求1

5中任一项所述的分布式计算系统,其中,所述第一子流水线包括一个或多个第一操作,其中,为了配置所述第一子流水线,所述第一处理节点被配置为实例化用于所述一个或多个第一操作的相应的运算符,以及其中,所述运算符的最终运算符包括发送运算符,用于经由通信信道将所述第一子流水线的结果数据发送到所述第二处理节点。11.根据权利要求1

5中任一项所述的分布式计算系统,还包括:第三处理节点,被配置为至少基于从所述流水线语句生成的第三流水线设置规范,配置所述第三处理节点中的所述第一子流水线,以将所述第三处理节点中的所述第一子流水线的结果数据发送到所述第二处理节点。12.根据权利要求1

5中任一项所述的分布式计算系统,其中,所述第二处理节点被配置为至少基于从所述流水线语句生成的所述第二流水线设置规范,配置所述第二处理节点中的所述第一子流水线,以将所述第二处理节点中的所述第一子流水线的结果数据...

【专利技术属性】
技术研发人员:雷蒙德
申请(专利权)人:威讯柏睿数据科技北京有限公司
类型:发明
国别省市:

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

1