CN114741166A - 一种分布式任务的处理方法、分布式系统及第一设备 - Google Patents
一种分布式任务的处理方法、分布式系统及第一设备 Download PDFInfo
- Publication number
- CN114741166A CN114741166A CN202210209756.1A CN202210209756A CN114741166A CN 114741166 A CN114741166 A CN 114741166A CN 202210209756 A CN202210209756 A CN 202210209756A CN 114741166 A CN114741166 A CN 114741166A
- Authority
- CN
- China
- Prior art keywords
- memory
- result data
- subtask
- network card
- data
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 11
- 238000000034 method Methods 0.000 claims description 50
- 238000005516 engineering process Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 abstract description 11
- 230000003993 interaction Effects 0.000 abstract description 11
- 230000003446 memory effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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/465—Distributed object oriented systems
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书实施例提供一种分布式任务的处理方法、分布式系统及第一设备,分布式任务包括至少两个由分布式系统中的至少两个设备分别执行的子任务,分布式系统的至少两个设备包括第一设备。第一设备的处理器将执行的第一子任务的结果数据存储在内存中,在数据计算阶段中减少了与磁盘的交互。同时,由于结果数据是存放在内存中,因此第一设备的网卡可以直接将内存中结果数据通过网络传输至第二设备的网卡,在数据交换阶段也减少了与磁盘的交互以及对计算资源的消耗。由于数据计算阶段与数据交换阶段中均减少了计算资源的消耗,缩短了分布式任务的执行时长,因此有利于对实时性要求较大的分布式任务的执行。
Description
技术领域
本说明书实施例涉及大数据技术领域,尤其涉及一种分布式任务的处理方法、分布式系统及第一设备。
背景技术
随着互联网技术的快速发展,智能机器与人类、机器与机器之间的广泛互联产生了海量的大数据。面对海量数据规模的大数据,需要通过分布式系统对海量的数据进行共同维护。分布式系统包括多个节点,每个节点分别维护整份数据中的其中一部分。在分布式系统下,当一项任务的执行需要利用到存储在不同节点的数据时,一项任务可以划分为多个子任务。每个子任务分别调度到存储有所需数据的节点中执行。这种由多个节点协同执行的任务可以称为分布式任务。
在执行分布式任务的过程中,由于每个节点只负责一部分数据的运算,因此节点之间的数据交换(shuffle)是必不可少的过程。然而在相关技术中,数据交换过程所占用的计算机资源较大,如何减少数据交换过程所消耗的计算资源,是本领域亟待解决的技术问题。
发明内容
本说明书实施例提供了一种分布式任务的处理方法、分布式系统及第一设备,以减少数据交换过程中消耗的计算资源,提升分布式任务的执行效率。
根据本说明书实施例实施例的第一方面,提供一种分布式任务的处理方法,所述分布式任务包括至少两个由分布式系统中的至少两个设备分别执行的子任务;所述分布式系统的至少两个设备包括第一设备;所述方法包括:
由所述第一设备的处理器读取所述第一设备的内存中的数据以执行第一设备对应的第一子任务,在得到所述第一子任务的结果数据后存储于所述第一设备的内存中;
由所述第一设备的网卡将所述第一设备的内存中的所述第一子任务的结果数据通过网络传输至分布式系统的第二设备的网卡,以使所述第二设备的网卡将所述第一子任务的结果数据写入所述第二设备的内存中。
在一些例子中,所述第二设备的网卡将所述第一子任务的结果数据写入所述第二设备的内存中,包括:
所述第二设备的处理器读取所述第二设备的内存中的所述结果数据以执行第二设备对应的第二子任务;和/或
所述第二设备的网卡将所述第二设备的内存中的结果数据通过网络传输至分布式系统的第三设备的网卡,以使所述第三设备利用所述结果数据执行第三设备对应的第三子任务。
在一些例子中,所述第二设备的网卡将所述第一子任务的结果数据写入所述第二设备的内存中后,还包括:
由所述第二设备的处理器将第二设备的内存中的所述结果数据顺序写入所述第二设备的磁盘。
在一些例子中,所述由所述第二设备的处理器将第二设备的内存中的所述结果数据顺序写入所述第二设备的磁盘后,还包括:
所述第二设备的处理器删除所述第二设备的内存中的所述结果数据;
在所述第二设备的处理器接收到结果数据发送指令后,从所述第二设备的磁盘顺序读取所述结果数据至所述第二设备的内存中,以使所述第二设备的网卡将所述第二设备的内存中的结果数据通过网络传输至分布式系统的第三设备的网卡。
在一些例子中,所述第一设备的内存的存储区域包括用于存储应用程序数据的子区域;所述第一子任务的结果数据存储于所述内存的子区域中,所述由所述第一设备的网卡将所述第一设备的内存中的所述第一子任务的结果数据通过网络传输至分布式系统的第二设备的网卡,包括:
由所述第一设备的网卡将所述内存的子区域中的结果数据,通过远程直接访问技术传输至所述第二设备的网卡。
根据本说明书实施例实施例的第二方面,提供一种分布式系统,所述分布式系统用于执行分布式任务,且包括至少两个设备,所述至少两个设备包括第一设备;所述分布式任务包括至少两个由所述至少两个设备分别执行的子任务;
所述第一设备的处理器,用于读取所述第一设备的内存中的数据以执行第一设备对应的第一子任务,在得到所述第一子任务的结果数据后存储于所述第一设备的内存中;
所述第一设备的网卡,用于将所述第一设备的内存中的所述第一子任务的结果数据通过网络传输至分布式系统的第二设备的网卡;
所述第二设备的网卡,用于接收所述第一子任务的结果数据,并将所述第一子任务的结果数据写入所述第二设备的内存中。
在一些例子中,所述第二设备的处理器,用于读取所述第二设备的内存中的所述结果数据以执行第二设备对应的第二子任务;和/或
所述第二设备的网卡,用于将所述第二设备的内存中的结果数据通过网络传输至分布式系统的第三设备的网卡,以使所述第三设备利用所述结果数据执行第三设备对应的第三子任务。
在一些例子中,所述第二设备的处理器,还用于将第二设备的内存中的所述结果数据顺序写入所述第二设备的磁盘。
在一些例子中,所述第二设备的处理器,还用于删除所述第二设备的内存中的所述结果数据;以及在接收到结果数据发送指令后,从所述第二设备的磁盘顺序读取所述结果数据至所述第二设备的内存中,以使所述第二设备的网卡将所述第二设备的内存中的结果数据通过网络传输至分布式系统的第三设备的网卡。
在一些例子中,所述第一设备的内存的存储区域包括用于存储应用程序数据的子区域;所述第一子任务的结果数据存储于所述内存的子区域中,
所述第一设备的网卡,还用于将所述内存的子区域中的的结果数据,通过远程直接访问技术传输至所述第二设备的网卡。
根据本说明书实施例实施例的第三方面,提供一种分布式系统的第一设备,所述分布式系统用于执行分布式任务,且包括至少两个设备,所述至少两个设备包括第一设备;所述分布式任务包括至少两个由所述至少两个设备分别执行的子任务;所述第一设备包括:
处理器;
用于存储处理器可执行指令的存储器;
网卡;
内存;
其中,所述处理器被配置为:读取所述第一设备的内存中的数据以执行第一设备对应的第一子任务,在得到所述第一子任务的结果数据后存储于所述第一设备的内存中;
所述网卡被配置为:将所述第一设备的内存中的所述第一子任务的结果数据通过网络传输至分布式系统的第二设备的网卡;以使所述第二设备的网卡将所述第一子任务的结果数据写入所述第二设备的内存中。
根据本说明书实施例实施例的第四方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述第一方面任一例子所述方法的步骤。
根据本说明书实施例实施例的第五方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有若干计算机指令,所述计算机指令被执行时执行上述第一方面任一例子所述的方法。
本说明书实施例的实施例提供的技术方案可以包括以下有益效果:
本说明书实施例提供了一种分布式任务的处理方法、分布式系统及第一设备,分布式任务包括至少两个由分布式系统中的至少两个设备分别执行的子任务,分布式系统的至少两个设备包括第一设备。第一设备的处理器将执行的第一子任务的结果数据存储在内存中,在数据计算阶段中减少了与磁盘的交互。同时,由于结果数据是存放在内存中,因此第一设备的网卡可以直接将内存中结果数据通过网络传输至第二设备的网卡,在数据交换阶段也减少了与磁盘的交互以及对计算资源的消耗。上述方法数据计算阶段与数据交换阶段中均减少了计算资源的消耗,缩短了分布式任务的执行时长,有利于对实时性要求较大的分布式任务的执行。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。
附图说明
此处的附图被并入说明书中并构成本说明书实施例的一部分,示出了符合本说明书实施例的实施例,并与说明书一起用于解释本说明书实施例的原理。
图1是本说明书实施例根据一实施例示出的分布式系统的示意图。
图2是本说明书实施例根据一实施例示出的一种分布式任务的处理方法的流程图。
图3是本说明书实施例根据一实施例示出的Spark架构的示意图。
图4是本说明书实施例根据另一实施例示出的一种分布式任务的处理方法的流程图。
图5(a)是本说明书实施例根据一实施例示出的一种分布式系统的结构示意图。
图5(b)是本说明书实施例根据另一实施例示出的一种分布式系统的结构示意图。
图6是本说明书实施例根据一实施例示出的一种分布式系统的第一设备的硬件结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书实施例的一些方面相一致的装置和方法的例子。
在本说明书实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书实施例。在本说明书实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
随着互联网技术的快速发展,智能机器与人类、机器与机器之间的广泛互联产生了海量的大数据。面对海量数据规模的大数据,需要通过分布式系统对海量的数据进行共同维护。分布式系统可以基于机器集群实现,作为例子,图1示出了分布式系统的示意图。分布式系统100可以包括多个节点,如图中示出的节点110-140。每个节点可以分别存储一部分数据,并对所存储的数据进行维护。一方面,在分布式系统下,当一项任务的执行需要利用到存储在不同节点的数据时,一项任务可以划分为多个子任务。每个子任务分别调度到存储有所需数据的节点中执行。另一方面,在执行诸如数据存储、管理、分析等任务时,由于任务的复杂度大大超出了单台设备的处理能力,因此可以将复杂的任务划分成多个子任务,分交由多个节点分别执行。上述由多个节点协同执行的任务可以称为分布式任务。分布式任务所划分的子任务可以是同步并行处理的多个子任务;也可以是其中一部分的子任务在另一部分子任务执行结果的基础上执行,即子任务之间有先后执行顺序,是异步处理的多个子任务。不同节点在硬件配置上可以互不相同,例如不同节点拥有不同的运算能力或数据收发能力。根据各子任务的属性和/或执行各子任务所需的数据,可以将子任务下发至不同的节点进行处理。
多个节点在协同执行分布式任务的过程中,由于每个节点只负责一部分数据的运算,因此节点之间的数据交换(shuffle)是必不可少的过程。在相关技术中,节点的处理器在执行所分配的子任务过程中,子任务的中间数据多次在内存与磁盘中读写。处理器在得到子任务相应的结果数据后,可以将结果数据从内存存入磁盘等存储设备中。在数据交换阶段,节点的处理器通过随机读写(Input/Output,I/O)将磁盘中的结果数据读取到内存中,然后再通过如TCP/IP协议等网络协议,将结果数据发送至下一个子任务的节点。
然而,数据交换阶段中磁盘的随机I/O对磁盘性能消耗较大,尤其容易将磁盘的每秒读写次数(Input/Output Operations Per Second,IOPS)消耗殆尽。数据交换所占用的计算资源较大,如何减少数据交换时消耗的计算资源,是本领域亟待解决的技术问题。
为此,本说明书实施例提出了一种分布式任务的处理方法,该分布式任务由分布式系统执行。分布式系统包括至少两个设备,分布式任务包括至少两个子任务。至少两个子任务分别由分布式系统所包括的至少两个设备执行。其中,用于执行子任务的设备至少包括第一设备。上述方法包括如图2所述的步骤:
步骤210:由所述第一设备的处理器读取所述第一设备的内存中的数据以执行第一设备对应的第一子任务,在得到所述第一子任务的结果数据后存储于所述第一设备的内存中;
步骤220:由所述第一设备的网卡将所述第一设备的内存中的所述第一子任务的结果数据通过网络传输至分布式系统的第二设备的网卡,以使所述第二设备的网卡将所述第一子任务的结果数据写入所述第二设备的内存中。
其中,步骤210与步骤220可以分别由不同的执行主体执行。作为例子,步骤210可以由第一设备的处理器执行;步骤220可以由第一设备的网卡执行。
分布式系统是可以如图1所示的分布式系统100,第一设备和第二设备可以是节点110-140中的任一节点。分布式系统可以搭载有基于内存计算的大数据存储计算架构,如Spark计算架构(以下简称Spark)。以Spark为例,如图3所示为Spark架构的示意图。Spark架构包括驱动程序Spark Driver 310、集群资源管理器Cluster Manager 320、一个或多个工作节点Worker Node 330,图3以两个为例。Worker Node 330中包括执行器Executor 331。其中,Spark Driver 310可以安装在分布式系统的节点中,是Spark程序的执行入口,用于构建有向无环图(Directed Acyclic Graph,DAG)、申请集群资源、创建累加器(accumulator)、广播变量(broadcast variables);分布式系统中的一部分节点可以作为Cluster Manager 320,为程序提供计算资源的外部服务;分布式系统中的另一部分节点可以作为Worker Node 330,是集群中的工作节点,负责任务计算;Executor 331是WorkerNode 330中的一个进程,用于管理一个或多个CPU线程上的任务计算。
一般来说,节点对数据的处理可以包括数据计算与数据交换。数据计算即利用本节点所存储的数据执行所调度的子任务,得到该子任务对应的结果数据。数据交换即将该子任务的结果数据传输至其他节点。对于搭载有如Spark等内存计算架构的分布式系统而言,第一设备在数据计算过程中,也即在执行第一子任务时,可以基于内存计算,将第一子任务的结果数据存储在内存中,而非存储在磁盘中。与基于磁盘计算的架构相比,基于内存计算架构由于在计算过程中减少了与磁盘的交互,因此有更高的吞吐量与更低的访问延迟,也即从数据计算的阶段减少与磁盘交互,节约计算资源。
随后,第一设备的网卡将存储在内存中的结果数据通过网络传输至第二设备的网卡,以使第二设备的网卡将结果数据写入到第二设备的内存,至此完成第一设备与第二设备之间数据交换的过程。
本说明书实施例提供的一种分布式任务的处理方法,一方面,第一设备在数据计算阶段将第一子任务的结果数据存储在内存中,减少了与磁盘的交互。另一方面,由于在计算阶段中第一子任务的结果数据是存储在内存,因此在数据交换阶段第一设备的网卡可以直接将存储在内存中的结果数据通过网络传输至第二设备的网卡,以使第二设备的网卡将结果数据写入第二设备的内存。在计算阶段与数据交换阶段均较少了与磁盘的交互,以及对计算资源的消耗。因此缩短了分布式任务的执行时长,有利于对实时性要求较大的分布式任务的执行。
第一设备的处理器在执行第一子任务时从第一设备的内存中读取所需的数据,在一些实施例中,所需的数据在加载至第一设备的内存前可以存放在磁盘或其他存储设备。
在一些实施例中,第一设备与第二设备可以是分布式系统中用于执行分布式任务所包括的子任务的节点。如此,在第二设备的网卡将第一子任务的结果数据写入第二设备的内存后,第二设备的处理器可以读取第二设备的内存中的第一子任务的结果数据,以执行第二设备对应的第二子任务。
在一些实施例中,为了防止数据丢失,第二设备的网卡在将第一子任务的结果数据写入第二设备的内存的同时,第二设备的处理器还可以将第一子任务的结果数据顺序写入第二设备的磁盘中。
在一些实施例中,在第一子任务的结果数据均写入第二设备的内存以及硬盘后,若第二子任务未满足执行条件,则第二设备的处理器可以删除第二设备内存中的第一子任务的结果数据。且在第二子任务满足执行条件时,第二设备的处理器再从磁盘中顺序读取第一子任务的结果数据至第二设备的内存,以执行第二子任务。其中,执行条件可以包括但不限于:达到执行时间和/或第二设备存储有执行任务所需的全部数据。
在第一设备与第二设备均为用于执行子任务的节点的情况下,数据计算阶段与数据交换阶段均在第一设备中完成。然而,数据计算阶段与数据交换阶段对节点的硬件配置有不同的要求。例如,进行数据计算的节点在运算能力上会有更高的要求;进行数据交换的节点则在数据收发能力上有更高的要求。若第一设备同时承担数据计算与数据交换,将同时对第一设备的运算能力与数据收发能力有较高的要求,为第一设备带来了一定的负担。如此,在一些实施例中,可以利用远程数据交换服务(Remote Shuffle Service,RSS)来实现数据计算与数据交换的解耦。如图4所示,第一设备可以是分布式系统中用于执行分布式任务所包括的子任务的节点;第二设备可以是用于存储子任务的结果数据的服务器,例如RSS服务器。其中,第二设备除了可以存储有第一子任务的结果数据以外,还可以存储有由分布式系统下其他节点所执行的子任务的结果数据。分布式系统还包括第三设备,第三设备可以是用于执行分布式任务所包括的子任务的节点。如此,本实施例的一种分布式任务的处理方法,可以包括如图4所示的步骤:
步骤411:第一设备的处理器从第一设备的内存中读取执行第一子任务所需的数据;
步骤412:第一设备的处理器执行第一子任务,得到第一子任务的结果数据;
步骤413:第一设备的处理器将第一子任务的结果数据存储至第一设备的内存中;
步骤414:第一设备的网卡从第一设备的内存中读取第一子任务的结果数据;
步骤415:第一设备的网卡将第一子任务的结果数据通过网络传输至RSS服务器的网卡;
步骤421:RSS服务器的网卡将第一子任务的结果数据写入RSS服务器的内存中;
步骤422:RSS服务器的网卡从RSS服务器的内存中读取第一子任务的结果数据;
步骤423:RSS服务器的网卡将第一子任务的结果数据通过网络传输至第三设备的网卡;
步骤431:第三设备的网卡将第一子任务的结果数据写入第三设备的内存中;
步骤432:第三设备的处理器从第三设备的内存中读取第一子任务的结果数据;
步骤433:第三设备的处理器利用第一子任务的结果数据执行第三设备对应的第三子任务。
在一些实施例中,RSS服务器可以在接收到第一子任务的结果数据发送指令后执行步骤422。
在一些实施例中,为了防止数据丢失,RSS服务器在执行步骤421的同时,RSS服务器的处理器还可以将第一子任务的结果数据顺序写入RSS服务器的磁盘中。
在一些实施例中,在第一子任务的结果数据均写入RSS服务器的内存以及硬盘后,若RSS服务器未接收到第一子任务的结果数据发送指令,则RSS服务器的处理器可以删除RSS服务器内存中的第一子任务的结果数据。且在接收到第一子任务的结果数据发送指令时,RSS服务器的处理器再从磁盘中顺序读取第一子任务的结果数据至RSS服务器的内存,随后RSS服务器执行步骤422。
在一些实施例中,第三设备在执行完第三子任务后,可以将第三子任务的结果数据发送至RSS服务器进行存储,以供分布式系统中的其他节点调用。第三子任务的结果数据的发送过程可以参考上述实施例,本说明书实施例在此不再赘述。
如此,第一设备在执行完第一子任务后,第一子任务的结果数据存放在RSS服务器中。当第三设备需要利用第一子任务的结果数据时,第三设备可以RSS服务器请求结果数据,而无需与第一设备进行数据交互。对于第一设备来说,当第一设备执行多个子任务时,第一设备可以将多个子任务的结果数据均发送至RSS服务器,利用RSS服务器将多个子任务的结果数据分别发送至下一个节点。因此第一设备无需与多个节点进行数据交换,大大减少了第一设备的数据收发量,从而将数据计算与数据交换解耦。由于第一设备只需承担数据计算工作,第一设备的硬件配置上可以更关注运算能力;而第二设备主要承担数据交换,在硬件配置上可以更关注数据收发能力。
如上所述,在传统的数据交换过程中,结果数据通常通过如TCP/IP协议等网络协议发送至下一个节点。内存的存储区域可以包括用于存储应用程序数据的子区域,也称为用户态内存,或用户空间的内存;还包括用于存储操作系统数据的子区域,也称为内核态内存,或内核空间的内存。在传统的TCP/IP技术中,数据发送设备需要先将待传输的数据从磁盘读取到用户态内存中,然后数据发送设备的CPU将待传输数据拷贝至内核态内存,而后网卡将内核态内存中的待传输数据拷贝至自身的缓冲区中,进行处理后通过物理链路发送到数据接收设备。待传输数据的多次拷贝依赖于CPU执行,对CPU消耗较大。为此,在一些实施例中,第一子任务的结果数据从第一设备传输至第二设备的过程可以包括,第一设备的网卡将用户态内存中的结果数据,通过远程直接访问技术(Remote Direct Memory Acess,RDMA)传输至第二设备的网卡。相应地,第一设备以及第二设备的网卡可以是RDMA网卡。RDMA技术是一种新的直接内存访问技术,利用RDMA技术中,数据发送设备的网卡可以直接将用户态内存中的待传输数据拷贝至自身的缓冲区中。在对待传输数据进行各层报文组装后通过物理链路发送至数据接收设备的网卡。数据接收设备的网卡接收到数据后,剥离各层报文头和校验码后,可以直接将接收的数据拷贝至用户态内存中。因此,RDMA技术可以将数据从一个设备的内存直接存取至另一设备的内存,绕开了内核态内存的拷贝、系统调用和CPU上下文切换,从而节约了TPC/IP协议的开销。与传统的TCP/IP技术相比,RDMA技术在数据传输过程中大大减少了CPU的消耗,缩短传输时延。
在本实施例中,第二设备可以是上述的RSS服务器,分布式系统还包括第三设备,第三设备可以是用于执行分布式任务所包括的子任务的节点。在本实施例中,分布式任务处理的方法可以包括如上述图4的步骤。如此,在本实施例中,第一设备的网卡可以将用户态内存中的结果数据,通过RDMA技术传输至RSS服务器的网卡。RSS服务器的网卡可以将第一子任务的结果数据写入RSS服务器的内存中。随后,在接收到结果数据发送指令后,RSS服务器的网卡可以从RSS服务器的内存中读取第一子任务的结果数据,并通过RDMA技术传输至第三设备的网卡。第三设备的网卡将第一子任务的结果数据写入第三设备的内存中。在分布式计算领域中,诸如Spark等许多基于内存的计算框架在数据交换过程中,由于仍然存在数据在内存与磁盘之间交互的过程,严重消耗了CPU、内存、磁盘、网络资源,导致资源浪费,而本实施例使用RSS技术将数据交换过程拉远到远端(RSS服务器),并结合RDMA技术解决数据交换过程中资源消耗的问题。
本实施例提供的一种分布式任务的处理方法,第一设备的网卡可以直接从用户态内存中读取中间结果数据,数据传输绕过内核(内核旁路,Kernel Bypass),实现零拷贝。网卡基于RDMA技术将中间结果数据发送至第二设备的网卡。第二设备的网卡接收到中间结果数据后,可以直接将数据写入第二设备的用户态内存中。一方面由于中间结果数据是直接从内存中读取的,减少了与磁盘交互;另一方面,中间结果数据可以直接从用户态内存传输至网卡,无需经过CPU的处理,因此在数据交换过程中减少了CPU的消耗,节约了计算资源。
基于上述任意实施例所述的一种分布式任务的处理方法,本说明书实施例还提供了一种分布式系统,用于执行分布式任务。分布式任务包括至少两个子任务。至少两个子任务分别由分布式系统所包括的至少两个设备执行。如图5(a)-图5(b)所示,分布式系统500至少包括用于执行上述子任务的第一设备510,还包括第二设备520。其中,
第一设备510的处理器,用于读取第一设备510的内存中的数据以执行第一设备510对应的第一子任务,在得到第一子任务的结果数据后存储于第一设备510的内存中;
第一设备510的网卡,用于将第一设备510的内存中的第一子任务的结果数据通过网络传输至分布式系统500的第二设备520的网卡;
第二设备520的网卡,用于接收第一子任务的结果数据,并将第一子任务的结果数据写入第二设备520的内存中。
在一些实施例中,第二设备520的处理器,用于读取第二设备520的内存中的结果数据以执行第二设备520对应的第二子任务。
在一些实施例中,如图5(b)所示,分布式系统500还包括第三设备530。第二设备520的网卡,用于将第二设备520的内存中的结果数据通过网络传输至分布式系统的第三设备530的网卡,以使第三设备530利用结果数据执行第三设备530对应的第三子任务。
在一些实施例中,第二设备520的处理器,还用于将第二设备520的内存中的结果数据顺序写入第二设备520的磁盘。
在一些实施例中,第二设备520的处理器,还用于删除第二设备520的内存中的结果数据;以及在接收到结果数据发送指令后,从第二设备520的磁盘顺序读取结果数据至第二设备520的内存中,以使第二设备520的网卡将第二设备520的内存中的结果数据通过网络传输至分布式系统的第三设备530的网卡。
在一些实施例中,第一设备510的内存的存储区域包括用于存储应用程序数据的子区域;第一子任务的结果数据存储于内存的子区域中,第一设备510的网卡,还用于将内存的子区域中的的结果数据,通过远程直接访问技术传输至第二设备520的网卡。
基于上述任意实施例所述的一种分布式任务的处理方法,本说明书实施例还提供了如图6所示的一种分布式系统的第一设备的结构示意图。分布式系统用于执行分布式任务,且包括至少两个设备,至少两个设备包括第一设备;分布式任务包括至少两个由上述至少两个设备分别执行的子任务。如图6,在硬件层面,该第一设备包括处理器、内部总线、网卡、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,处理器被配置为:读取所述第一设备的内存中的数据以执行第一设备对应的第一子任务,在得到所述第一子任务的结果数据后存储于所述第一设备的内存中。网卡被配置为:将所述第一设备的内存中的所述第一子任务的结果数据通过网络传输至分布式系统的第二设备的网卡;以使所述第二设备的网卡将所述第一子任务的结果数据写入所述第二设备的内存中。
基于上述任意实施例所述的一种分布式任务的处理方法,本说明书实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可用于执行上述任意实施例所述的分布式任务的处理方法。
基于上述任意实施例所述的一种分布式任务的处理方法,本说明书实施例还提供了一种计算机存储介质,存储介质存储有计算机程序,计算机程序被处理器执行时可用于执行上述任意实施例所述的一种分布式任务的处理方法。
上述对本说明书实施例特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书实施例的其它实施方案。本说明书实施例旨在涵盖本说明书实施例的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书实施例的一般性原理并包括本说明书实施例未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书实施例的真正范围和精神由下面的权利要求指出。
Claims (13)
1.一种分布式任务的处理方法,所述分布式任务包括至少两个由分布式系统中的至少两个设备分别执行的子任务;所述分布式系统的至少两个设备包括第一设备;所述方法包括:
由所述第一设备的处理器读取所述第一设备的内存中的数据以执行第一设备对应的第一子任务,在得到所述第一子任务的结果数据后存储于所述第一设备的内存中;
由所述第一设备的网卡将所述第一设备的内存中的所述第一子任务的结果数据通过网络传输至分布式系统的第二设备的网卡,以使所述第二设备的网卡将所述第一子任务的结果数据写入所述第二设备的内存中。
2.根据权利要求1所述的方法,所述第二设备的网卡将所述第一子任务的结果数据写入所述第二设备的内存中,包括:
所述第二设备的处理器读取所述第二设备的内存中的所述结果数据以执行第二设备对应的第二子任务;和/或
所述第二设备的网卡将所述第二设备的内存中的结果数据通过网络传输至分布式系统的第三设备的网卡,以使所述第三设备利用所述结果数据执行第三设备对应的第三子任务。
3.根据权利要求2所述的方法,所述第二设备的网卡将所述第一子任务的结果数据写入所述第二设备的内存中后,还包括:
由所述第二设备的处理器将第二设备的内存中的所述结果数据顺序写入所述第二设备的磁盘。
4.根据权利要求3所述的方法,所述由所述第二设备的处理器将第二设备的内存中的所述结果数据顺序写入所述第二设备的磁盘后,还包括:
所述第二设备的处理器删除所述第二设备的内存中的所述结果数据;
在所述第二设备的处理器接收到结果数据发送指令后,从所述第二设备的磁盘顺序读取所述结果数据至所述第二设备的内存中,以使所述第二设备的网卡将所述第二设备的内存中的结果数据通过网络传输至分布式系统的第三设备的网卡。
5.根据权利要求1所述的方法,所述第一设备的内存的存储区域包括用于存储应用程序数据的子区域;所述第一子任务的结果数据存储于所述内存的子区域中,所述由所述第一设备的网卡将所述第一设备的内存中的所述第一子任务的结果数据通过网络传输至分布式系统的第二设备的网卡,包括:
由所述第一设备的网卡将所述内存的子区域中的结果数据,通过远程直接访问技术传输至所述第二设备的网卡。
6.一种分布式系统,所述分布式系统用于执行分布式任务,且包括至少两个设备,所述至少两个设备包括第一设备;所述分布式任务包括至少两个由所述至少两个设备分别执行的子任务;
所述第一设备的处理器,用于读取所述第一设备的内存中的数据以执行第一设备对应的第一子任务,在得到所述第一子任务的结果数据后存储于所述第一设备的内存中;
所述第一设备的网卡,用于将所述第一设备的内存中的所述第一子任务的结果数据通过网络传输至分布式系统的第二设备的网卡;
所述第二设备的网卡,用于接收所述第一子任务的结果数据,并将所述第一子任务的结果数据写入所述第二设备的内存中。
7.根据权利要求6所述的系统,所述第二设备的处理器,用于读取所述第二设备的内存中的所述结果数据以执行第二设备对应的第二子任务;和/或
所述第二设备的网卡,用于将所述第二设备的内存中的结果数据通过网络传输至分布式系统的第三设备的网卡,以使所述第三设备利用所述结果数据执行第三设备对应的第三子任务。
8.根据权利要求7所述的系统,所述第二设备的处理器,还用于将第二设备的内存中的所述结果数据顺序写入所述第二设备的磁盘。
9.根据权利要求8所述的系统,所述第二设备的处理器,还用于删除所述第二设备的内存中的所述结果数据;以及在接收到结果数据发送指令后,从所述第二设备的磁盘顺序读取所述结果数据至所述第二设备的内存中,以使所述第二设备的网卡将所述第二设备的内存中的结果数据通过网络传输至分布式系统的第三设备的网卡。
10.根据权利要求6所述的系统,所述第一设备的内存的存储区域包括用于存储应用程序数据的子区域;所述第一子任务的结果数据存储于所述内存的子区域中,
所述第一设备的网卡,还用于将所述内存的子区域中的的结果数据,通过远程直接访问技术传输至所述第二设备的网卡。
11.一种分布式系统的第一设备,所述分布式系统用于执行分布式任务,且包括至少两个设备,所述至少两个设备包括第一设备;所述分布式任务包括至少两个由所述至少两个设备分别执行的子任务;所述第一设备包括:
处理器;
用于存储处理器可执行指令的存储器;
网卡;
内存;
其中,所述处理器被配置为:读取所述第一设备的内存中的数据以执行第一设备对应的第一子任务,在得到所述第一子任务的结果数据后存储于所述第一设备的内存中;
所述网卡被配置为:将所述第一设备的内存中的所述第一子任务的结果数据通过网络传输至分布式系统的第二设备的网卡;以使所述第二设备的网卡将所述第一子任务的结果数据写入所述第二设备的内存中。
12.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如权利要求1-5任一所述方法的步骤。
13.一种计算机可读存储介质,所述计算机可读存储介质上存储有若干计算机指令,所述计算机指令被执行时执行权利要求1-5任一所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210209756.1A CN114741166A (zh) | 2022-03-04 | 2022-03-04 | 一种分布式任务的处理方法、分布式系统及第一设备 |
PCT/CN2023/078857 WO2023165484A1 (zh) | 2022-03-04 | 2023-02-28 | 一种分布式任务的处理方法、分布式系统及第一设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210209756.1A CN114741166A (zh) | 2022-03-04 | 2022-03-04 | 一种分布式任务的处理方法、分布式系统及第一设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114741166A true CN114741166A (zh) | 2022-07-12 |
Family
ID=82275096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210209756.1A Pending CN114741166A (zh) | 2022-03-04 | 2022-03-04 | 一种分布式任务的处理方法、分布式系统及第一设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114741166A (zh) |
WO (1) | WO2023165484A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023165484A1 (zh) * | 2022-03-04 | 2023-09-07 | 阿里巴巴(中国)有限公司 | 一种分布式任务的处理方法、分布式系统及第一设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109062929A (zh) * | 2018-06-11 | 2018-12-21 | 上海交通大学 | 一种查询任务通信方法及系统 |
US20190354406A1 (en) * | 2019-07-29 | 2019-11-21 | Intel Corporation | Technologies for rdma queue pair qos management |
CN112486502A (zh) * | 2020-11-30 | 2021-03-12 | 京东方科技集团股份有限公司 | 分布式任务的部署方法、装置、计算机设备和存储介质 |
CN112486402A (zh) * | 2019-09-12 | 2021-03-12 | 华为技术有限公司 | 一种存储节点及系统 |
CN112948025A (zh) * | 2021-05-13 | 2021-06-11 | 阿里云计算有限公司 | 数据加载方法、装置及存储介质、计算设备、计算系统 |
US20210209069A1 (en) * | 2018-08-17 | 2021-07-08 | Siemens Aktiengesellschaft | Method, device, and system for processing distributed data, and machine readable medium |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107037989A (zh) * | 2017-05-17 | 2017-08-11 | 北京小米移动软件有限公司 | 分布式计算系统中的数据处理方法和装置 |
CN110113387A (zh) * | 2019-04-17 | 2019-08-09 | 深圳前海微众银行股份有限公司 | 一种基于分布式批量处理系统的处理方法、装置及系统 |
CN114741166A (zh) * | 2022-03-04 | 2022-07-12 | 阿里巴巴(中国)有限公司 | 一种分布式任务的处理方法、分布式系统及第一设备 |
-
2022
- 2022-03-04 CN CN202210209756.1A patent/CN114741166A/zh active Pending
-
2023
- 2023-02-28 WO PCT/CN2023/078857 patent/WO2023165484A1/zh unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109062929A (zh) * | 2018-06-11 | 2018-12-21 | 上海交通大学 | 一种查询任务通信方法及系统 |
US20210209069A1 (en) * | 2018-08-17 | 2021-07-08 | Siemens Aktiengesellschaft | Method, device, and system for processing distributed data, and machine readable medium |
US20190354406A1 (en) * | 2019-07-29 | 2019-11-21 | Intel Corporation | Technologies for rdma queue pair qos management |
CN112486402A (zh) * | 2019-09-12 | 2021-03-12 | 华为技术有限公司 | 一种存储节点及系统 |
CN112486502A (zh) * | 2020-11-30 | 2021-03-12 | 京东方科技集团股份有限公司 | 分布式任务的部署方法、装置、计算机设备和存储介质 |
CN112948025A (zh) * | 2021-05-13 | 2021-06-11 | 阿里云计算有限公司 | 数据加载方法、装置及存储介质、计算设备、计算系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023165484A1 (zh) * | 2022-03-04 | 2023-09-07 | 阿里巴巴(中国)有限公司 | 一种分布式任务的处理方法、分布式系统及第一设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2023165484A1 (zh) | 2023-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101721466B1 (ko) | 결함 내성 배치 처리 | |
CN114741207B (zh) | 一种基于多维度组合并行的gpu资源调度方法和系统 | |
KR100528973B1 (ko) | 가비지 콜렉션 방법 및 그 장치 | |
US20090320023A1 (en) | Process Migration Based on Service Availability in a Multi-Node Environment | |
KR100538727B1 (ko) | 멀티 프로세서 시스템 | |
JP5181184B2 (ja) | エージェントを実行する装置及び方法 | |
CN115202836A (zh) | 一种提高gpu利用效率的算力池化系统 | |
CN116302574B (zh) | 一种基于MapReduce的并发处理方法 | |
CN116795647A (zh) | 一种数据库异构资源管理与调度方法、装置、设备及介质 | |
CN114741166A (zh) | 一种分布式任务的处理方法、分布式系统及第一设备 | |
CN112860396A (zh) | 一种基于分布式深度学习的gpu调度方法及系统 | |
CN110245024B (zh) | 静态存储块的动态分配系统及其方法 | |
CN114253713B (zh) | 一种基于reactor的异步批处理方法及系统 | |
Liu et al. | A robotic communication middleware combining high performance and high reliability | |
CN110955461A (zh) | 计算任务的处理方法、装置、系统、服务器和存储介质 | |
CN116069480B (zh) | 一种处理器及计算设备 | |
CN116302504B (zh) | 线程块的处理系统、方法及相关设备 | |
CN111443898A (zh) | 基于优先级队列与有限状态机的流程式控制软件设计方法 | |
CN116382861A (zh) | Numa架构的服务器网络进程自适应调度方法、系统及介质 | |
CN111913812B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN113923212B (zh) | 一种网络数据包处理方法和装置 | |
CN113407305A (zh) | 一种任务部署方法、装置、电子设备及存储介质 | |
CN111338782A (zh) | 面向共享式突发数据缓存的基于竞争感知的节点分配方法 | |
CN113835852B (zh) | 任务数据的调度方法及装置 | |
CN118277087B (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 |