CN115002047A - 一种远程直接数据存取方法、装置、设备以及存储介质 - Google Patents
一种远程直接数据存取方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN115002047A CN115002047A CN202210557200.1A CN202210557200A CN115002047A CN 115002047 A CN115002047 A CN 115002047A CN 202210557200 A CN202210557200 A CN 202210557200A CN 115002047 A CN115002047 A CN 115002047A
- Authority
- CN
- China
- Prior art keywords
- queue
- receiving
- sending
- matched
- response
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/622—Queue service order
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/629—Ensuring fair share of resources, e.g. weighted fair queuing [WFQ]
-
- 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
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开提供了一种远程直接数据存取方法、装置、设备以及存储介质,涉及计算机技术领域,尤其涉及数据传输技术领域。具体实现方案为:将多个发送队列中的发送工作队列元素,调度到至少一个共享发送队列中;根据与每个共享发送队列分别对应的发送上下文,对每个共享发送队列中的发送工作队列元素进行按序处理,形成与发送工作队列元素匹配的发送报文;将各发送报文发送至匹配的响应端,以指示响应端将发送报文中的负载信息进行内存写入,本公开实施例的技术方案提供了一种远程直接进行数据存取的新方式,提高了多任务的并发执行能力。
Description
技术领域
本公开涉及计算机技术领域,具体涉及数据传输技术领域,尤其涉及一种远程直接数据存取方法、装置、设备以及存储介质。
背景技术
在RDMA(Remote Direct Memory Access,远程直接数据存储)实现中,IB(Infiniband,无限带宽)协议为其主流实现协议;IB协议在传输层上定义了可靠和不可靠两种类型的传输模式。
在可靠服务类型的定义上,有RD(Reliable Datagram)服务类型,在RD服务类型中,多个队列可以关联一个传输层context(上下文),一个发送队列可以向多个接收队列发包,多个发送队列也可以向一个接收队列发包;队列间没有关系,但两个节点间的传输层context关联;发送context记录报文发送状态与完成状态,接收context记录报文接收状态与应答状态;发送context每次记录一个任务的发送状态和完成状态,完成后,才能处理新的任务;虽然队列与context是多对一的关系,但在任意一时间,只有一个队列与context关联。
也即,在RD服务类型定义上,多个发送队列关联到同一个传输context,一旦存在多队列并发处理,传输层context无法记录多个队列的发送状态和完成状态,进而无法真正的实现共享context之间的连接。
发明内容
本公开提供了一种远程直接数据存取方法、装置、设备以及存储介质。
根据本公开的一方面,提供了一种远程直接数据存取方法,由请求端执行,包括:
将多个发送队列中的发送WQE(Work Queue Element,工作队列元素),调度到至少一个共享发送队列中;
根据与每个共享发送队列分别对应的发送上下文,对每个共享发送队列中的发送WQE进行按序处理,形成与发送WQE匹配的发送报文;
将各发送报文发送至匹配的响应端,以指示响应端将发送报文中的负载信息进行内存写入。
根据本公开的另一方面,提供了一种远程直接数据存取方法,由响应端执行,包括:
每当接收到请求端发送的发送报文时,从多个接收队列中获取与所述发送报文匹配的接收WQE,并将获取的接收WQE调度至匹配的共享接收队列中;
根据与每个共享接收队列分别对应的接收上下文,对每个共享接收队列中的接收WQE进行按序处理,以将与各接收WQE对应的发送报文中的负载信息进行内存写入。
根据本公开的另一方面,提供了一种远程直接数据存取装置,由请求端执行,包括:
发送WQE调度模块,用于将多个发送队列中的发送WQE,调度到至少一个共享发送队列中;
发送报文形成模块,用于根据与每个共享发送队列分别对应的发送上下文,对每个共享发送队列中的发送WQE进行按序处理,形成与发送WQE匹配的发送报文;
发送报文发送模块,用于将各发送报文发送至匹配的响应端,以指示响应端将发送报文中的负载信息进行内存写入。
根据本公开的另一方面,提供了另一种远程直接数据存取装置,由响应端执行,包括:
接收WQE获取及调度模块,用于每当接收到请求端发送的发送报文时,从多个接收队列中获取与所述发送报文匹配的接收WQE,并将获取的接收WQE调度至匹配的共享接收队列中;
接收WQE处理及负载信息写入模块,用于根据与每个共享接收队列分别对应的接收上下文,对每个共享接收队列中的接收WQE进行按序处理,以将与各接收WQE对应的发送报文中的负载信息进行内存写入。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开所提供的由请求端执行的远程直接数据存取方法,或者执行由响应端执行的远程直接数据存取方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行本公开所提供的由请求端执行的远程直接数据存取方法,或者执行由响应端执行的远程直接数据存取方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现本公开所提供的远程直接数据存取方法。
本公开实施例的技术方案提高了多任务的并发执行能力。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1a是根据本公开实施例提供的一种远程直接数据存取方法的流程示意图;
图1b是根据本公开实施例提供的一种将请求端发送WQE调度至共享发送队列的示意图;
图2a是根据本公开实施例提供的另一种远程直接数据存取方法的流程示意图;
图2b是根据本公开实施例提供的一种并发处理发送WQE过程中的头阻塞问题示意图;
图3是根据本公开实施例提供的一种远程直接数据存取方法的流程示意图;
图4a是根据本公开实施例提供的另一种远程直接数据存取方法的流程示意图;
图4b是根据本公开实施例提供的一种展示对发送报文的响应状态的示意图;
图4c是根据本公开实施例提供的一种由非聚合应答至聚合应答方式的演变示意图;
图5是根据本公开实施例提供的一种远程直接数据存取装置的结构示意图;
图6是根据本公开实施例提供的另一种远程直接数据存取装置的结构示意图;
图7是根据本公开实施例提供的一种用来实现本公开实施例的远程直接数据存取的方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1a是根据本公开实施例提供的一种由请求端执行的远程直接数据存取方法的流程示意图,本实施例适用于从发送端的存储位置直接提取指定数据并发送至接收端的情况,该方法可以通过远程直接数据存取装置来执行,该装置可以通过软件和/或硬件的方式实现,并一般可以集成于终端的网卡中。参考图1a,该方法具体包括如下步骤:
S110、将多个发送队列中的发送WQE,调度到至少一个共享发送队列中。
其中,发送队列可以指存放发送任务的队列,发送队列可以用于存放发送任务,发送任务可以指请求端所下发的对待发送数据的发送通知。例如,请求端1中的应用程序1需要发送位于内存X1位置的数据1、位于内存X2的数据2和位于内存X3的数据3至其他终端的内存中,则请求端1下发与数据1匹配的发送任务1、与数据2匹配的发送任务2和与数据3匹配的发送任务3至与应用程序1匹配的发送队列1。其中,每个发送任务用于指示从发送端的什么内存位置获取对应的数据打包成数据报文,发送至接收端。
需要说明,请求端上可以配置多个应用程序,每个应用程序可以对应一个匹配的发送队列。
发送WQE可以指发送任务,相应的,每个发送队列可以用于存放发送WQE。
共享发送队列可以是一种存放来自不同发送队列中发送任务的队列,一个请求端可以包括至少一个共享发送队列。
在本公开实施例中,为保证请求端中多个发送队列的发送WQE的并发性能,可以将请求端中来自不同应用程序对应的多个发送队列中的发送WQE,调度到至少一个共享发送队列中。
示例性的,参考图1b,将请求端Node1中发送队列1的a1、发送队列2的b1、发送队列3中的c1和发送队列4中的d1调度至共享发送队列1中,将发送队列2中的b2、发送队列3的c2和发送队列4的d2调度至共享发送队列2中。
S120、根据与每个共享发送队列分别对应的发送上下文,对每个共享发送队列中的发送WQE进行按序处理,形成与发送WQE匹配的发送报文。
其中,发送上下文主要存储共享队列的信息(共享队列的地址,pi指针以及ci指针等),同时也记录报文发送状态与完成状态。根据与共享发送队列对应的发送上下文,可以从共享发送队列中顺序获取一个待处理的发送WQE,进而,可以根据该发送WQE中记录的内存地址中,获取待发送数据,并将该待发送数据打包得到发送报文。发送报文可以是根据待发送数据打包得到的报文。
在本公开实施例中,可以根据每个共享发送队列对应的发送上下文所包含的共享发送队列中的相关信息,按照每个共享发送队列中发送WQE的排列顺序,依次将各发送WQE对应的待发送数据进行打包等处理操作,形成与各发送WQE匹配的发送报文。
示例性的,参考图1b,在共享发送队列1中,根据与其对应的发送上下文,依照a1、b1、c1和d1的顺序,形成与发送WQE匹配的发送报文。
S130、将各发送报文发送至匹配的响应端,以指示响应端将发送报文中的负载信息进行内存写入。
其中,响应端可以是接收请求端发送的发送报文的终端。负载信息可以包括待发送数据等信息。
在本公开实施例中,可以将与发送WQE匹配的各发送报文发送至匹配的响应端,指示响应端将发送报文中的负载信息进行响应端内存写入。
本公开实施例的技术方案,通过将多个发送队列中的发送WQE,调度到至少一个共享发送队列中;根据与每个共享发送队列分别对应的发送上下文,对每个共享发送队列中的发送WQE进行按序处理,形成与发送WQE匹配的发送报文;将各发送报文发送至匹配的响应端,以指示响应端将发送报文中的负载信息进行内存写入,提供了一种远程直接进行数据存取的新方式,提高了多任务的并发执行能力。
需要说明的是,如前所述,现有的RD服务类型,多个发送队列对应一个发送上下文,如果并发的处理每个发送队列中的发送WQE,则该发送上下文需要记录的信息会非常大,无法满足实际的并发要求,因此,现有的RD服务,一次只会处理一个发送队列中的一个发送WQE,当接收到响应端针对该发送WQE反馈的响应报文后,才会再从一个发送队列中获取一个新的发送WQE进行处理。也就是说,并发的各个发送WQE是无序的,因此必须针对每个发送WQE都记录非常详尽的信息。
相区别的,本公开实施例的技术方案则是创造性的将多个发送队列中的发送WQE在一个或者少数几个共享队列中进行有序存储,进而,在发送上下文中记录的信息就可以大大被简化,例如,仅记录首尾发送WQE的信息即可。
图2a是根据本公开实施例提供的另一种远程直接数据存取方法的流程示意图,本实施例在上述各实施例的基础上,在将各发送报文发送至匹配的响应端之后,增加操作。该方法可以由请求端执行,参考图2a,该方法具体包括如下步骤:
S210、将多个发送队列中的发送WQE,调度到至少一个共享发送队列中。
在本实施例的一个可选实施方式中,将多个发送队列中的发送WQE,调度到至少一个共享发送队列中,可以包括:
依次从一个发送队列中获取一个待分配发送WQE,并提取待分配发送WQE中的响应端标识;在全部共享发送队列中,获取与所述响应端标识匹配的目标共享发送队列,并将待分配发送WQE调度到目标共享发送队列中。
其中,待分配发送WQE可以是指发送队列中存放的待分配发送任务。响应端标识可以是指能区别不同响应端的信息,例如,“响应端Node1”“响应端Node2”等。不同共享发送队列可以根据发送WQE对应的响应端进行划分,即,可以将对应同一个响应端的发送WQE调度至同一个共享发送队列中。目标共享发送队列可以是从请求端对应的多个共享发送队列中,选择的与响应端标识匹配的共享发送队列。
在本公开实施例中,请求端可以包含多个发送队列,每个发送队列中可以包含一个或者多个待分配发送WQE,针对每个发送队列,可以依次从中获取一个待分配发送WQE,提取该待分配发送WQE的响应端标识,根据响应端标识确定该待分配发送WQE对应的待发送数据需要被发送至哪个响应端,并根据提取的响应端标识在全部共享发送队列中获取匹配的共享发送队列作为目标共享发送队列,从而将该待分配发送WQE调度至目标共享发送队列中。
示例性的,参考图1b,在依次从每个发送队列中获取待分配发送WQE过程中,对a1、b1、c1和d1所提取的响应端标识均为“响应端Node1”,并且根据“响应端Node1”从共享发送队列1和共享发送队列2中获取与“响应端Node1”匹配的目标共享发送队列为共享发送队列1,因此将a1、b1、c1和d1调度至共享发送队列1。同理,对b2、c2和d2所提取的响应端标识均为“响应端Node2”,因此将b2、c2和d2调度至与“响应端Node2”匹配的共享发送队列2中。
这样设置的好处在于,可以通过多队列任务调度到共享发送队列,实现多队列和多任务的并发,同时,通过将执行同一响应端的多个发送WQE存储于同一共享发队列进行按序发送,相当于将通过同一条路径传输的多个发送报文进行了统一的调度,进而,当一条路径出现传输异常时,可以快速定位该传输异常,并对该路径下传输的各发送WQE(存储于同一共享发送队列中)进行统一的重传处理。
S220、根据与每个共享发送队列分别对应的发送上下文,对每个共享发送队列中的发送WQE进行按序处理,形成与发送WQE匹配的发送报文。
S230、将各发送报文发送至匹配的响应端,以指示响应端将发送报文中的负载信息进行内存写入。
S240、在接收到响应端反馈的应答报文时,获取与所述应答报文匹配的至少一个目标发送WQE,以及与目标发送WQE匹配的处理状态。
其中,应答报文可以是响应端向请求端反馈的对发送报文的接收情况进行描述的报文,应答报文可以包括对至少一个发送报文的反馈,即,可以包括对至少一个发送WQE的反馈。
可选的,应答报文可以包括对多个发送WQE的应答响应。目标发送WQE可以是指响应端进行接收反馈的发送WQE。目标发送WQE的处理状态可以包括未应答和已应答等状态。
在本公开实施例中,请求端在接收到响应端反馈的应答报文时,可以从请求端的发送WQE中获取与应答报文匹配的至少一个发送WQE作为目标发送WQE,并通过读取该应答报文,识别获取该目标发送WQE的执行状态。
在本实施例的一个可选实施方式中,在接收到响应端反馈的应答报文时,获取与所述应答报文匹配的至少一个目标发送WQE,以及与目标发送WQE匹配的处理状态,可以包括:
在接收到所述应答报文时,在所述应答报文中提取应答PSN(Packet SequenceNumber,包顺序号)范围,以及所述应答PSN范围内每个应答PSN的处理状态;根据所述应答PSN范围,以及在所述应答PSN范围内每个应答PSN的处理状态,确定与所述应答报文匹配的至少一个目标发送WQE,以及与各目标发送WQE分别匹配的处理状态。
其中,应答PSN可以是每个应答包的序号。应答PSN范围可以是一个应答报文包含的应答包的序号范围。
具体的,在接收到响应端反馈的应答报文时,可以在应答报文中提取应答PSN的范围,识别获取该应答PSN范围内每个应答PSN的处理状态,从而根据应答PSN范围以及范围内每个应答PSN的处理状态,确定与应答报文匹配的至少一个目标发送WQE,以及每个目标发送WQE匹配的处理状态。
如前所述,请求端将指向同一响应端的各发送WQE均存储在同一共享发送队列中,则该响应端可以构造一次响应多个连续的发送WQE的应答报文,进而,请求端可以快速定位出上述连续多个发送WQE,并获取上述各发送WQE的处理状态。
S250、根据各目标发送WQE的处理状态,生成与各目标发送WQE分别对应的发送CQE(Completion Queue Element,完成队列元素)。
其中,发送CQE可以是对发送WQE的发送状态进行描述的信息。
在本公开实施例中,可以将描述各目标发送WQE的处理状态的任务信息,作为与各目标发送WQE分别匹配的发送CQE。
S260、按照各发送CQE的生成顺序,将各所述发送CQE存储在匹配的发送完成队列中。
其中,发送CQE的生成顺序可以根据接收到对每个发送WQE的应答时序而确定。由于发送报文到达响应端和请求端接收到应答报文的时序不能固定,因此发送完成队列中各发送CQE的排列顺序,与匹配的发送队列中各发送WQE的排列顺序可以相同或者不同。发送完成队列可以是请求端中用于存放发送CQE的一种队列。
在将上述各发送CQE存储于一个或者多个发送完成队列后,请求端中的各APP可以从上述各发送完成队列中,获取请求远端直接数据存储的数据的存储完成情况。
在采用共享队列方案后,可以实现对发送队列的多个发送WQE的并发处理,但并发处理也导致了头阻塞问题。作为示例,参考图2b,请求端Node1同时向响应端Node2和响应端Node3发送报文;请求端Node1→响应端Node2和请求端Node1→响应端Node3报文所走的路径不同,报文到达和应答的时序无法保证;如果发送队列a中的各发送WQE(a1、a2、a3和a4)处理完成需要按序上报,那么a1未应答会导致a2、a3和a4已经应答却不能上报完成,请求端Node1的发送队列a因为队列满不能提交新的发送WQE,产生队列头阻塞;不同路径之间的任务因为完成时序不同而相互影响。
为解决上述示例中的问题,通过定义发送队列的完成上报规则,支持发送队列任务完成的乱序上报,同时规定发送队列每一个发送WQE一定要上报完成。
在本公开实施例中,可以根据请求端接收的响应端对每个发送WQE的应答顺序,得到与每个发送WQE分别对应的发送CQE的生成顺序,并按照该生成顺序,将每个发送CQE存储在匹配的发送完成队列中。
本公开实施例的技术方案,通过将多个发送队列中的发送WQE,调度到至少一个共享发送队列中;根据与每个共享发送队列分别对应的发送上下文,对每个共享发送队列中的发送WQE进行按序处理,形成与发送WQE匹配的发送报文;将各发送报文发送至匹配的响应端,以指示响应端将发送报文中的负载信息进行内存写入;在接收到响应端反馈的应答报文时,获取与所述应答报文匹配的至少一个目标发送WQE,以及与目标发送WQE匹配的处理状态;根据各目标发送WQE的处理状态,生成与各目标发送WQE分别对应的发送CQE;按照各发送CQE的生成顺序,将各所述发送CQE存储在匹配的发送完成队列中,提供了一种远程直接进行数据存取的新方式,提高了多任务的并发执行能力。
图3是根据本公开实施例提供的一种由响应端执行的远程直接数据存取方法的流程示意图,本实施例适用于接收由发送端所发送的数据并直接存储至接收端的指定存储位置的情况,该方法可以通过远程直接数据存取装置来执行,该装置可以通过软件和/或硬件的方式实现,并一般可以集成于终端的网卡中。参考图3,该方法具体包括如下步骤:
S310、每当接收到请求端发送的发送报文时,从多个接收队列中获取与所述发送报文匹配的接收WQE,并将获取的接收WQE调度至匹配的共享接收队列中。
其中,接收队列可以指存放接收任务的队列,接收队列可以用于存放接收任务,接收任务可以响应端在接收到请求端所发送的发送报文中,将发送报文中的负载信息存储于响应端什么存储地址的内存中。一般来说,发送WQE和接收WQE是成对下发的,当终端A(请求端)中的App1和终端B(响应端)的APP1约定好进行一次远程直接数据存取时,终端A的App1向匹配的发送队列中下发一个发送WQE1的同时,终端B的App1向匹配的接收队列中下发一个接收WQE1。上述成对的发送WQE1和接收WQE1,用于指定从终端A的内存地址X1中获取数据直接存储至终端B的内存地址X2中。
示例性的,请求端1中的应用程序1需要发送数据1、数据2和数据3至响应端1,则请求端1下发与数据1匹配的发送任务1、与数据2匹配的发送任务2和与数据3匹配的发送任务3至与应用程序1匹配的发送队列1。相对应的,响应端1下发与数据1匹配的接收任务1、与数据2匹配的接收任务2和与数据3匹配的接收任务3至与响应端中应用程序1匹配的接收队列1。
接收WQE可以指接收任务,每个接收队列可以用于存放接收WQE,接收WQE与发送WQE之间可以存在一一对应关系。
共享接收队列可以是一种存放来自不同接收队列中接收任务的队列,一个响应端可以包括至少一个共享接收队列,一个响应端的多个共享接收队列可以根据来自不同的请求端进行划分。
在本公开实施例中,可以在接收到请求端发送的发送报文时,将响应端中与所述发送报文匹配的接收WQE,并将获取的接收WQE调度至匹配的共享接收队列中。
S320、根据与每个共享接收队列分别对应的接收上下文,对每个共享接收队列中的接收WQE进行按序处理,以将与各接收WQE对应的发送报文中的负载信息进行内存写入。
其中,接收上下文可以指对待发送数据在响应端的写入位置和解析规则等信息的说明。
在本公开实施例中,可以根据每个共享接收队列对应的接收上下文所包含的信息,按照每个共享接收队列中接收WQE的调度顺序对各接收WQE对应的发送报文进行解析处理,获取其中的负载信息以进行内存写入。
本公开实施例的技术方案,通过每当接收到请求端发送的发送报文时,从多个接收队列中获取与所述发送报文匹配的接收WQE,并将获取的接收WQE调度至匹配的共享接收队列中;根据与每个共享接收队列分别对应的接收上下文,对每个共享接收队列中的接收WQE进行按序处理,以将与各接收WQE对应的发送报文中的负载信息进行内存写入,提供了一种远程直接进行数据存取的新方式,提高了多任务的并发执行能力。
图4a是根据本公开实施例提供的另一种远程直接数据存取方法的流程示意图,本实施例在上述各实施例的基础上,在根据与每个共享接收队列分别对应的接收上下文,对每个共享接收队列中的接收WQE进行按序处理之后,增加操作。该方法可以由响应端执行,参考图4a,该方法具体包括如下步骤:
S410、每当接收到请求端发送的发送报文时,从多个接收队列中获取与所述发送报文匹配的接收WQE,并将获取的接收WQE调度至匹配的共享接收队列中。
在本实施例的一个可选实施方式中,每当接收到请求端发送的发送报文时,从多个接收队列中获取与所述发送报文匹配的接收WQE,并将获取的接收WQE调度至匹配的共享接收队列中,可以包括:
响应于请求端发送的目标发送报文,从多个接收队列中获取与目标发送报文匹配的目标接收WQE,并获取与目标发送报文匹配的请求端标识;将目标接收WQE调度至与所述请求端标识匹配的共享接收队列中。
其中,目标发送报文可以是发送至响应端的全部发送报文中某个报文。目标接收WQE可以是与目标发送报文匹配的响应端中的某个接收WQE。请求端标识可以指能区分不同请求端的信息,例如“请求端Node1”。
在本公开实施例中,响应端可以包含多个接收队列,每个接收队列中可以包含有接收WQE,在接收到请求端发送的目标发送报文时,根据目标发送报文对应的发送WQE,从响应端的多个接收队列的全部接收WQE中获取目标接收WQE,并根据目标发送报文匹配的请求端标识,将目标接收WQE调度至与请求端标识匹配的共享接收队列中。
S420、根据与每个共享接收队列分别对应的接收上下文,对每个共享接收队列中的接收WQE进行按序处理,以将与各接收WQE对应的发送报文中的负载信息进行内存写入。
S430、每当完成对接收WQE的处理时,获取与所述接收WQE匹配的处理状态,并生成与所述接收WQE对应的接收CQE。
其中,接收WQE的处理状态可以是接收为完成和接收已完成等状态。接收CQE可以是对接收WQE的接收状态进行描述的信息。
在本公开实施例中,在根据接收的发送报文对接收WQE处理时,可以根据与接收WQE匹配的处理状态,生成与接收WQE对应的接收CQE。
S440、按照接收CQE的生成顺序,将各所述接收CQE存储在匹配的接收完成队列中。
其中,接收CQE的生成顺序可以根据对接收WQE的处理时序而确定。接收完成队列中各接收CQE的排列顺序,与匹配的接收队列中各接收WQE的排列顺序相同或者不同。接收完成队列可以是响应端中用于存放接收CQE的一种队列。
在本公开实施例中,可以根据响应端对每个接收WQE的处理顺序,得到与每个接收WQE分别对应的接收CQE的生成顺序,进而可以按照该生成顺序,将每个接收CQE存储在匹配的接收完成队列中。
作为示例,参考图4b,多队列并发执行时,根据发送WQE a1发出的发送报文在响应端校验出错,响应端回复接收校验错误的应答;根据发送WQE b1发出的发送报文在响应端正确处理,响应端回复正确完成的应答;根据发送WQE c1发出的发送报文被丢弃,响应端无法应答;根据发送WQE d1发出的发送报文在响应端收到,响应端通知请求端有报文丢失导致PSN乱序;当出现上述的错误完成,丢包和正确处理的场景现有技术需要多次应答才能将响应端的处理状态传递给请求端;而本公开增加如下乱序接收和聚合应答的方案:
乱序接收:为了实现乱序接收,响应端维护一个接收状态队列,当乱序报文到达时直接处理报文,并记录处理状态到接收状态队列中;
聚合应答:为了提高应答的效率,提供聚合应答;在产生聚合应答时,响应端将接收状态队列信息携带在应答报文;每次应答时应答一片区间,携带每一个应答PSN对应的接收处理状态;在图4c展示一种由非聚合应答至聚合应答方式的演变示意图,其中,ACK(Acknowledge character,确认字符)表示正确应答,NAK(Negative Acknowledgmen,否定应答)表示否定应答。
本公开实施例的技术方案,通过每当接收到请求端发送的发送报文时,从多个接收队列中获取与所述发送报文匹配的接收WQE,并将获取的接收WQE调度至匹配的共享接收队列中;根据与每个共享接收队列分别对应的接收上下文,对每个共享接收队列中的接收WQE进行按序处理,以将与各接收WQE对应的发送报文中的负载信息进行内存写入;每当完成对接收WQE的处理时,获取与所述接收WQE匹配的处理状态,并生成与所述接收WQE对应的接收CQE;按照接收CQE的生成顺序,将各所述接收CQE存储在匹配的接收完成队列中,提供了一种远程直接进行数据存取的新方式,提高了多任务的并发执行能力。
在上述技术方案的基础上,在根据与每个共享接收队列分别对应的接收上下文,对每个共享接收队列中的接收WQE进行按序处理之后,还可以包括:
在接收的各发送报文中,获取与当前处理的接收WQE对应的当前发送报文,并执行将当前发送报文中的负载信息进行内存写入的操作;获取对当前发送报文的处理状态,并获取与当前发送报文匹配的目标共享接收队列;获取与所述目标共享接收队列关联的目标接收状态队列,并将与目标发送报文对应的应答PSN和处理状态记录于所述目标接收状态队列中;在检测到目标接收状态队列中记录的应答PSN满足预设的PSN区间范围时,根据所述目标接收状态队列中记录的各所述应答PSN和处理状态,形成聚合形式的应答报文;将所述应答报文发送至与所述目标共享队列匹配的请求端。
其中,当前发送报文的处理状态可以包括执行出错、丢包和收到且未出错等状态。
在本公开实施例中,针对当前处理的接收WQE,可以在接收的各发送报文中,获取与当前处理的接收WQE匹配的当前发送报文,对该当前发送报文中的负载信息在响应端进行内存写入的操作;还可以获取对当前发送报文的处理状态,以及匹配的目标共享接收队列,并获取与目标共享接收队列所关联的目标接收状态队列,从而将对当前发送报文的处理状态以及应答PSN在目标接收状态队列中进行记录;如果目标接收状态队列中已记录的应答PSN满足预设PSN区间范围,可以根据已记录的应答PSN和相应的处理状态,将全部已记录应答PSN聚合成一条应答报文,形成聚合形式的应答报文,并将该聚合形式的应答报文发送至相应的请求端。
这样设置的好处在于,可以聚合错误、丢包和正确多个应答,提高了应答执行效率。
图5是根据本公开实施例提供的一种远程直接数据存取装置的结构示意图。该装置可以用于执行本公开任意实施例提供的远程直接数据存取方法。该装置可以由请求端执行,参考图5,该装置包括:发送WQE调度模块510、发送报文形成模块520和发送报文发送模块530。其中:
发送WQE调度模块510,用于将多个发送队列中的发送WQE,调度到至少一个共享发送队列中;
发送报文形成模块520,用于根据与每个共享发送队列分别对应的发送上下文,对每个共享发送队列中的发送WQE进行按序处理,形成与发送WQE匹配的发送报文;
发送报文发送模块530,用于将各发送报文发送至匹配的响应端,以指示响应端将发送报文中的负载信息进行内存写入。
上述装置中,可选的是,还包括:
目标发送WQE及处理状态获取单元,用于在将各发送报文发送至匹配的响应端之后,在接收到响应端反馈的应答报文时,获取与所述应答报文匹配的至少一个目标发送WQE,以及与目标发送WQE匹配的处理状态;
发送CQE生成单元,用于根据各目标发送WQE的处理状态,生成与各目标发送WQE分别对应的发送CQE;
发送CQE存储单元,用于按照各发送CQE的生成顺序,将各所述发送CQE存储在匹配的发送完成队列中;
其中,发送完成队列中各发送CQE的排列顺序,与匹配的发送队列中各发送WQE的排列顺序相同或者不同。
上述装置中,可选的是,发送WQE调度模块510,具体可以用于:
依次从一个发送队列中获取一个待分配发送WQE,并提取待分配发送WQE中的响应端标识;
在全部共享发送队列中,获取与所述响应端标识匹配的目标共享发送队列,并将待分配发送WQE调度到目标共享发送队列中。
上述装置中,可选的是,目标发送WQE及处理状态获取单元,具体可以用于:
在接收到所述应答报文时,在所述应答报文中提取应答包顺序号PSN范围,以及所述应答PSN范围内每个应答PSN的处理状态;
根据所述应答PSN范围,以及在所述应答PSN范围内每个应答PSN的处理状态,确定与所述应答报文匹配的至少一个目标发送WQE,以及与各目标发送WQE分别匹配的处理状态。
本公开实施例所提供的远程直接数据存取装置可执行本公开任意实施例所提供的由请求端执行的远程直接数据存取方法,具备执行方法相应的功能模块和有益效果。
图6是根据本公开实施例提供的另一种远程直接数据存取装置的结构示意图。该装置可以用于执行本公开任意实施例提供的远程直接数据存取方法。该装置可以由响应端执行,参考图6,该装置包括:接收WQE获取及调度模块610和接收WQE处理及负载信息写入模块620。其中:
接收WQE获取及调度模块610,用于每当接收到请求端发送的发送报文时,从多个接收队列中获取与所述发送报文匹配的接收WQE,并将获取的接收WQE调度至匹配的共享接收队列中;
接收WQE处理及负载信息写入模块620,用于根据与每个共享接收队列分别对应的接收上下文,对每个共享接收队列中的接收WQE进行按序处理,以将与各接收WQE对应的发送报文中的负载信息进行内存写入。
上述装置中,可选的是,还包括,接收CQE存储模块,用于在根据与每个共享接收队列分别对应的接收上下文,对每个共享接收队列中的接收WQE进行按序处理之后,每当完成对接收WQE的处理时,获取与所述接收WQE匹配的处理状态,并生成与所述接收WQE对应的接收CQE;
按照接收CQE的生成顺序,将各所述接收CQE存储在匹配的接收完成队列中;
其中,接收完成队列中各接收CQE的排列顺序,与匹配的接收队列中各接收WQE的排列顺序相同或者不同。
上述装置中,可选的是,接收WQE获取及调度模块610,具体可以用于:
响应于请求端发送的目标发送报文,从多个接收队列中获取与目标发送报文匹配的目标接收WQE,并获取与目标发送报文匹配的请求端标识;
将目标接收WQE调度至与所述请求端标识匹配的共享接收队列中。
上述装置中,可选的是,还包括,应答报文发送模块,可以用于在根据与每个共享接收队列分别对应的接收上下文,对每个共享接收队列中的接收WQE进行按序处理之后,在接收的各发送报文中,获取与当前处理的接收WQE对应的当前发送报文,并执行将当前发送报文中的负载信息进行内存写入的操作;
获取对当前发送报文的处理状态,并获取与当前发送报文匹配的目标共享接收队列;
获取与所述目标共享接收队列关联的目标接收状态队列,并将与目标发送报文对应的应答PSN和处理状态记录于所述目标接收状态队列中;
在检测到目标接收状态队列中记录的应答PSN满足预设的PSN区间范围时,根据所述目标接收状态队列中记录的各所述应答PSN和处理状态,形成聚合形式的应答报文;
将所述应答报文发送至与所述目标共享队列匹配的请求端。
本公开实施例所提供的远程直接数据存取装置可执行本公开任意实施例所提供的由响应端执行的远程直接数据存取方法,具备执行方法相应的功能模块和有益效果。
本公开的技术方案中,所涉及的用户个人数据信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如远程直接数据存取方法。例如,在一些实施例中,远程直接数据存取方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的远程直接数据存取方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行远程直接数据存取方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术及机器学习/深度学习技术、大数据处理技术、知识图谱技术等几大方向。
云计算(cloud computing),指的是通过网络接入弹性可扩展的共享物理或虚拟资源池,资源可以包括服务器、操作系统、网络、软件、应用和存储设备等,并可以按需、自服务的方式对资源进行部署和管理的技术体系。通过云计算技术,可以为人工智能、区块链等技术应用、模型训练提供高效强大的数据处理能力。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (19)
1.一种远程直接数据存取方法,由请求端执行,包括:
将多个发送队列中的发送工作队列元素,调度到至少一个共享发送队列中;
根据与每个共享发送队列分别对应的发送上下文,对每个共享发送队列中的发送工作队列元素进行按序处理,形成与发送工作队列元素匹配的发送报文;
将各发送报文发送至匹配的响应端,以指示响应端将发送报文中的负载信息进行内存写入。
2.根据权利要求1所述的方法,在将各发送报文发送至匹配的响应端之后,还包括:
在接收到响应端反馈的应答报文时,获取与所述应答报文匹配的至少一个目标发送工作队列元素,以及与目标发送工作队列元素匹配的处理状态;
根据各目标发送工作队列元素的处理状态,生成与各目标发送工作队列元素分别对应的发送完成队列元素;
按照各发送完成队列元素的生成顺序,将各所述发送完成队列元素存储在匹配的发送完成队列中;
其中,发送完成队列中各发送完成队列元素的排列顺序,与匹配的发送队列中各发送工作队列元素的排列顺序相同或者不同。
3.根据权利要求1所述的方法,其中,将多个发送队列中的发送工作队列元素,调度到至少一个共享发送队列中,包括:
依次从一个发送队列中获取一个待分配发送工作队列元素,并提取待分配发送工作队列元素中的响应端标识;
在全部共享发送队列中,获取与所述响应端标识匹配的目标共享发送队列,并将待分配发送工作队列元素调度到目标共享发送队列中。
4.根据权利要求2所述的方法,其中,在接收到响应端反馈的应答报文时,获取与所述应答报文匹配的至少一个目标发送工作队列元素,以及与目标发送工作队列元素匹配的处理状态,包括:
在接收到所述应答报文时,在所述应答报文中提取应答包顺序号PSN范围,以及所述应答PSN范围内每个应答PSN的处理状态;
根据所述应答PSN范围,以及在所述应答PSN范围内每个应答PSN的处理状态,确定与所述应答报文匹配的至少一个目标发送工作队列元素,以及与各目标发送工作队列元素分别匹配的处理状态。
5.一种远程直接数据存取方法,由响应端执行,包括:
每当接收到请求端发送的发送报文时,从多个接收队列中获取与所述发送报文匹配的接收工作队列元素,并将获取的接收工作队列元素调度至匹配的共享接收队列中;
根据与每个共享接收队列分别对应的接收上下文,对每个共享接收队列中的接收工作队列元素进行按序处理,以将与各接收工作队列元素对应的发送报文中的负载信息进行内存写入。
6.根据权利要求5所述的方法,在根据与每个共享接收队列分别对应的接收上下文,对每个共享接收队列中的接收工作队列元素进行按序处理之后,还包括:
每当完成对接收工作队列元素的处理时,获取与所述接收工作队列元素匹配的处理状态,并生成与所述接收工作队列元素对应的接收完成队列元素;
按照接收完成队列元素的生成顺序,将各所述接收完成队列元素存储在匹配的接收完成队列中;
其中,接收完成队列中各接收完成队列元素的排列顺序,与匹配的接收队列中各接收工作队列元素的排列顺序相同或者不同。
7.根据权利要求5所述的方法,其中,每当接收到请求端发送的发送报文时,从多个接收队列中获取与所述发送报文匹配的接收工作队列元素,并将获取的接收工作队列元素调度至匹配的共享接收队列中,包括:
响应于请求端发送的目标发送报文,从多个接收队列中获取与目标发送报文匹配的目标接收工作队列元素,并获取与目标发送报文匹配的请求端标识;
将目标接收工作队列元素调度至与所述请求端标识匹配的共享接收队列中。
8.根据权利要求5所述的方法,在根据与每个共享接收队列分别对应的接收上下文,对每个共享接收队列中的接收工作队列元素进行按序处理之后,还包括:
在接收的各发送报文中,获取与当前处理的接收工作队列元素对应的当前发送报文,并执行将当前发送报文中的负载信息进行内存写入的操作;
获取对当前发送报文的处理状态,并获取与当前发送报文匹配的目标共享接收队列;
获取与所述目标共享接收队列关联的目标接收状态队列,并将与目标发送报文对应的应答PSN和处理状态记录于所述目标接收状态队列中;
在检测到目标接收状态队列中记录的应答PSN满足预设的PSN区间范围时,根据所述目标接收状态队列中记录的各所述应答PSN和处理状态,形成聚合形式的应答报文;
将所述应答报文发送至与所述目标共享队列匹配的请求端。
9.一种远程直接数据存取装置,由请求端执行,包括:
发送工作队列元素调度模块,用于将多个发送队列中的发送工作队列元素,调度到至少一个共享发送队列中;
发送报文形成模块,用于根据与每个共享发送队列分别对应的发送上下文,对每个共享发送队列中的发送工作队列元素进行按序处理,形成与发送工作队列元素匹配的发送报文;
发送报文发送模块,用于将各发送报文发送至匹配的响应端,以指示响应端将发送报文中的负载信息进行内存写入。
10.根据权利要求9所述的装置,还包括:
目标发送工作队列元素及处理状态获取单元,用于在将各发送报文发送至匹配的响应端之后,在接收到响应端反馈的应答报文时,获取与所述应答报文匹配的至少一个目标发送工作队列元素,以及与目标发送工作队列元素匹配的处理状态;
发送完成队列元素生成单元,用于根据各目标发送工作队列元素的处理状态,生成与各目标发送工作队列元素分别对应的发送完成队列元素;
发送完成队列元素存储单元,用于按照各发送完成队列元素的生成顺序,将各所述发送完成队列元素存储在匹配的发送完成队列中;
其中,发送完成队列中各发送完成队列元素的排列顺序,与匹配的发送队列中各发送工作队列元素的排列顺序相同或者不同。
11.根据权利要求9所述的装置,其中,发送工作队列元素调度模块,具体用于:
依次从一个发送队列中获取一个待分配发送工作队列元素,并提取待分配发送工作队列元素中的响应端标识;
在全部共享发送队列中,获取与所述响应端标识匹配的目标共享发送队列,并将待分配发送工作队列元素调度到目标共享发送队列中。
12.根据权利要求10所述的装置,其中,目标发送工作队列元素及处理状态获取单元,具体用于:
在接收到所述应答报文时,在所述应答报文中提取应答包顺序号PSN范围,以及所述应答PSN范围内每个应答PSN的处理状态;
根据所述应答PSN范围,以及在所述应答PSN范围内每个应答PSN的处理状态,确定与所述应答报文匹配的至少一个目标发送工作队列元素,以及与各目标发送工作队列元素分别匹配的处理状态。
13.一种远程直接数据存取装置,由响应端执行,包括:
接收工作队列元素获取及调度模块,用于每当接收到请求端发送的发送报文时,从多个接收队列中获取与所述发送报文匹配的接收工作队列元素,并将获取的接收工作队列元素调度至匹配的共享接收队列中;
接收工作队列元素处理及负载信息写入模块,用于根据与每个共享接收队列分别对应的接收上下文,对每个共享接收队列中的接收工作队列元素进行按序处理,以将与各接收工作队列元素对应的发送报文中的负载信息进行内存写入。
14.根据权利要求13所述的装置,还包括,接收完成队列元素存储模块,用于:
在根据与每个共享接收队列分别对应的接收上下文,对每个共享接收队列中的接收工作队列元素进行按序处理之后,每当完成对接收工作队列元素的处理时,获取与所述接收工作队列元素匹配的处理状态,并生成与所述接收工作队列元素对应的接收完成队列元素;
按照接收完成队列元素的生成顺序,将各所述接收完成队列元素存储在匹配的接收完成队列中;
其中,接收完成队列中各接收完成队列元素的排列顺序,与匹配的接收队列中各接收工作队列元素的排列顺序相同或者不同。
15.根据权利要求13所述的装置,其中,接收工作队列元素获取及调度模块,具体用于:
响应于请求端发送的目标发送报文,从多个接收队列中获取与目标发送报文匹配的目标接收工作队列元素,并获取与目标发送报文匹配的请求端标识;
将目标接收工作队列元素调度至与所述请求端标识匹配的共享接收队列中。
16.根据权利要求13所述的装置,还包括,应答报文发送模块,用于:
在根据与每个共享接收队列分别对应的接收上下文,对每个共享接收队列中的接收工作队列元素进行按序处理之后,在接收的各发送报文中,获取与当前处理的接收工作队列元素对应的当前发送报文,并执行将当前发送报文中的负载信息进行内存写入的操作;
获取对当前发送报文的处理状态,并获取与当前发送报文匹配的目标共享接收队列;
获取与所述目标共享接收队列关联的目标接收状态队列,并将与目标发送报文对应的应答PSN和处理状态记录于所述目标接收状态队列中;
在检测到目标接收状态队列中记录的应答PSN满足预设的PSN区间范围时,根据所述目标接收状态队列中记录的各所述应答PSN和处理状态,形成聚合形式的应答报文;
将所述应答报文发送至与所述目标共享队列匹配的请求端。
17.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-4中任一项所述的由请求端执行的远程直接数据存取方法,或者,执行权利要求5-8中任一项所述的由响应端执行的远程直接数据存取方法。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行根据权利要求1-4中任一项所述的由请求端执行的远程直接数据存取方法,或者执行根据权利要求5-8中任一项所述的由响应端执行的远程直接数据存取方法。
19.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现权利要求1-4中任一项所述方法的步骤,或者,实现权利要求5-8中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210557200.1A CN115002047B (zh) | 2022-05-20 | 2022-05-20 | 一种远程直接数据存取方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210557200.1A CN115002047B (zh) | 2022-05-20 | 2022-05-20 | 一种远程直接数据存取方法、装置、设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115002047A true CN115002047A (zh) | 2022-09-02 |
CN115002047B CN115002047B (zh) | 2023-06-13 |
Family
ID=83026296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210557200.1A Active CN115002047B (zh) | 2022-05-20 | 2022-05-20 | 一种远程直接数据存取方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115002047B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115834002A (zh) * | 2022-11-16 | 2023-03-21 | 江苏为是科技有限公司 | 高速传输系统及方法 |
CN116303173A (zh) * | 2023-05-19 | 2023-06-23 | 深圳云豹智能有限公司 | 减少rdma引擎片上缓存的方法、装置、系统及芯片 |
CN116582492A (zh) * | 2023-07-14 | 2023-08-11 | 珠海星云智联科技有限公司 | 优化rdma读取的拥塞控制方法、系统及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040193825A1 (en) * | 2003-03-27 | 2004-09-30 | Garcia David J. | Binding a memory window to a queue pair |
CN101409715A (zh) * | 2008-10-22 | 2009-04-15 | 中国科学院计算技术研究所 | 一种利用InfiniBand网络进行通信的方法及系统 |
CN103999068A (zh) * | 2011-12-23 | 2014-08-20 | 英特尔公司 | 共享的发送队列 |
CN106533978A (zh) * | 2016-11-24 | 2017-03-22 | 东软集团股份有限公司 | 一种网络负载均衡方法及系统 |
CN113852656A (zh) * | 2020-06-28 | 2021-12-28 | 华为技术有限公司 | 一种数据传输方法、处理器系统及内存访问系统 |
CN114090274A (zh) * | 2020-07-31 | 2022-02-25 | 华为技术有限公司 | 网络接口卡、存储装置、报文接收方法和发送方法 |
-
2022
- 2022-05-20 CN CN202210557200.1A patent/CN115002047B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040193825A1 (en) * | 2003-03-27 | 2004-09-30 | Garcia David J. | Binding a memory window to a queue pair |
CN101409715A (zh) * | 2008-10-22 | 2009-04-15 | 中国科学院计算技术研究所 | 一种利用InfiniBand网络进行通信的方法及系统 |
CN103999068A (zh) * | 2011-12-23 | 2014-08-20 | 英特尔公司 | 共享的发送队列 |
CN106533978A (zh) * | 2016-11-24 | 2017-03-22 | 东软集团股份有限公司 | 一种网络负载均衡方法及系统 |
CN113852656A (zh) * | 2020-06-28 | 2021-12-28 | 华为技术有限公司 | 一种数据传输方法、处理器系统及内存访问系统 |
CN114090274A (zh) * | 2020-07-31 | 2022-02-25 | 华为技术有限公司 | 网络接口卡、存储装置、报文接收方法和发送方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115834002A (zh) * | 2022-11-16 | 2023-03-21 | 江苏为是科技有限公司 | 高速传输系统及方法 |
CN115834002B (zh) * | 2022-11-16 | 2023-10-31 | 江苏为是科技有限公司 | 高速传输系统及方法 |
CN116303173A (zh) * | 2023-05-19 | 2023-06-23 | 深圳云豹智能有限公司 | 减少rdma引擎片上缓存的方法、装置、系统及芯片 |
CN116303173B (zh) * | 2023-05-19 | 2023-08-08 | 深圳云豹智能有限公司 | 减少rdma引擎片上缓存的方法、装置、系统及芯片 |
CN116582492A (zh) * | 2023-07-14 | 2023-08-11 | 珠海星云智联科技有限公司 | 优化rdma读取的拥塞控制方法、系统及存储介质 |
CN116582492B (zh) * | 2023-07-14 | 2023-09-26 | 珠海星云智联科技有限公司 | 优化rdma读取的拥塞控制方法、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115002047B (zh) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115002047B (zh) | 一种远程直接数据存取方法、装置、设备以及存储介质 | |
US7953915B2 (en) | Interrupt dispatching method in multi-core environment and multi-core processor | |
US9853906B2 (en) | Network prioritization based on node-level attributes | |
CN110661725A (zh) | 用于对出口上的网络分组进行重排序的技术 | |
US9007944B2 (en) | One-to-many and many-to-one communications on a network | |
US20200272579A1 (en) | Rdma transport with hardware integration | |
CN111104210A (zh) | 一种任务处理方法、装置及计算机系统 | |
US8589926B2 (en) | Adjusting processor utilization data in polling environments | |
WO2017218700A1 (en) | Systems and methods for non-uniform memory access aligned i/o for virtual machines | |
CN115174432A (zh) | Rdma网络状态监测方法、装置、设备及可读存储介质 | |
CN114978433A (zh) | 数据传输方法、装置、设备、存储介质及计算机程序产品 | |
CN114691595B (zh) | 多核电路、数据交换方法、电子设备及存储介质 | |
CN111405531A (zh) | 一种提高通信质量的方法、介质、终端和装置 | |
CN114415691A (zh) | 一种机器人调度方法、调度平台及系统 | |
CN114979022A (zh) | 远程直接数据存取的实现方法、装置、适配器和存储介质 | |
CN113157465A (zh) | 基于指针链表的消息发送方法及装置 | |
CN108881060A (zh) | 一种处理通信报文的方法及装置 | |
KR101499890B1 (ko) | Low Latency 프레임워크 시스템 | |
CN110825342B (zh) | 存储调度器件和用于处理信息的系统、方法及装置 | |
EP4102371A1 (en) | Systems and methods for non-intrusive monitoring of intraprocess latency of application | |
US9338219B2 (en) | Direct push operations and gather operations | |
US9054968B2 (en) | Business intelligence-infused smart retransmission processing | |
Zhang et al. | Labeled network stack: a high-concurrency and low-tail latency cloud server framework for massive iot devices | |
CN114095564A (zh) | 数据处理方法及装置、设备和介质 | |
US20120296951A1 (en) | System and method to execute steps of an application function asynchronously |
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 |