CN115118727B - 分布式计算架构的数据传输方法、装置、设备及存储介质 - Google Patents
分布式计算架构的数据传输方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115118727B CN115118727B CN202211029216.1A CN202211029216A CN115118727B CN 115118727 B CN115118727 B CN 115118727B CN 202211029216 A CN202211029216 A CN 202211029216A CN 115118727 B CN115118727 B CN 115118727B
- Authority
- CN
- China
- Prior art keywords
- data
- computing
- computing nodes
- data set
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 135
- 238000000034 method Methods 0.000 title claims abstract description 84
- 238000012546 transfer Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 16
- 238000004891 communication Methods 0.000 abstract description 8
- 238000013467 fragmentation Methods 0.000 description 19
- 238000006062 fragmentation reaction Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 19
- 238000004364 calculation method Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 239000012634 fragment Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012358 sourcing Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种分布式计算架构的数据传输方法、装置、设备及存储介质,属于通信技术领域。第一数据集的数据存储于数据发送方的N个计算节点中;数据接收方分配M个计算节点存储第一数据集的数据;方法包括:发送针对第一数据集的数据获取请求,数据获取请求包括M个计算节点分别对应的第一数据集的键取值范围;通过M个计算节点接收N个计算节点发送的第一数据集的数据;其中,M个计算节点中的第i计算节点接收的第一数据集的数据由N个计算节点中的至少一个计算节点发送;至少一个计算节点分别对应的第一数据集的键取值范围与第i计算节点对应的第一数据集的键取值范围存在交集。本申请能够实现分布式计算架构数据的高效传输和灵活传输。
Description
技术领域
本申请属于通信技术领域,尤其涉及一种分布式计算架构的数据传输方法、装置、设备及存储介质。
背景技术
随着云计算、大数据等技术的不断发展,数据规模不断增加,分布式计算技术得到了广泛应用。分布式计算的核心思想是:将庞大的数据计算任务,拆解成多个子任务并分发给计算集群内不同的计算节点并行执行,从而可以处理远远超过单机处理范围的数据量。
在多参与方的隐私计算领域,也需要采用分布式计算的方法来处理规模不断增加的数据。与传统的大数据处理技术不同,具有多参与方的隐私计算情景有如下的特殊性:隐私计算过程由多个异构的参与方共同参与,各个参与方之间是协作关系;在隐私计算的过程中,参与方之间需要在各自的计算集群之间(跨公网)传输大量的数据。因此,在设计多参与方的隐私计算分布式计算架构时,需要考虑在多个计算集群组成的复杂网络拓扑中,如何高效的从把数据从一个计算集群传输到另一个计算集群中。
发明内容
本申请实施例提供一种在分布式计算架构的数据传输方法、装置、设备及存储介质,能够实现多参与方的计算集群之间数据的高效传输和灵活传输。
第一方面,本申请实施例提供一种分布式计算架构的数据传输方法,应用于数据接收方,所述数据接收方用于从数据发送方接收第一数据集;其中,所述第一数据集的数据存储于所述数据发送方的N个计算节点中;所述数据接收方分配M个计算节点存储所述第一数据集的数据,N和M为正整数;
所述方法包括:
向所述数据发送方发送针对所述第一数据集的数据获取请求,所述数据获取请求包括所述M个计算节点分别对应的所述第一数据集的键取值范围;
通过所述M个计算节点接收所述N个计算节点发送的所述第一数据集的数据;
其中,所述M个计算节点中的第i计算节点接收的所述第一数据集的数据由所述N个计算节点中的至少一个计算节点发送,i的取值范围为1至M,且i为正整数;所述N个计算节点中的至少一个计算节点分别对应的所述第一数据集的键取值范围与所述第i计算节点对应的所述第一数据集的键取值范围存在交集;每个所述计算节点对应的所述第一数据集的键取值范围用于指示其负责存储的所述第一数据集的数据。
第二方面,本申请实施例提供一种分布式计算架构的数据传输方法,应用于数据发送方,所述数据发送方用于向数据接收方发送第一数据集;其中,所述第一数据集的数据存储于所述数据发送方的N个计算节点中;所述数据接收方分配M个计算节点存储所述第一数据集的数据,N和M为正整数;
所述方法包括:
接收所述数据接收方发送的针对所述第一数据集的数据获取请求,所述数据获取请求包括所述M个计算节点分别对应的所述第一数据集的键取值范围;
通过所述N个计算节点向所述M个计算节点发送所述第一数据集的数据;
其中,所述M个计算节点中的第i计算节点接收的所述第一数据集的数据由所述N个计算节点中的至少一个计算节点发送,i的取值范围为1至M,且i为正整数;所述N个计算节点中的至少一个计算节点分别对应的所述第一数据集的键取值范围与所述第i计算节点对应的所述第一数据集的键取值范围存在交集;每个所述计算节点对应的所述第一数据集的键取值范围用于指示其负责存储的所述第一数据集的数据。
第三方面,本申请实施例提供了一种分布式计算架构的数据传输装置, 应用于数据接收方,所述数据接收方用于从数据发送方接收第一数据集;其中,所述第一数据集的数据存储于所述数据发送方的N个计算节点中;所述数据接收方分配M个计算节点存储所述第一数据集的数据,N和M为正整数;
所述装置包括:
第一发送模块,用于向所述数据发送方发送针对所述第一数据集的数据获取请求,所述数据获取请求包括所述M个计算节点分别对应的所述第一数据集的键取值范围;
第一接收模块,用于通过所述M个计算节点接收所述N个计算节点发送的所述第一数据集的数据;
其中,所述M个计算节点中的第i计算节点接收的所述第一数据集的数据由所述N个计算节点中的至少一个计算节点发送,i的取值范围为1至M,且i为正整数;所述N个计算节点中的至少一个计算节点分别对应的所述第一数据集的键取值范围与所述第i计算节点对应的所述第一数据集的键取值范围存在交集;每个所述计算节点对应的所述第一数据集的键取值范围用于指示其负责存储的所述第一数据集的数据。
第四方面,本申请实施例提供了一种分布式计算架构的数据传输装置,应用于数据发送方,所述数据发送方用于向数据接收方发送第一数据集;其中,所述第一数据集的数据存储于所述数据发送方的N个计算节点中;所述数据接收方分配M个计算节点存储所述第一数据集的数据,N和M为正整数;
所述装置包括:
第二接收模块,用于接收所述数据接收方发送的针对所述第一数据集的数据获取请求,所述数据获取请求包括所述M个计算节点分别对应的所述第一数据集的键取值范围;
第二发送模块,用于通过所述N个计算节点向所述M个计算节点发送所述第一数据集的数据;
其中,所述M个计算节点中的第i计算节点接收的所述第一数据集的数据由所述N个计算节点中的至少一个计算节点发送,i的取值范围为1至M,且i为正整数;所述N个计算节点中的至少一个计算节点分别对应的所述第一数据集的键取值范围与所述第i计算节点对应的所述第一数据集的键取值范围存在交集;每个所述计算节点对应的所述第一数据集的键取值范围用于指示其负责存储的所述第一数据集的数据。
第五方面,本申请实施例提供了一种分布式计算架构的数据传输设备,设备包括:处理器以及存储有计算机程序指令的存储器;所述处理器执行所述计算机程序指令时实现如第一方面或第二方面所述的分布式计算架构的数据传输方法。
第六方面,本申请实施例提供了一种计算机存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如第一方面或第二方面所述的分布式计算架构的数据传输方法。
第七方面,本申请实施例提供了一种计算机程序产品,其特征在于,所述计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备执行如第一方面或第二方卖弄所述的分布式计算架构的数据传输方法。
在本申请实施例中,由数据发送方将第一数据集发送至数据接收方,其中,第一数据集的数据存储于数据发送方的N个计算节点中,且数据接收方分配M个计算节点存储第一数据集的数据。在数据发送方向数据接收方发送第一数据集之前,数据接收方向数据发送方发送的针对第一数据集的数据获取请求中可以包括M个计算节点对应的第一数据集的键取值范围,以使数据发送方知晓M个计算节点中各计算节点负责存储的第一数据集的具体数据。数据发送方在接收到上述数据获取请求之后,可以通过N个计算节点直接向M个计算节点发送第一数据集的数据,其中,M个计算节点中各计算节点接收到的第一数据集的数据可以由N个计算节点中的与该计算节点对应的第一数据集的键取值范围存在交集的至少一个计算节点发送。如此,一方面,数据发送方和数据接收方可以分别灵活配置各自计算集群内用于数据传输的节点数量,从而可以提高数据传输的灵活度;另一方面,数据可以直接从数据发送方的计算节点发送到数据接收方的计算节点,且数据的传输发生在键取值范围存在交集的计算节点之间,从而可以降低网络拓扑的复杂性,提高数据传输的效率。可见,本申请实施例可以提高分布式计算架构数据传输的灵活性和效率,能够实现分布式计算架构数据的高效传输和灵活传输。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的分布式计算架构的示意图;
图2是本申请实施例提供的分布式计算架构的数据传输方法的流程图之一;
图3是本申请实施例提供的分布式计算架构的数据传输方法的流程图之二;
图4是本申请实施例提供的分布式计算架构的数据传输方法的流程图之三;
图5是本申请实施例提供的分布式计算架构的数据传输装置的结构图之一;
图6是本申请实施例提供的分布式计算架构的数据传输装置的结构图之二;
图7是本申请实施例提供的分布式计算架构的数据传输设备的结构图。
具体实施方式
下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本申请,而不是限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
与传统的大数据处理技术不同,具有多参与方的隐私计算情景有如下的特殊性:
传统的分布式计算架构一般会存在全局调度机制,掌握集群内所有计算节点的信息。而隐私计算过程由多个异构的参与方共同参与,各个参与方之间是协作关系。
隐私计算的过程中,参与方之间往往需要在各自的计算集群之间(跨公网)传输大量的数据,而传统的分布式架构往往只需要在同一个计算集群内传输数据。
因此,在设计多参与方的隐私计算分布式计算架构时,需要考虑在多个计算集群组成的复杂网络拓扑中,如何高效的从把数据从一个计算集群传输到另一个计算集群中。
相关的技术方案大致可以分为两类:以Spark等为代表的传统(单计算方)的分布式计算架构,和FATE (Federated AI Technology Enabler)等开源联邦学习框架。
在传统的分布式计算架构中,存在着数据从一个计算阶段转移到另一个计算阶段的需要。例如,在Spark中,不同计算阶段之间存在着“宽依赖”和“窄依赖”。当处理到与上一个计算阶段间存在“宽依赖”的新的计算阶段时,数据会从上个计算阶段对应的一组计算节点传输到新的计算阶段对应的新的一组计算节点。在这个过程中,Spark可以确保数据以高效、鲁棒的方式传输。但是这类计算框架的设计并未考虑过多参与方协作的情景,难以适应隐私计算的需要。
而FATE作为微众银行开源的联邦学习框架,可以通过其开源的eggroll引擎或执行分布式计算;不同参与方的eggroll引擎之间可以进行数据传输。虽然FATE可以支持多参与方的计算集群之间的数据传输,但是它有如下的问题:
只能将某个数据集在一个节点上的全量数据传输到另一个节点。FATE所支持的数据传输,是将一个节点上的某个位置的数据,全部传输到另一个节点上。在跨计算方数据传输的过程中,这就意味着,两个计算方参与数据传输的节点需要是完全对等的。而在实际应用中,因为各参与方所承担的计算量不同,或各方实际拥有的计算资源量不同,数据传输的双方往往采用不同数目的计算节点。当前FATE的框架很难在这一情境下保证数据的高效传输。
数据的传输包含了多次转发,并且传输过程中存在单点问题。FATE的数据传输需要其自带的rollsite的组件完成,每个计算方都是部署单个rollsite节点。数据传输的过程包含了这样几个步骤:本地eggroll节点 →本地rollsite节点 →对方rollsite节点 →对方eggroll节点。这样的传输过程,因为包含多次转发,以及数据在rollsite节点中编码和解码要消耗CPU资源,因而效率不高;同时rollsite节点成为了传输过程的瓶颈,有单点故障的隐患。
基于此,本申请实施例提供了一种适用于隐私计算领域的分布式计算架构的数据传输方法,能够实现多参与方的计算集群之间数据的高效传输和灵活传输。但需要说明地是,本申请实施例提供的分布式计算架构的数据传输方法不局限于多参与方的分布式计算架构之间的数据传输,可以适用于任意分布式计算架构之间的数据传输。
为了方便理解,以下对本申请实施例涉及的一些内容进行说明:
数据集:数据集合的简称。在本申请实施例中,每个数据集具有一个全局唯一的ID(dataset_id)。通常被分成若干分片(也可以称为数据片(data shard)),分散存储在一个计算集群的多个计算节点中。数据集的具体内容根据所进行的具体隐私计算任务而定,比如,它可能代表在模型训练的一次迭代完成后,从一个计算方需要发送给另一个计算方的加密后的梯度。第一数据集为本申请实施例中待传输的数据集合。
驱动器:负责隐私计算的具体算法逻辑,将整个隐私计算过程划分成若干计算阶段,将各计算阶段划分为若干个子任务并分发给计算节点执行。
计算资源池:一个计算集群内,所有计算节点的总和。通常它由更上层的资源管理调度框架控制,如kubernetes。
计算节点:分布式计算架构的一个组成部分,负责执行驱动器分发的任务,并存储数据集的数据,以及执行一个计算子任务。通常一个计算集群内会部署多个计算节点,从而达到并行计算的目的。
数据集分片策略:决定一个数据集以什么样的方式划分成多个分片并存储在不同计算节点上的策略。在本申请实施例中,多参与方对同一数据集的分片策略可以不同。数据集中的数据以键值对(key-value pair)的形式存储,数据集可以按照键(key)的范围进行分片。假设数据发送方共有N个计算节点存储第一数据集的数据,可以将第一数据集的key的取值范围划分成N个不相交取值区间(也可以称为取值范围),并将每个取值区间分配给一个计算节点,这样,每个计算节点对应一个第一数据集的key取值范围,计算节点负责存储key在其分配的取值区间的键值对。如:在第一数据集的key的取值范围为所有整数的情况下,这N个取值区间可能为(﹣∞,K1], (K1,K2],...(KN-1,﹢∞)。
数据发送方:本申请实施例中隐私计算过程中用于发送第一数据集的参与方。数据发送方对第一数据集的分片策略是将第一数据集分为N个分片,分别存储在N个计算节点中, N个计算节点中的各计算节点分别对应一个第一数据集的key取值范围。其中,N为正整数,可以理解地是,数据发送方包括的计算节点数量可以大于或等于N。
数据接收方:本申请实施例中隐私计算过程中用于接收第一数据集的参与方。数据接收方对第一数据集的分片策略是将第一数据集分为M个分片,分别存储在M个计算节点中, M个计算节点中的各计算节点分别对应一个第一数据集的key取值范围。其中,M为正整数,可以理解地是,数据接收方包括的计算节点数量可以大于或等于M。
在实际应用中,N个计算节点的选择,以及N个计算节点与N个分片的对应关系;M个计算节点的选择,以及M个计算节点与M个分片的对应关系,具体可根据数据发送方中各节点所能承担的计算量,以及实际应用的计算资源量确定,本申请实施例对此不作限定。
在本申请实施例中, N可以与M相等,也可以不等。另外,即使N与M相等,N个计算节点和M个计算节点中可以存在分别来自数据发送方和数据接收方的至少两个计算节点对应的第一数据集的key取值范围不同,即负责存储的第一数据集的数据不同。也就是说,本申请实施例不要求进行数据传输的数据发送方计算节点和数据接收方计算节点对等,从而可以提高数据传输和存储的灵活性。
另外,在本申请实施例的分布式计算架构中,数据发送方的数量可以大于或等于1,数据接收方的数量也可以大于或等于1。
为方便理解本申请实施例的分布式计算架构,可参见图1。在图1中,分布式计算架构包括参与方1和参与方2,其中,参与方1为数据发送方,包括一个驱动器和一个计算资源池,计算资源池包括N个计算节点。参与方1为数据接收方,包括一个驱动器和一个计算资源池,计算资源池包括M个计算节点。驱动器之间可以直接进行数据传输,计算节点之间可以直接进行数据传输。
下面结合附图,通过一些实施例及其应用场景对本申请实施例提供的分布式计算架构的数据传输方法进行详细地说明。
参见图2,图2是本申请实施例提供的分布式计算架构的数据传输方法的流程图之一。如图2所示,分布式计算架构的数据传输方法可以包括以下步骤:
步骤201、数据接收方向所述数据发送方发送针对所述第一数据集的数据获取请求,所述数据获取请求包括所述M个计算节点分别对应的所述第一数据集的key取值范围。
相应地,数据发送方接收所述数据接收方发送的针对所述第一数据集的数据获取请求,所述数据获取请求包括所述M个计算节点分别对应的所述第一数据集的key取值范围。
步骤202、数据接收方通过所述M个计算节点接收所述N个计算节点发送的所述第一数据集的数据。
相应地,数据发送方通过所述N个计算节点向所述M个计算节点发送所述第一数据集的数据。
其中,所述M个计算节点中的第i计算节点接收的所述第一数据集的数据由所述N个计算节点中的至少一个计算节点发送,i的取值范围为1至M,且i为正整数;所述N个计算节点中的至少一个计算节点分别对应的所述第一数据集的key取值范围与所述第i计算节点对应的所述第一数据集的key取值范围存在交集;每个所述计算节点对应的所述第一数据集的key取值范围用于指示其负责存储的所述第一数据集的数据。
本申请实施例的分布式计算架构的数据传输方法,由数据发送方将第一数据集发送至数据接收方,其中,第一数据集的数据存储于数据发送方的N个计算节点中,且数据接收方分配M个计算节点存储第一数据集的数据。在数据发送方向数据接收方发送第一数据集之前,数据接收方向数据发送方发送的针对第一数据集的数据获取请求中可以包括M个计算节点对应的第一数据集的key取值范围,以使数据发送方知晓M个计算节点中各计算节点负责存储的第一数据集的具体数据。数据发送方在接收到上述数据获取请求之后,可以通过N个计算节点直接向M个计算节点发送第一数据集的数据,其中,M个计算节点中各计算节点接收到的第一数据集的数据可以由N个计算节点中的与该计算节点对应的第一数据集的key取值范围存在交集的至少一个计算节点发送。如此,一方面,数据发送方和数据接收方可以分别灵活配置各自计算集群内用于数据传输的节点数量,从而可以提高数据传输的灵活度;另一方面,数据可以直接从数据发送方的计算节点发送到数据接收方的计算节点,且数据的传输发生在key取值范围存在交集的计算节点之间,从而可以降低网络拓扑的复杂性,提高数据传输的效率。可见,本申请实施例可以提高布式计算架构数据传输的灵活性和效率,能够实现分布式计算架构数据的高效传输和灵活传输。
以下对上述各步骤进行说明。
关于步骤201
具体实现时,数据获取请求可以包括第一数据集的标识和key取值范围,以表征该数据获取请求为针对第一数据集的数据获取请求。
数据接收方发送的数据获取请求用于:告知数据发送方,数据接收方的M个计算节点分别负责存储的第一数据集的数据,以使数据发送方的对应计算节点向M个计算节点中的各计算节点发送其负责存储的第一数据集的数据。具体地,M个计算节点中各计算节点负责存储的第一数据集的数据为第一数据集中key在该计算节点对应的第一数据集的key取值范围的数据。
在一些实施例中,数据获取请求可以由数据接收方的驱动器(以下称为第二驱动器)主动发送至数据发送方的驱动器(以下称为第一驱动器)。具体实现时,第二驱动器在获取到数据接收方的第一数据集分片策略之后,可以向第一驱动器发送针对第一数据集的数据获取请求。在此实施例中,数据获取请求包括所述M个计算节点分别对应的所述第一数据集的key取值范围,可理解为:数据获取请求包括数据接收方的第一数据集分片策略。
在此实施例中,为使数据发送方中N个计算节点中各计算节点确定其存储的第一数据集的数据在M个计算节点中的接收计算节点,进一步地,数据获取请求还可以包括所述M个计算节点的地址信息。这样,第一驱动器在获取到M个计算节点的地址信息,以及M个计算节点对应的第一数据集的key取值范围之后,可以结合数据接收方自身的第一数据集分片策略,即N个计算节点分别对应的第一数据集的key取值范围,确定N个计算节点和M个计算节点之间存在交集的计算节点。
之后,第一驱动器可以分别为N个计算节点分配数据传输任务。N个计算节点中各计算节点的数据传输任务用于:为M个计算节点中与其对应的第一数据集的key取值范围具有交集的至少一个计算节点发送第一数据集的数据。具体地,N个计算节点中各计算节点的数据传输任务可以包括:M个计算节点中与其对应的第一数据集的key取值范围具有交集的至少一个计算节点的地址信息,以及该至少一个计算节点分别对应的第一数据集的key取值范围。这样,N个计算节点中各计算节点在获取到各自的数据传输任务之后,可以基于数据传输任务中的地址信息确定其对应的数据接收方计算节点,以及其需要向其对应的数据接收方计算节点发送的第一数据集的数据,从而实现其存储的第一数据集的数据的传输。
在此实施例中,数据传输方法主要包括以下步骤:
1)数据接收方的驱动器向数据发送方的驱动器发送元数据,元数据包括数据接收方计算节点的地址信息和数据接收方的第一数据集分片策略;
2)数据发送方的驱动器可以基于接收到的元数据,以及自身的第一数据集分片策略,向自身的各计算节点分配数据传输任务,数据传输任务包括对应数据接收方计算节点的地址信息及对应的key取值范围;
3)数据发送方计算节点基于分配的数据传输任务,直接向对应数据接收方计算节点发送对应第一数据集的数据。
在另一些实施例中,数据获取请求可以由M个计算节点发送至N个计算节点。M个计算节点中各计算节点发送的数据获取请求包括其对应的第一数据集的key取值范围。
在此实施例中,为使数据接收方各计算节点成功请求到其负责存储的第一数据集的数据,需向N个计算节点中与其对应的第一数据集的key取值范围具有交集的计算节点发送数据获取请求。因此,数据接收方需提前获取N个计算节点分别对应的第一数据集的key取值范围。具体实现时,在M个计算节点发送数据获取请求之前,数据发送方的驱动器可以向数据接收方的驱动器发送N个计算节点的地址信息及N个计算节点分别对应的第一数据集的key取值范围。
这样,第二驱动器在获取到N个计算节点的地址信息,以及N个计算节点对应的第一数据集的key取值范围之后,可以结合数据接收方自身的第一数据集分片策略,即M个计算节点分别对应的第一数据集的key取值范围,确定N个计算节点和M个计算节点之间存在交集的计算节点。
之后,第二驱动器可以分别为M个计算节点分配数据获取任务(也可以成为数据拉取任务)。M个计算节点中各计算节点的数据获取任务用于:从N个计算节点中与其对应的第一数据集的key取值范围具有交集的至少一个计算节点发送数据获取请求。具体地,M个计算节点中各计算节点的数据获取任务可以包括:N个计算节点中与其对应的第一数据集的key取值范围具有交集的至少一个计算节点的地址信息,其对应的第一数据集的key取值范围。这样,M个计算节点中各计算节点在获取到各自的数据获取任务之后,可以基于数据获取任务中的地址信息向对应的数据发送方计算节点发送相应地数据请求任务,从对应的数据发送方计算节点拉取其负责存储的第一数据集的数据,实现其负责存储的第一数据集的数据的获取。
在此实施例中,数据传输方法主要包括以下步骤:
1)数据发送方的驱动器向数据接收方的驱动器发送元数据,元数据包括数据发送方计算节点的地址信息和数据发送方的第一数据集分片策略;
2)数据接收方的驱动器可以基于接收到的元数据,以及自身的第一数据集分片策略,向自身的各计算节点分配数据获取任务,数据获取任务包括该计算节点对应的数据发送方计算节点的地址信息,以及该计算节点对应的key取值范围;
3)数据接收方计算节点基于分配的数据获取任务,直接向对应数据发送方计算节点发送数据获取请求;
4)数据发送方计算节点可以响应于接收到的数据获取请求,返回第一数据集的数据。
在本申请实施例中,计算节点的地址信息可以包括计算节点的网际互连协议(Internet Protocol,IP)地址和端口。
关于步骤202
在步骤202中,M个计算节点和N个计算节点直接进行第一数据集的数据传输,无需其他节点转发,从而可以提高数据传输的效率。
在本申请实施例中,可以视对应的第一数据集的key取值范围存在交集的数据发送方计算节点和数据接收方节点具有对应关系。具体实现时,数据接收方计算节点可以从与其具有对应关系的数据接收节点获取其负责存储的第一数据集的数据。
在本申请实施例中,一个数据发送方计算节点可以对应一个或多个数据接收方计算节点;一个数据接收方计算节点可以对应一个或多个数据发送方计算节点。具体实现时,N个计算节点中的一个计算节点可能向M个计算节点中的一个或多个计算节点发送第一数据集的数据。因此,M个计算节点中的一个计算节点可能接收N个计算节点中一个或多个计算节点发送的第一数据集的数据。
为方便理解,示例说明如下:
假设第一数据集包括10个键值对,分别为键值对1至键值对10,键值对X对应的key为X,X的取值范围为1至10,且X为正整数。
同时假设数据发送方的N个计算节点包括计算节点a、计算节点b和计算节点c。计算节点a对应的第一数据集的key取值范围为1至5;计算节点b对应的第一数据集的key取值范围为6和7;计算节点c对应的第一数据集的key取值范围为8至10。
数据发送方的M个计算节点包括计算节点d和计算节点e。计算节点d对应的第一数据集的key取值范围为1至8;计算节点e对应的第一数据集的key取值范围为9和10。
那么,由于计算节点a、计算节点b和计算节点c对应的第一数据集的key取值范围均与计算节点d对应的第一数据集的key取值范围存在交集,可以确定计算节点a、计算节点b和计算节点c均与计算节点d具有对应关系,因此,计算节点a可向计算节点d发送键值对1至5,计算节点b可以向计算节点d发送键值对6和7,计算节点c可以向计算节点d发送键值对8。由于仅计算节点c对应的第一数据集的key取值范围与计算节点e对应的第一数据集的key取值范围存在交集,可以确定计算节点c均与计算节点e具有对应关系,因此,计算节点c可向计算节点e发送键值对9和10。
需要说明地是,在本申请实施例中,各计算节点之间的信息传输,如数据获取请求的传输、数据的传输可以并行执行,从而可以提高信息传输效率。另外,计算节点之间可以通过google远程过程调用(google Remote Procedure Call,gRPC)接口进行信息传输,但不仅限于此。
参见图3,图3是本申请实施例提供的分布式计算架构的数据传输方法的流程图之二。对于图3方法实施例,数据发送方包括第一驱动器和第一计算资源池,第一计算资源池包括N个计算节点;数据接收方包括第二驱动器和第二计算资源池,第二计算资源池包括M个计算节点。可以理解地是,N个计算节点可以为第一计算资源池中的部分或全部计算节点。M个计算节点可以为第二计算资源池中的部分或全部计算节点。
如图3所示,分布式计算架构的数据传输方法可以包括以下步骤:
步骤301、所述第一驱动器向所述第二驱动器发送第一信息,所述第一信息包括所述N个计算节点的地址信息,以及所述N个计算节点分别对应的所述第一数据集的key取值范围。
相应地,所述第二驱动器接收所述第一驱动器发送的第一信息。
在本实施例中,如图1所示,数据发送方和数据接收方之间的数据传输可以分为两个阶段:第一个阶段为驱动器之间的元数据传输;第二个阶段为计算节点之间的实际传输。
步骤301即为第一个阶段,在步骤301中,元数据即为第一信息。在此阶段,数据发送方向数据接收方发送自身存储了第一数据集的数据的计算节点的地址信息,以及第一数据集在这些计算节点中的分片策略,如此,可以供数据接收方计算节点向对应的数据发送方计算节点发送数据获取请求,获取其负责存储的第一数据集的数据。
步骤302、所述第二驱动器根据所述M个计算节点分别对应的所述第一数据集的key取值范围和所述N个计算节点分别对应的所述第一数据集的key取值范围,确定所述N个计算节点中各计算节点与所述M个计算节点中各计算节点之间的对应关系;其中,具有对应关系的计算节点对应的所述第一数据集的key取值范围存在交集。
在第二个阶段中,第二驱动器还可以获取第一数据集在自身计算节点的分片策略。之后,可以结合第一信息,确定对应的第一数据集的key取值范围具有交集的数据发送方计算节点和数据接收方计算节点,以确定数据接收方计算节点从那些数据发送方计算节点获取第一数据集的数据。
步骤303、所述第二驱动器根据所述对应关系,向所述M个计算节点分别发送数据获取任务,其中,所述第i计算节点的数据获取任务包括所述N个计算节点中的至少一个计算节点的地址信息,以及所述第i计算节点对应的所述第一数据集的key取值范围。
在步骤303中,第二驱动器可以为M个计算节点中的各计算节点分配数据获取任务,每个计算节点分配到的数据获取任务包括:其对应的数据发送方计算节点的地址信息,以及其对应的第一数据集的key取值范围。
步骤304、所述M个计算节点分别根据所述数据获取任务,向所述N个计算节点发送针对所述第一数据集的数据获取请求。
相应地,所述N个计算节点接收所述M个计算节点发送的针对所述第一数据集的数据获取请求。
其中,所述第i计算节点发送的数据获取请求的目的地址信息为所述N个计算节点中的至少一个计算节点的地址信息,所述第i计算节点发送的数据获取请求包括所述第i计算节点对应的所述第一数据集的key取值范围。
在步骤304中,每个计算节点在获取到分配的数据获取任务之后,可以基于数据获取任务中的地址信息发送包括自身对应的第一数据集的key取值范围的数据获取请求,以使该地址信息的数据发送方计算节点返回其负责存储的第一数据集的数据。
步骤305、所述N个计算节点向所述M个计算节点发送所述第一数据集的数据。
相应地,所述M个计算节点接收所述N个计算节点发送的所述第一数据集的数据。
其中,所述M个计算节点中的第i计算节点接收的所述第一数据集的数据由所述N个计算节点中的至少一个计算节点发送,i的取值范围为1至M,且i为正整数;所述N个计算节点中的至少一个计算节点分别对应的所述第一数据集的key取值范围与所述第i计算节点对应的所述第一数据集的key取值范围存在交集;每个所述计算节点对应的所述第一数据集的key取值范围用于指示其负责存储的所述第一数据集的数据。
步骤305的实现可参见图2方法实施例中步骤202的实现,此处不再赘述。第一数据集的数据传输即为第二个阶段中的实际数据传输。
在本实施例中,数据接收方的驱动器通过接收数据发送方的驱动器发送的第一信息和获取第一数据集在自身的分片策略,可以确定N个计算节点中分别与M个计算节点中各计算节点对应的第一数据集的key取值范围具有交集的计算节点,从而可以确定M个计算节点中各计算节点需要从N个计算节点中的那些计算节点拉取第一数据集的数据,进而通过M个计算节点和N个计算节点直接进行第一数据集的传输,可提高数据传输的效率。
在本申请的一些实施例中,所述通过所述M个计算节点接收所述N个计算节点发送的所述第一数据集的数据之后,所述方法还包括:
在所述M个计算节点成功接收到所述N个计算节点发送的所述第一数据集的数据的情况下,所述M个计算节点分别存储接收到的所述第一数据集的数据,并向所述第二驱动器发送指示信息,所述指示信息用于指示所述第一数据集的传输任务完成;
所述第二驱动器向所述第一驱动器转发所述指示信息。
在本实施例中,在M个计算节点中各计算节点成功接收到自身负责存储的第一数据集的数据之后,可以告知第二驱动器自身的第一数据集的传输任务完成,并存储接收到的数据。
第二驱动器在获取到M个计算节点中全部计算节点均成功接收到自身负责存储的数据之后,可以告知第一驱动器第一数据集的传输任务完成,以结束第一数据集的传输任务。
如此,数据发送方可以知晓已成功完成第一数据集的传输,从而可以提高数据传输的可靠性。
在本申请的一些实施例中,计算节点包括任务分发服务和数据传输服务;所述第二驱动器根据所述对应关系,向所述M个计算节点分别发送数据获取任务,包括:
所述第二驱动器根据所述对应关系,向所述M个计算节点的任务分发服务分别发送数据获取任务;
所述M个计算节点分别根据所述数据获取任务,向所述N个计算节点发送数据获取请求,包括:
所述M个计算节点分别根据所述数据获取任务,向所述N个计算节点的数据传输服务发送数据获取请求;
所述通过所述M个计算节点接收所述N个计算节点发送的所述第一数据集的数据,包括:
所述M个计算节点的数据传输服务接收所述N个计算节点发送的所述第一数据集的数据。
在本实施例中,可以由计算节点的任务分发服务负责数据获取任务的发送,由计算节点的数据传输任务负责数据获取请求和数据的传输,如此,可以由计算节点的不同服务负责不同的事项,从而可以提高事项处理效率。
需要说明的是,本申请实施例中介绍的多种可选的实施方式,在彼此不冲突的情况下可以相互结合实现,也可以单独实现,对此本申请实施例不作限定。
为方便理解,示例说明如下:
在本申请实施例的分布式计算架构中,计算节点提供数据传输的gRPC接口,可以根据dataset_id和key的取值范围(key_range),返回对应数据集中key的取值在key_range中的所有键值对。
本申请实施例的跨计算集群的数据传输分为两个阶段:第一个阶段为驱动器之间的元数据传输;第二个阶段为计算节点之间的实际数据传输。
在数据传输的第一个阶段,数据发送方的驱动器首先会将要传输的数据集的元数据发送给接收方的驱动器。元数据主要包括两个部分:
计算节点集合:发送方存储了该数据集的所有计算节点的集合。该集合包含各计算节点的ip地址和端口,可供数据接收方通过前文所述的数据传输的gRPC接口拉取数据。需要注意的是,本方的计算资源池内,可能有计算节点没有存储相关数据集的任何数据,这些节点不在这里所提到的计算节点集合内。
数据集分片策略。
在第二个阶段,数据接收方在接收数据之前,会确定本方接收到数据后的分片策略。在收到了发送方数据集的元数据后,将通过如下步骤完成实际数据的传输:
1. 接收方驱动器根据本方的数据集分片策略,可以明确本方每一个计算节点要存储的key的取值范围。然后根据发送方的数据集分片策略,可以得出发送方的哪些计算节点存储的数据的key的取值范围与本方的各个节点要存储的key的范围有交集,从而针对本方的每一个计算节点,获知它要从数据发送发的哪些节点拉取它所需要的数据。
2. 如前文所述,发送方的各个计算节点都对外提供了用于数据传输的gRPC接口。接收方驱动器根据步骤1中得到的结果,向本方需要接收数据的每一个计算节点下发“拉取数据”的任务;该任务将包含各计算节点需要去拉取数据的数据发送方计算节点的地址。各计算接收方收到任务后,依照要求向对应的发送方的结算节点上的数据传输gRPC服务发送按key的取值范围获取数据的请求,获得对应的数据,并存储到该计算节点本地。
与传统的分布式计算架构不同,本提案所设计的是一个面向多个计算参与方的分布式计算架构,解决了在多参与方的计算集群之间传输数据的问题。与FATE相比,本提案的主要优点包括如下两条:
数据发送方和接收方可以分别灵活配置各自集群内用于数据传输的节点数量。在FATE中,数据只能从发送方的一个计算节点全量发送接受方的另一个计算节点上。而根据本申请实施例,数据接收方的每个计算节点,将根据本方数据集分片策略所决定该计算节点存储的key的取值范围,从需要的数据发送方的计算节点,直接根据key的范围获取需要的数据。因此本提案可以允许各参与方根据其所承担的计算量不同,或各方实际拥有的计算资源量不同,灵活设置,不必考虑另一方的计算节点数量。同时,由于数据发送方和接收方均采用范围分片策略,所以也不会产生接收方的计算节点需要从给发送方所有计算节点发送获取数据的请求,降低了网络拓扑的复杂性。
数据是从发送方的计算节点直接传输到了接收方的计算节点。接收方的计算节点根据发送方提供的地址,直接向对应的数据传输gRPC服务发送请求,获取数据,中间没有经过额外的转发。同时,也没有如FATE中的单点故障问题。
一种场景实施例如图4所示:
在数据发送方和接收方的计算集群进行数据传输之前,两方的驱动器需要先建立websocket连接。同时数据接收方也应当确定该方接收数据时采用的数据分片策略。整个流程具体过程如下所述:
1. 发送方驱动器将需要发送的数据集的元数据通过websocket发送给接收方驱动器。
元数据包括存储该数据集的计算节点集合和分片策略。
2. 接收方驱动器根据数据集元数据,分发数据拉取的任务给本方的计算节点,具体包括:
2.1. 接收数据集元数据。
具体实现时,通过websocket连接,接收到发送方驱动器所发送的数据集元数据。
2.2. 确定本方各计算节点需要从发送方那些节点拉取数据。
具体实现时,根据发送方的数据集分片策略,可以得出发送方的哪些计算节点存储的数据的key的取值范围与本方的各个节点要存储的key的范围有交集,从而针对本方的每一个计算节点,获知它所应该接收的数据分别存储在数据发送方的哪些计算节点上。
2.3.发送拉取数据的任务。
具体实现时,根据上个步骤的结果,并且结合数据集元数据中包含的发送方各计算节点的地址信息,通过计算节点上提供的任务分发的gRPC服务,并行发送“数据拉取”任务给该方的各个计算节点,告诉每个计算节点它所需要拉取数据的发送方计算节点的地址,以及相应的key的取值范围。
3. 接收方的计算节点根据收到的数据拉取任务向发送方拉取数据,具体包括:
3.1.接收拉取数据的任务。
具体实现时,通过在该节点上运行的任务分发的gRPC服务,获取该节点负责存储的数据集分片的key的取值范围,以及从数据发送方的哪些计算节点拉取数据
3.2. 发送根据key取值范围获取数据的请求。
具体实现时,通过发送方计算节点的数据传输gRPC服务,向所有该节点需要拉取的数据的发送方计算节点并行发送拉取数据的请求。
4. 发送方的计算节点将该节点的数据传输给接收方的节点,具体包括:
4.1. 接收根据key取值范围获取数据的请求。
具体实现时,通过在该节点上运行的数据传输gRPC服务,获取向该节点拉取数据的请求。
4.2.根据请求返回数据集的数据。
具体实现时,根据拉取数据的请求中所包含的key的取值范围,将该节点上所存储的key在所请求的取值范围内的数据,返回给数据接收方的计算节点。
5. 接收方的计算节点从发送方接收数据集的数据并存储在本地,具体包括:
5.1. 接收发送方计算节点返回的数据。
具体实现时,通过在步骤 3.2向发送方计算节点的数据传输gRPC服务所发送的数据拉取的请求,接收到各个节点返回的数据.
5.2. 存储发送方各计算节点返回的数据。
具体实现时,将接收到的发送方的数据存储在该计算节点的本地存储单元中。
5.3.向本方驱动器确认数据拉取任务完成。
具体实现时,等到该节点在步骤 3.2 中所发送的所有拉取数据的请求都成功返回数据,并且数据都已经存储在该节点的本地存储单元之后,向接收方驱动器在步骤 2.3中发送的任务分发请求确认任务完成执行。
6. 接收方驱动器确认数据拉取完成,具体包括:
6.1. 收到数据拉取任务完成的确认。
具体实现时,等待在步骤 2.3 中所发送的任务分发请求全部返回成功。
6.2. 向发送方驱动器确认数据传输完成。
具体实现时,通过Websocket连接像数据发送方驱动器确认数据传输完成。
7. 发送方驱动器收到接收方驱动器的数据传输完成确认。
至此,数据传输结束。
基于上述实施例提供的分布式计算架构的数据传输方法,相应地,本申请还提供了分布式计算架构的数据传输装置的具体实现方式。请参见以下实施例。
参见图5,本申请实施例提供的分布式计算架构的数据传输装置可以包括:
第一发送模块501,用于向所述数据发送方发送针对所述第一数据集的数据获取请求,所述数据获取请求包括所述M个计算节点分别对应的所述第一数据集的key取值范围;
第一接收模块502,用于通过所述M个计算节点接收所述N个计算节点发送的所述第一数据集的数据;
其中,所述M个计算节点中的第i计算节点接收的所述第一数据集的数据由所述N个计算节点中的至少一个计算节点发送,i的取值范围为1至M,且i为正整数;所述N个计算节点中的至少一个计算节点分别对应的所述第一数据集的key取值范围与所述第i计算节点对应的所述第一数据集的key取值范围存在交集;每个所述计算节点对应的所述第一数据集的key取值范围用于指示其负责存储的所述第一数据集的数据。
在一些实施例中,所述数据发送方包括第一驱动器和第一计算资源池,所述第一计算资源池包括所述N个计算节点;所述数据接收方包括第二驱动器和第二计算资源池,所述第二计算资源池包括所述M个计算节点;
所述第二驱动器,用于:接收所述第一驱动器发送的第一信息,所述第一信息包括所述N个计算节点的地址信息,以及所述N个计算节点分别对应的所述第一数据集的key取值范围;
根据所述M个计算节点分别对应的所述第一数据集的key取值范围和所述N个计算节点分别对应的所述第一数据集的key取值范围,确定所述N个计算节点中各计算节点与所述M个计算节点中各计算节点之间的对应关系;其中,具有对应关系的计算节点对应的所述第一数据集的key取值范围存在交集;
根据所述对应关系,向所述M个计算节点分别发送数据获取任务,其中,所述第i计算节点的数据获取任务包括所述N个计算节点中的至少一个计算节点的地址信息,以及所述第i计算节点对应的所述第一数据集的key取值范围;
所述M个计算节点,用于:分别根据所述数据获取任务,向所述N个计算节点发送针对所述第一数据集的数据获取请求;
其中,所述第i计算节点发送的数据获取请求的目的地址信息为所述N个计算节点中的至少一个计算节点的地址信息,所述第i计算节点发送的数据获取请求包括所述第i计算节点对应的所述第一数据集的key取值范围。
在一些实施例中,计算节点包括任务分发服务和数据传输服务;
所述第二驱动器,用于:根据所述对应关系,向所述M个计算节点的任务分发服务分别发送数据获取任务;
所述M个计算节点,用于:
分别根据所述数据获取任务,向所述N个计算节点的数据传输服务发送数据获取请求;
通过数据传输服务接收所述N个计算节点发送的所述第一数据集的数据。
本申请实施例提供的分布式计算架构的数据传输装置能够实现上述方法实施例中数据接收方实现的各个过程,为避免重复,这里不再赘述。
参见图6,本申请实施例提供的分布式计算架构的数据传输装置可以包括:
第二接收模块601,用于接收所述数据接收方发送的针对所述第一数据集的数据获取请求,所述数据获取请求包括所述M个计算节点分别对应的所述第一数据集的key取值范围;
第二发送模块602,用于通过所述N个计算节点向所述M个计算节点发送所述第一数据集的数据;
其中,所述M个计算节点中的第i计算节点接收的所述第一数据集的数据由所述N个计算节点中的至少一个计算节点发送,i的取值范围为1至M,且i为正整数;所述N个计算节点中的至少一个计算节点分别对应的所述第一数据集的key取值范围与所述第i计算节点对应的所述第一数据集的key取值范围存在交集;每个所述计算节点对应的所述第一数据集的key取值范围用于指示其负责存储的所述第一数据集的数据。
在一些实施例中,所述数据发送方包括第一驱动器和第一计算资源池,所述第一计算资源池包括所述N个计算节点;所述数据接收方包括第二驱动器和第二计算资源池,所述第二计算资源池包括所述M个计算节点;
所述第一驱动器,用于:
向所述第二驱动器发送第一信息,所述第一信息包括所述N个计算节点的地址信息,以及所述N个计算节点分别对应的所述第一数据集的key取值范围;
所述N个计算节点,用于:
接收所述M个计算节点发送的针对所述第一数据集的数据获取请求;
其中,所述第i计算节点发送的数据获取请求的目的地址信息为所述N个计算节点中的至少一个计算节点的地址信息,所述第i计算节点发送的数据获取请求包括所述第i计算节点对应的所述第一数据集的key取值范围。
本申请实施例提供的分布式计算架构的数据传输装置能够实现上述方法实施例中数据发送方实现的各个过程,为避免重复,这里不再赘述。
图7示出了本申请实施例提供的分布式计算架构的数据传输的硬件结构图。
在分布式计算架构的数据传输设备可以包括处理器701以及存储有计算机程序指令的存储器702。
具体地,上述处理器701可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit ,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
存储器702可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器702可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器702可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器702可在综合网关容灾设备的内部或外部。在特定实施例中,存储器702是非易失性固态存储器。
存储器可包括只读存储器(Read-Only Memory, ROM),随机存取存储器(RandomAccess Memory,RAM),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本公开的一方面的方法所描述的操作。
处理器701通过读取并执行存储器702中存储的计算机程序指令,以实现上述实施例中的任意一种分布式计算架构的数据传输方法。
在一个示例中,分布式计算架构的数据传输设备还可包括通信接口707和总线710。其中,如图7所示,处理器701、存储器702、通信接口707通过总线710连接并完成相互间的通信。
通信接口707,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。
总线710包括硬件、软件或两者,将分布式计算架构的数据传输设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线710可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
另外,结合上述实施例中的分布式计算架构的数据传输方法,本申请实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种分布式计算架构的数据传输方法。
需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
上面参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
以上所述,仅为本申请的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。
Claims (7)
1.一种分布式计算架构中的数据传输方法,应用于数据接收方,其特征在于,所述数据接收方用于从数据发送方接收第一数据集;其中,所述第一数据集的数据存储于所述数据发送方的N个计算节点中;所述数据接收方分配M个计算节点存储所述第一数据集的数据;所述N个计算节点和所述M个计算节点中存在分别来自所述数据发送方和所述接收方的至少两个计算节点对应的所述第一数据集的键取值范围不同,N和M为正整数;
所述方法包括:
向所述数据发送方发送针对所述第一数据集的数据获取请求,所述数据获取请求包括所述M个计算节点分别对应的所述第一数据集的键取值范围;
通过所述M个计算节点接收所述N个计算节点发送的所述第一数据集的数据;
其中,所述M个计算节点中的第i计算节点接收的所述第一数据集的数据由所述N个计算节点中的至少一个计算节点发送,i的取值范围为1至M,且i为正整数;所述N个计算节点中的至少一个计算节点分别对应的所述第一数据集的键取值范围与所述第i计算节点对应的所述第一数据集的键取值范围存在交集;每个所述计算节点对应的所述第一数据集的键取值范围用于指示其负责存储的所述第一数据集的数据;
所述数据发送方包括第一驱动器和第一计算资源池,所述第一计算资源池包括所述N个计算节点;所述数据接收方包括第二驱动器和第二计算资源池,所述第二计算资源池包括所述M个计算节点;
所述向所述数据发送方发送针对所述第一数据集的数据获取请求之前,所述方法还包括:
所述第二驱动器接收所述第一驱动器发送的第一信息,所述第一信息包括所述N个计算节点的地址信息,以及所述N个计算节点分别对应的所述第一数据集的键取值范围;
所述第二驱动器根据所述M个计算节点分别对应的所述第一数据集的键取值范围和所述N个计算节点分别对应的所述第一数据集的键取值范围,确定所述N个计算节点中各计算节点与所述M个计算节点中各计算节点之间的对应关系;其中,具有对应关系的计算节点对应的所述第一数据集的键取值范围存在交集;
所述第二驱动器根据所述对应关系,向所述M个计算节点分别发送数据获取任务,其中,所述第i计算节点的数据获取任务包括所述N个计算节点中的至少一个计算节点的地址信息,以及所述第i计算节点对应的所述第一数据集的键取值范围;
所述向所述数据发送方发送针对所述第一数据集的数据获取请求,包括:
所述M个计算节点分别根据所述数据获取任务,向所述N个计算节点发送针对所述第一数据集的数据获取请求;
其中,所述第i计算节点发送的数据获取请求的目的地址信息为所述N个计算节点中的至少一个计算节点的地址信息,所述第i计算节点发送的数据获取请求包括所述第i计算节点对应的所述第一数据集的键取值范围。
2.根据权利要求1所述的方法,计算节点包括任务分发服务和数据传输服务;
所述第二驱动器根据所述对应关系,向所述M个计算节点分别发送数据获取任务,包括:
所述第二驱动器根据所述对应关系,向所述M个计算节点的任务分发服务分别发送数据获取任务;
所述M个计算节点分别根据所述数据获取任务,向所述N个计算节点发送数据获取请求,包括:
所述M个计算节点分别根据所述数据获取任务,向所述N个计算节点的数据传输服务发送数据获取请求;
所述通过所述M个计算节点接收所述N个计算节点发送的所述第一数据集的数据,包括:
所述M个计算节点的数据传输服务接收所述N个计算节点发送的所述第一数据集的数据。
3.一种分布式计算架构中的数据传输方法,应用于数据发送方,其特征在于,所述数据发送方用于向数据接收方发送第一数据集;其中,所述第一数据集的数据存储于所述数据发送方的N个计算节点中;所述数据接收方分配M个计算节点存储所述第一数据集的数据;所述N个计算节点和所述M个计算节点中存在分别来自所述数据发送方和所述接收方的至少两个计算节点对应的所述第一数据集的键取值范围不同,N和M为正整数;
所述方法包括:
接收所述数据接收方发送的针对所述第一数据集的数据获取请求,所述数据获取请求包括所述M个计算节点分别对应的所述第一数据集的键取值范围;
通过所述N个计算节点向所述M个计算节点发送所述第一数据集的数据;
其中,所述M个计算节点中的第i计算节点接收的所述第一数据集的数据由所述N个计算节点中的至少一个计算节点发送,i的取值范围为1至M,且i为正整数;所述N个计算节点中的至少一个计算节点分别对应的所述第一数据集的键取值范围与所述第i计算节点对应的所述第一数据集的键取值范围存在交集;每个所述计算节点对应的所述第一数据集的键取值范围用于指示其负责存储的所述第一数据集的数据;
所述数据发送方包括第一驱动器和第一计算资源池,所述第一计算资源池包括所述N个计算节点;所述数据接收方包括第二驱动器和第二计算资源池,所述第二计算资源池包括所述M个计算节点;
所述接收所述数据接收方发送的针对所述第一数据集的数据获取请求之前,所述方法还包括:
所述第一驱动器向所述第二驱动器发送第一信息,所述第一信息包括所述N个计算节点的地址信息,以及所述N个计算节点分别对应的所述第一数据集的键取值范围;
所述接收所述数据接收方发送的针对所述第一数据集的数据获取请求,包括:
所述N个计算节点接收所述M个计算节点发送的针对所述第一数据集的数据获取请求;
其中,所述第i计算节点发送的数据获取请求的目的地址信息为所述N个计算节点中的至少一个计算节点的地址信息,所述第i计算节点发送的数据获取请求包括所述第i计算节点对应的所述第一数据集的键取值范围。
4.一种分布式计算架构的数据传输装置,应用于数据接收方,其特征在于,所述数据接收方用于从数据发送方接收第一数据集;其中,所述第一数据集的数据存储于所述数据发送方的N个计算节点中;所述数据接收方分配M个计算节点存储所述第一数据集的数据;所述N个计算节点和所述M个计算节点中存在分别来自所述数据发送方和所述接收方的至少两个计算节点对应的所述第一数据集的键取值范围不同,N和M为正整数;
所述装置包括:
第一发送模块,用于向所述数据发送方发送针对所述第一数据集的数据获取请求,所述数据获取请求包括所述M个计算节点分别对应的所述第一数据集的键取值范围;
第一接收模块,用于通过所述M个计算节点接收所述N个计算节点发送的所述第一数据集的数据;
其中,所述M个计算节点中的第i计算节点接收的所述第一数据集的数据由所述N个计算节点中的至少一个计算节点发送,i的取值范围为1至M,且i为正整数;所述N个计算节点中的至少一个计算节点分别对应的所述第一数据集的键取值范围与所述第i计算节点对应的所述第一数据集的键取值范围存在交集;每个所述计算节点对应的所述第一数据集的键取值范围用于指示其负责存储的所述第一数据集的数据;
所述数据发送方包括第一驱动器和第一计算资源池,所述第一计算资源池包括所述N个计算节点;所述数据接收方包括第二驱动器和第二计算资源池,所述第二计算资源池包括所述M个计算节点;
所述第二驱动器,用于:
接收所述第一驱动器发送的第一信息,所述第一信息包括所述N个计算节点的地址信息,以及所述N个计算节点分别对应的所述第一数据集的键取值范围;
根据所述M个计算节点分别对应的所述第一数据集的键取值范围和所述N个计算节点分别对应的所述第一数据集的键取值范围,确定所述N个计算节点中各计算节点与所述M个计算节点中各计算节点之间的对应关系;其中,具有对应关系的计算节点对应的所述第一数据集的键取值范围存在交集;
根据所述对应关系,向所述M个计算节点分别发送数据获取任务,其中,所述第i计算节点的数据获取任务包括所述N个计算节点中的至少一个计算节点的地址信息,以及所述第i计算节点对应的所述第一数据集的键取值范围;
所述M个计算节点,用于:分别根据所述数据获取任务,向所述N个计算节点发送针对所述第一数据集的数据获取请求;
其中,所述第i计算节点发送的数据获取请求的目的地址信息为所述N个计算节点中的至少一个计算节点的地址信息,所述第i计算节点发送的数据获取请求包括所述第i计算节点对应的所述第一数据集的键取值范围。
5.一种分布式计算架构的数据传输装置,应用于数据发送方,其特征在于,所述数据发送方用于向数据接收方发送第一数据集;其中,所述第一数据集的数据存储于所述数据发送方的N个计算节点中;所述数据接收方分配M个计算节点存储所述第一数据集的数据;所述N个计算节点和所述M个计算节点中存在分别来自所述数据发送方和所述接收方的至少两个计算节点对应的所述第一数据集的键取值范围不同,N和M为正整数;
所述装置包括:
第二接收模块,用于接收所述数据接收方发送的针对所述第一数据集的数据获取请求,所述数据获取请求包括所述M个计算节点分别对应的所述第一数据集的键取值范围;
第二发送模块,用于通过所述N个计算节点向所述M个计算节点发送所述第一数据集的数据;
其中,所述M个计算节点中的第i计算节点接收的所述第一数据集的数据由所述N个计算节点中的至少一个计算节点发送,i的取值范围为1至M,且i为正整数;所述N个计算节点中的至少一个计算节点分别对应的所述第一数据集的键取值范围与所述第i计算节点对应的所述第一数据集的键取值范围存在交集;每个所述计算节点对应的所述第一数据集的键取值范围用于指示其负责存储的所述第一数据集的数据;
所述数据发送方包括第一驱动器和第一计算资源池,所述第一计算资源池包括所述N个计算节点;所述数据接收方包括第二驱动器和第二计算资源池,所述第二计算资源池包括所述M个计算节点;
所述第一驱动器,用于:
向所述第二驱动器发送第一信息,所述第一信息包括所述N个计算节点的地址信息,以及所述N个计算节点分别对应的所述第一数据集的键取值范围;
所述N个计算节点,用于:
接收所述M个计算节点发送的针对所述第一数据集的数据获取请求;
其中,所述第i计算节点发送的数据获取请求的目的地址信息为所述N个计算节点中的至少一个计算节点的地址信息,所述第i计算节点发送的数据获取请求包括所述第i计算节点对应的所述第一数据集的键取值范围。
6.一种分布式计算架构的数据传输设备,其特征在于,所述设备包括:处理器以及存储有计算机程序指令的存储器;所述处理器执行所述计算机程序指令时实现如权利要求1或2所述的分布式计算架构的数据传输方法,或,如权利要求3所述的分布式计算架构的数据传输方法。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1或2所述的分布式计算架构的数据传输方法,或,如权利要求3所述的分布式计算架构的数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211029216.1A CN115118727B (zh) | 2022-08-26 | 2022-08-26 | 分布式计算架构的数据传输方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211029216.1A CN115118727B (zh) | 2022-08-26 | 2022-08-26 | 分布式计算架构的数据传输方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115118727A CN115118727A (zh) | 2022-09-27 |
CN115118727B true CN115118727B (zh) | 2022-11-29 |
Family
ID=83335956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211029216.1A Active CN115118727B (zh) | 2022-08-26 | 2022-08-26 | 分布式计算架构的数据传输方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115118727B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5699500A (en) * | 1995-06-01 | 1997-12-16 | Ncr Corporation | Reliable datagram service provider for fast messaging in a clustered environment |
JPH10105522A (ja) * | 1996-06-27 | 1998-04-24 | Hewlett Packard Co <Hp> | マルチコンピュータ・システム |
CN109800236A (zh) * | 2019-01-28 | 2019-05-24 | 上海雷腾软件股份有限公司 | 支持多节点的分布式缓存方法及设备 |
WO2021213075A1 (zh) * | 2020-04-24 | 2021-10-28 | 中科寒武纪科技股份有限公司 | 一种基于多处理节点来进行节点间通信的方法和设备 |
WO2022001375A1 (zh) * | 2020-06-28 | 2022-01-06 | 北京沃东天骏信息技术有限公司 | 基于区块链的数据存储方法、系统和装置 |
CN114697372A (zh) * | 2022-05-31 | 2022-07-01 | 深圳市泛联信息科技有限公司 | 一种分布式系统中数据传输处理与存储方法、系统及介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7395536B2 (en) * | 2002-11-14 | 2008-07-01 | Sun Microsystems, Inc. | System and method for submitting and performing computational tasks in a distributed heterogeneous networked environment |
US9378068B2 (en) * | 2013-03-13 | 2016-06-28 | International Business Machines Corporation | Load balancing for a virtual networking system |
KR102044023B1 (ko) * | 2013-03-14 | 2019-12-02 | 삼성전자주식회사 | 키 값 기반 데이터 스토리지 시스템 및 이의 운용 방법 |
US9900386B2 (en) * | 2015-04-09 | 2018-02-20 | International Business Machines Corporation | Provisioning data to distributed computing systems |
US10977260B2 (en) * | 2016-09-26 | 2021-04-13 | Splunk Inc. | Task distribution in an execution node of a distributed execution environment |
US11588926B2 (en) * | 2016-11-14 | 2023-02-21 | Temple University—Of the Commonwealth System of Higher Education | Statistic multiplexed computing system for network-scale reliable high-performance services |
US10331581B2 (en) * | 2017-04-10 | 2019-06-25 | Hewlett Packard Enterprise Development Lp | Virtual channel and resource assignment |
CN114880133A (zh) * | 2017-08-31 | 2022-08-09 | 华为技术有限公司 | 分布式计算系统,分布式计算系统中数据传输方法和装置 |
JP7507250B2 (ja) * | 2020-05-19 | 2024-06-27 | アビニシオ テクノロジー エルエルシー | 分散コンピューティングネットワークにおける通信の最適化 |
US11747996B2 (en) * | 2020-08-05 | 2023-09-05 | Dropbox, Inc. | System and methods for implementing a key-value data store |
-
2022
- 2022-08-26 CN CN202211029216.1A patent/CN115118727B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5699500A (en) * | 1995-06-01 | 1997-12-16 | Ncr Corporation | Reliable datagram service provider for fast messaging in a clustered environment |
JPH10105522A (ja) * | 1996-06-27 | 1998-04-24 | Hewlett Packard Co <Hp> | マルチコンピュータ・システム |
CN109800236A (zh) * | 2019-01-28 | 2019-05-24 | 上海雷腾软件股份有限公司 | 支持多节点的分布式缓存方法及设备 |
WO2021213075A1 (zh) * | 2020-04-24 | 2021-10-28 | 中科寒武纪科技股份有限公司 | 一种基于多处理节点来进行节点间通信的方法和设备 |
WO2022001375A1 (zh) * | 2020-06-28 | 2022-01-06 | 北京沃东天骏信息技术有限公司 | 基于区块链的数据存储方法、系统和装置 |
CN114697372A (zh) * | 2022-05-31 | 2022-07-01 | 深圳市泛联信息科技有限公司 | 一种分布式系统中数据传输处理与存储方法、系统及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115118727A (zh) | 2022-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110915188B (zh) | 用于区块链网络中的高效传播的概率中继的方法和系统 | |
JP7627295B2 (ja) | ブロックチェーンネットワークにおいてトランザクションを伝播するためにネットワークコーディングを選択的に使用する方法及びシステム | |
CN110751475A (zh) | 一种区块链交易的跨链方法及系统、设备和存储介质 | |
CN110852882B (zh) | 用于区块链网络的分组共识方法、装置、设备和介质 | |
CN112235423B (zh) | 跨链事务处理方法及装置、电子设备、存储介质 | |
CN115208812A (zh) | 业务处理方法及装置、设备、计算机可读存储介质 | |
CN110912805B (zh) | 消息读取状态的同步方法、终端、服务端及系统 | |
CN111431730B (zh) | 一种业务处理方法、系统、计算机设备及可读介质 | |
CN112817602A (zh) | 一种json格式数据发送、接收方法、设备及介质 | |
CN112416632B (zh) | 事件通信方法、装置、电子设备和计算机可读介质 | |
CN111343220B (zh) | 转发器、分布式文件传输方法、系统、介质及电子设备 | |
CN112418389A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN115118727B (zh) | 分布式计算架构的数据传输方法、装置、设备及存储介质 | |
CN116070285A (zh) | 基于拜占庭容错的异步共识方法、装置、服务器和介质 | |
US12200050B2 (en) | Data resource storage method and apparatus, data resource query method and apparatus, and electronic device | |
CN117473181A (zh) | 页面加载数据的获取方法及获取系统、代理分发器 | |
CN114979128B (zh) | 跨区域通信方法、装置及电子设备 | |
US12002043B2 (en) | Method for enabling efficient evaluation of transactions in a distributed ledger network | |
CN114692898A (zh) | Mec联邦学习方法、装置及计算机可读存储介质 | |
CN115102992A (zh) | 数据发布方法、装置、电子设备和计算机可读介质 | |
CN109547552B (zh) | Api请求处理方法、装置、存储介质及电子设备 | |
CN107707383B (zh) | 放通处理方法、装置、第一网元及第二网元 | |
CN113283891A (zh) | 信息处理方法、装置和电子设备 | |
CN115297046B (zh) | 网关信息发送方法、装置、电子设备、介质和产品 | |
CN113535428B (zh) | 请求消息和响应消息的处理方法、装置、设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |