基于RDMA的数据传输方法、装置及电子设备与流程

文档序号:25100546发布日期:2021-05-18 22:52阅读:59来源:国知局
基于RDMA的数据传输方法、装置及电子设备与流程
基于rdma的数据传输方法、装置及电子设备
技术领域
1.本发明涉及数据传输领域,具体涉及一种基于rdma的数据传输方法、装置及电子设备。


背景技术:

2.数据传输时,在传统的tcp/ip模式下,需要cpu主动将数据拷贝到tcp的缓冲区中,然后tcp再将缓冲区中的数据发送给网卡,网卡才能将这些数据传输出去,数据延迟较长。rdma(remote direct memory access)技术全称远程直接内存访问,就是为解决网络传输中服务器端数据处理的延迟而产生的,其与tcp/ip的模式本质上的不同在于rdma在cpu上是零拷贝的,支持rdma的网卡会通过dma将需要传输的内存数据拷贝到网卡上发送出去,这个过程不需要cpu的参与。
3.与tcp/ip模式不同的是,rdma有一套自己的应用程序编程接口(api),这就导致传统的socket编程无法适用于rdma编程,在数据传输过程中,需要调用系统api再进行额外的数据结构内存分配释放操作,延迟较高,效率较低,并且花费cpu初始化新分配的请求,整个流程消耗时间较长。


技术实现要素:

4.本发明的主要目的在于提供一种基于rdma 的数据传输方法及装置,以解决现有的数据传输过程中,需要调用系统api进行额外的数据结构内存分配释放操作导致的延迟较高、效率较低、整个流程消耗时间较长的问题。
5.为了实现上述目的,本发明的第一方面提供了一种基于rdma的数据传输方法,包括:发送端通过发送端的数据发送进程从发送请求池中获取发送请求,将所述发送请求发送至接收端和等待响应队列,其中,所述发送请求包含发送请求的唯一标识以及将传输数据进行dma映射后得到的发送端dma地址;接收端的rdma接收队列通过预先获取的接收请求,接收所述发送请求中的发送端dma地址,将所述发送端dma地址中的传输数据复制到接收端dma地址中,并将所述接收端dma地址中的传输数据移动到数据接收进程中,将所述接收请求释放回到接收请求池中;接收端基于发送端发送请求的唯一标识从接收端发送请求池中获取发送请求,并将所述发送请求初始化为响应请求,将发送端发送请求的唯一标识存入所述响应请求,将所述响应请求发送到发送端;发送端通过发送端的rdma接收队列接收所述响应请求中发送端发送请求的唯一标识,根据所述发送请求的唯一标识从所述等待响应队列中找到对应的发送请求,并将所述发送请求释放回到发送请求池中。
6.可选地,所述将所述发送请求发送至接收端和等待响应队列包括:将所述发送请求的rdma工作请求发送到rdma发送队列;
所述rdma发送队列通过rdma传输协议将所述发送请求的rdma工作请求对应的数据发送到接收端,其中,所述发送请求的rdma工作请求对应的数据包括发送请求的唯一标识以及将传输数据进行dma映射后得到的发送端dma地址;将所述发送请求发送至等待响应队列。
7.可选地,所述接收端的rdma接收队列通过预先获取的接收请求,接收所述发送请求中的发送端dma地址,将所述发送端dma地址中的传输数据复制到接收端dma地址中,并将所述接收端dma地址中的传输数据移动到数据接收进程中,将所述接收请求释放回到接收请求池中,包括:接收端的rdma接收队列通过预先从接收端接收请求池中获取的接收请求,接收所述发送端发送请求中rdma工作请求对应的数据;接收端从页面池中获取页面,并对所述页面进行dma映射,得到接收端dma地址,其中,所述页面的数量满足存储所述传输数据的要求;对所述发送端dma地址进行rdma读操作,得到传输数据,并将所述传输数据复制到所述接收端dma地址的页面中;复制完成后,将所述接收请求发送到已完成队列中。
8.进一步地,在将所述接收请求发送到已完成队列中之后,所述方法还包括:接收端的数据接收进程将所述已完成队列的接收请求中包含所述传输数据的页面移动到数据接收进程中;移动完成后,将所述接收请求释放回到接收请求池中;接收端的rdma接收队列从所述接收请求池中获取接收请求,以接收所述发送端下一发送请求中rdma工作请求对应的数据。
9.可选地,所述接收端基于发送端发送请求的唯一标识从接收端发送请求池中获取发送请求,并将所述发送请求初始化为响应请求,将发送端发送请求的唯一标识存入所述响应请求,将所述响应请求发送到发送端,包括:接收端获取发送端发送请求的唯一标识后,基于所述唯一标识从接收端的发送请求池中获取发送请求;将所述发送请求初始化为响应请求,将发送端发送请求的唯一标识存入所述响应请求的数据缓冲区;将所述响应请求的rdma工作请求发送到rdma发送队列;所述rdma发送队列通过rdma传输协议将所述响应请求的rdma工作请求对应的数据发送到发送端,其中,所述响应请求的rdma工作请求对应的数据包括发送端发送请求的唯一标识。
10.可选地,所述发送端通过发送端的rdma接收队列接收所述响应请求中发送端发送请求的唯一标识,根据所述发送请求的唯一标识从所述等待响应队列中找到对应的发送请求,并将所述发送请求释放回到发送请求池中,包括:发送端的rdma接收队列通过预先从发送端接收请求池中获取的接收请求,接收响应请求的rdma工作请求对应的发送端发送请求的唯一标识;根据所述发送端发送请求的唯一标识,从所述等待响应队列中找到所述唯一标识对应的发送请求;
将所述接收请求通过发送端接收请求池重新放入发送端rdma接收队列中,以便发送端rdma接收队列接收发送端下一发送请求的唯一标识;将所述发送请求释放回到发送请求池中;发送端通过发送端的数据发送进程从发送请求池中获取发送请求,其中,所述发送请求包含下一传输数据以及发送请求的唯一标识。
11.可选地,如果数据传输方式为异步传输,则在将所述发送请求发送至接收端和等待响应队列之后,所述方法还包括:通过rdma传输协议将所述发送请求的rdma 工作请求发送到rdma发送队列后,返回到发送端的数据发送进程,完成所述异步传输的发送过程;如果数据传输方式为同步传输,则在将所述发送请求释放回到发送请求池中之后,所述方法还包括:通过发送端的等待响应队列通知发送端的数据发送进程,完成所述同步传输的发送过程。
12.本发明的第二方面提供了一种基于rdma的数据传输装置,包括:第一发送单元,用于发送端通过发送端的数据发送进程从发送请求池中获取发送请求,将所述发送请求发送至接收端和等待响应队列,其中,所述发送请求包含发送请求的唯一标识以及将传输数据进行dma映射后得到的发送端dma地址;第一接收单元,用于接收端的rdma接收队列通过预先获取的接收请求,接收所述发送请求中的发送端dma地址,将所述发送端dma地址中的传输数据复制到接收端dma地址中,并将所述接收端dma地址中的传输数据移动到数据接收进程中,将所述接收请求释放回到接收请求池中;第二发送单元,用于接收端基于发送端发送请求的唯一标识从接收端发送请求池中获取发送请求,并将所述发送请求初始化为响应请求,将发送端发送请求的唯一标识存入所述响应请求,将所述响应请求发送到发送端;第二接收单元,用于发送端通过发送端的rdma接收队列接收所述响应请求中发送端发送请求的唯一标识,根据所述发送请求的唯一标识从所述等待响应队列中找到对应的发送请求,并将所述发送请求释放回到发送请求池中。
13.本发明的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行第一方面任意一项提供的基于rdma的数据传输方法。
14.本发明的第四方面提供了一种电子设备,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行第一方面任意一项提供的基于rdma的数据传输方法。
15.在本发明实施例中,使用发送请求和接收请求这两种请求以及页面,来管理所有在数据传输过程中需要使用到的内存和数据结构,所有必须的数据结构和内存都包含在请求中,不需要额外进行数据结构内存的分配,避免了数据传输过程中软件再进行额外的内存分配释放操作带来的开销,提高了数据传输过程的效率,降低了数据传输过程的延迟;并且,使用请求池来管理请求,即在发送端和接收端分别使用发送请求池来管理发送请求,使
用接收请求池来管理接收请求,以及使用页面池管理空闲页面,不需要调用系统api去分配请求和空闲页面使用的内存,也不需要花费cpu去初始化这个新分配的请求,减少整个流程花费的时间,也降低了整体数据传输过程的延迟。
附图说明
16.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
17.图1为本发明实施例提供的数据传输方法发送端的数据传输过程图;图2为本发明实施例提供的数据传输方法接收端的数据传输过程图;图3为本发明实施例提供的基于rdma的数据传输方法流程示意图;图4为本发明实施例提供的基于rdma的数据传输装置框图;图5为本发明实施例提供的电子设备框图。
18.具体实施方式
19.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
20.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
21.需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
22.与tcp/ip模式不同的是,rdma有一套自己的应用程序编程接口(api),这就导致传统的socket编程无法适用于rdma编程,在数据传输过程中,需要调用系统api再进行额外的数据结构内存分配释放操作,延迟较高,效率较低,并且花费cpu初始化新分配的请求,整个流程消耗时间较长。
23.为了解决上述问题,本发明实施例提供了一种基于rdma的数据传输方法方法,该方法发送端的数据传输过程如图1所示,接收端的数据传输过程如图2所示,在图1和图2中,sending data process表示发送数据进程,send request pool表示发送请求池,dma mapping表示dma映射,rdma send queue表示rdma发送队列,wait response queue表示等待响应队列,rdma receive queue表示rdma接收队列,receive request pool表示接收请
response queue中找到对应的send request。
48.17.将发送端的receive request通过receive request pool重新放入rdma receive queue中,等待接收下一send request id。
49.18.将发送端send request释放回到发送端的send request pool中,成为空闲send request,等待发送下一发送端dma地址时使用。
50.19.如果数据传输方式为同步传输,此时,数据发送后需要等待接收端接收才可以发送下一数据,因此,在上述第18步之后,通知发送端的sending data process,完成同步传输的发送过程。
51.本发明实施例提供了一种基于rdma的数据传输方法,如图3所示,包括如下的步骤s101至步骤s104:步骤s101:发送端通过发送端的数据发送进程从发送请求池中获取发送请求,将所述发送请求发送至接收端和等待响应队列,其中,所述发送请求包含发送请求的唯一标识以及将传输数据进行dma映射后得到的发送端dma地址;使用发送请求来维护在发送流程中涉及的所有数据结构和内存,并且使用发送请求池管理发送请求,发送请求可以从发送请求池中获取,在发送流程中不需要额外进行数据结构内存的分配,所有必须的数据结构和内存都包含在发送请求中,避免了发送流程中进行数据结构内存分配带来的开销,降低整个发送流程的延迟。
52.具体的,步骤s101中,所述将所述发送请求发送至接收端和等待响应队列包括:将所述发送请求的rdma工作请求发送到rdma发送队列;所述rdma发送队列通过rdma传输协议将所述发送请求的rdma工作请求对应的数据发送到接收端,其中,所述发送请求的rdma工作请求对应的数据包括发送请求的唯一标识以及将传输数据进行dma映射后得到的发送端dma地址;通过将rdma工作请求发送到rdma发送队列,然后再将rdma工作请求对应的数据发送到接收端,而不是直接将发送请求的唯一标识和发送端dma地址发送到rdma发送队列,由于rdma工作请求占用内存小于发送请求的唯一标识和发送端dma地址,因此,减少了发送流程中进行数据结构内存分配带来的开销,降低了整个发送流程的延迟。
53.将所述发送请求发送至等待响应队列。在接收端将发送请求唯一标识发送到发送端时,通过对比发送端接收的发送请求唯一标识和存储在等待响应队列的发送请求,可以确保接收端已正常接收传输数据。
54.具体的,如果数据传输方式为异步传输,则在将所述发送请求发送至接收端和等待响应队列之后,所述方法还包括:通过rdma传输协议将所述发送请求的rdma 工作请求发送到rdma发送队列后,返回到发送端的数据发送进程,完成所述异步传输的发送过程。在异步传输方式下,数据发送后不需要等待接收端接收就可以继续发送下一数据,节省了传输多个数据的时间。
55.本发明实施例使用发送请求来维护在发送流程中涉及的所有数据结构和内存,所以在发送流程中不需要额外进行数据结构内存的分配,所有必须的数据结构和内存都包含在发送请求中,避免了发送流程中进行数据结构内存分配带来的开销,降低整个发送流程的延迟。并且,针对发送请求引入发送请求池,发送端在建立连接后,直接初始化好足够多的发送请求并将它们放入发送请求池中,这样在发送数据过程中,可以直接从发送请求池
中获取空闲的、已经初始化好的发送请求,将该发送请求用来发送数据,不需要再调用系统api去分配请求使用的内存,也不用花费cpu去初始化这个新分配的请求,减少整个数据传输流程花费的时间,降低了整体的延迟。
56.步骤s102:接收端的rdma接收队列通过预先获取的接收请求,接收所述发送请求中的发送端dma地址,将所述发送端dma地址中的传输数据复制到接收端dma地址中,并将所述接收端dma地址中的传输数据移动到数据接收进程中,将所述接收请求释放回到接收请求池中;具体的,所述步骤s102包括:接收端的rdma接收队列通过预先从接收端接收请求池中获取的接收请求,接收所述发送端发送请求中rdma工作请求对应的数据;其中,发送端与接收端建立连接进行初始化时,将接收端接收请求池中所有的接收请求放入到接收端的rdma接收队列中,保证rdma接收队列里面有足够的接收请求来接收数据,以免造成数据丢失。
57.接收端从页面池中获取页面,并对所述页面进行dma映射,得到接收端dma地址,其中,所述页面的数量满足存储所述传输数据的要求;接收端使用页面池来管理空闲页面,接收端优先从页面池中获取到满足要求的空闲页面,当页面池中空闲页面充足时,完全不需要调用系统api去分配空闲page,可以直接从页面池中获取空闲页面,省去了系统api分配空闲页面带来的消耗,提高数据传输的性能。
58.对所述发送端dma地址进行rdma读操作,得到传输数据,并将所述传输数据复制到所述接收端dma地址的页面中;复制完成后,将所述接收请求发送到已完成队列中。
59.在将所述接收请求发送到已完成队列中之后,所述方法还包括:接收端的数据接收进程将所述已完成队列的接收请求中包含所述传输数据的页面移动到数据接收进程中;移动完成后,将所述接收请求释放回到接收请求池中;接收端的rdma接收队列从所述接收请求池中获取接收请求,以接收所述发送端下一发送请求中rdma工作请求对应的数据。接收端的rdma接收队列通过直接从接收请求池中获取空闲的接收请求,达到接收下一发送请求中rdma工作请求对应数据的目的,而不需要再调用系统api去分配接收请求使用的内存,降低了接收流程的延迟。
60.本发明实施例使用接收请求来维护在接收流程中涉及的所有数据结构和内存,所以在接收流程中不需要额外进行数据结构内存的分配,所有必须的数据结构和内存都包含在接收请求中,避免了接收流程中进行数据结构内存分配带来的开销,降低整个接收流程的延迟。
61.并且,针对接收请求引入接收请求池,接收端在建立连接后,初始化好足够多的接收请求并将它们放入接收请求池中,这样在接收数据过程中,可以直接从接收请求池中获取空闲的、已经初始化好的接收请求,将该接收请求用来接收数据;不需要再调用系统api去分配接收请求使用的内存,也不用花费cpu去初始化这个新分配的接收请求,减少整个数据传输流程花费的时间,降低了整体的延迟。
62.此外,在发送端和接收端建立连接后,接收端主动调用系统api去分配足够的空闲页面,并将这些空闲页面放入页面池中,之后在数据传输过程中如果需要空闲页面,优先从
页面池中获取,省去了系统api分配空闲页面带来的消耗,提高数据传输的性能,只有在获取失败的少数情况下,才使用系统api去获取空闲页面。
63.步骤s103:接收端基于发送端发送请求的唯一标识从接收端发送请求池中获取发送请求,并将所述发送请求初始化为响应请求,将发送端发送请求的唯一标识存入所述响应请求,将所述响应请求发送到发送端;具体的,所述步骤s103包括:接收端获取发送端发送请求的唯一标识后,基于所述唯一标识从接收端的发送请求池中获取发送请求;将所述发送请求初始化为响应请求,将发送端发送请求的唯一标识存入所述响应请求的数据缓冲区;将所述响应请求的rdma工作请求发送到rdma发送队列;所述rdma发送队列通过rdma传输协议将所述响应请求的rdma工作请求对应的数据发送到发送端,其中,所述响应请求的rdma工作请求对应的数据包括发送端发送请求的唯一标识。
64.步骤s104:发送端通过发送端的rdma接收队列接收所述响应请求中发送端发送请求的唯一标识,根据所述发送请求的唯一标识从所述等待响应队列中找到对应的发送请求,并将所述发送请求释放回到发送请求池中。
65.具体的,所述步骤s104包括:发送端的rdma接收队列通过预先从发送端接收请求池中获取的接收请求,接收响应请求的rdma工作请求对应的发送端发送请求的唯一标识;根据所述发送端发送请求的唯一标识,从所述等待响应队列中找到所述唯一标识对应的发送请求;将所述接收请求通过发送端接收请求池重新放入发送端rdma接收队列中,以便发送端rdma接收队列接收发送端下一发送请求的唯一标识;将所述发送请求释放回到发送请求池中;发送端通过发送端的数据发送进程从发送请求池中获取发送请求,其中,所述发送请求包含下一传输数据以及发送请求的唯一标识。
66.具体的,如果数据传输方式为同步传输,则在将所述发送请求释放回到发送请求池中之后,所述方法还包括:通过发送端的等待响应队列通知发送端的数据发送进程,完成所述同步传输的发送过程。在同步传输方式下,数据发送后需要等待接收端接收才可以发送下一数据,因此,通过对比响应请求中发送端发送请求的唯一标识和等待响应队列中的发送请求,可以确保接收端已正常接收传输数据,提高传输的准确性,然后等待响应队列通知数据发送进程,完成当前数据同步传输的发送过程,等待传输下一数据。
67.本发明实施例使用发送请求来维护在发送流程中涉及的所有数据结构和内存,所以在发送流程中不需要额外进行数据结构内存的分配,所有必须的数据结构和内存都包含在发送请求中,避免了发送流程中进行数据结构内存分配带来的开销,降低整个发送流程的延迟。
68.并且,本发明实施例使用接收请求来维护在接收流程中涉及的所有数据结构和内
存,所以在接收流程中不需要额外进行数据结构内存的分配,所有必须的数据结构和内存都包含在接收请求中,避免了接收流程中进行数据结构内存分配带来的开销,降低整个接收流程的延迟。
69.由于在数据传输过程中,本发明实施例分别使用发送请求和接受请求来管理发送流程和接收流程,所以在一次数据传输过程中,发送端需要申请一个发送请求的内存并初始化其来进行发送数据,同理,接收端也需要申请一个接收请求的内存并初始化其来进行接收数据,这种情况下,两端都需要分别做一次内存分配操作和初始化请求操作。因此,本发明实施例引入了请求池,针对发送请求引入发送请求池,针对接收请求引入接收请求池,则能够避免这两次内存分配操作和初始化请求操作,具体实现原理为:发送端在建立连接后,直接初始化好足够多的发送请求并将它们放入发送请求池中,这样在发送数据过程中,可以直接从发送请求池中获取空闲的、已经初始化好的发送请求,将该发送请求用来发送数据;接收端在建立连接后,初始化好足够多的接收请求并将它们放入接收请求池中,这样在接收数据过程中,可以直接从接收请求池中获取空闲的、已经初始化好的接收请求,将该接收请求用来接收数据。
70.引入上述请求池之后的优势就是不需要再调用系统api去分配请求使用的内存,也不用花费cpu去初始化这个新分配的请求,减少整个数据传输流程花费的时间,降低了整体的延迟。
71.此外,由于在使用dma 地址来传输数据时,接收端需要分配足够数量的空闲页面来存储dma地址中的数据,需要多次调用系统api来获取空间页面,每次调用系统api都是一次开销。因此,本发明实施例在接收端引入了页面池,使用页面池来管理空闲页面,接收端优先从页面池中获取到足够数量的空闲页面,当页面池中空闲页面充足时,完全不需要调用系统api去分配空闲page,可以直接从页面池中获取空闲页面,省去了系统api分配空闲页面带来的消耗,提高数据传输的性能,只有当页面池中空闲页面不足的例外情况下,才需要从系统中获取空闲页面。具体实施方式为:在发送端和接收端建立连接后,接收端主动调用系统api去分配足够的空闲页面,并将这些空闲页面放入页面池中,之后在数据传输过程中如果需要空闲页面,优先从页面池中获取,获取失败才使用系统api去获取空闲页面。
72.从以上的描述中,可以看出,本发明实现了如下技术效果:在本发明实施例中,使用发送请求和接收请求这两种请求以及页面,来管理所有在数据传输过程中需要使用到的内存和数据结构,所有必须的数据结构和内存都包含在请求中,不需要额外进行数据结构内存的分配,避免了数据传输过程中软件再进行额外的内存分配释放操作带来的开销,提高了数据传输过程的效率,降低了数据传输过程的延迟。
73.并且,使用请求池来管理请求,即在发送端和接收端分别使用发送请求池来管理发送请求,使用接收请求池来管理接收请求,以及使用页面池管理空闲页面,不需要调用系统api去分配请求和空闲页面使用的内存,也不需要花费cpu去初始化这个新分配的请求,减少整个流程花费的时间,也降低了整体数据传输过程的延迟。
74.此外,在发送端和接收端建立连接后,接收端主动调用系统api去分配足够的空闲页面,并将这些空闲页面放入页面池中,之后在数据传输过程中如果需要空闲页面,优先从
页面池中获取,省去了系统api分配空闲页面带来的消耗,提高数据传输的性能,只有当页面池中空闲页面不足的例外情况下,才需要从系统中获取空闲页面。
75.需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
76.本发明实施例还提供了一种用于实施上述基于rdma的数据传输方法的基于rdma的数据传输装置,如图4所示,该装置包括:第一发送单元41,用于发送端通过发送端的数据发送进程从发送请求池中获取发送请求,将所述发送请求发送至接收端和等待响应队列,其中,所述发送请求包含发送请求的唯一标识以及将传输数据进行dma映射后得到的发送端dma地址;第一接收单元42,用于接收端的rdma接收队列通过预先获取的接收请求,接收所述发送请求中的发送端dma地址,将所述发送端dma地址中的传输数据复制到接收端dma地址中,并将所述接收端dma地址中的传输数据移动到数据接收进程中,将所述接收请求释放回到接收请求池中;第二发送单元43,用于接收端基于发送端发送请求的唯一标识从接收端发送请求池中获取发送请求,并将所述发送请求初始化为响应请求,将发送端发送请求的唯一标识存入所述响应请求,将所述响应请求发送到发送端;第二接收单元44,用于发送端通过发送端的rdma接收队列接收所述响应请求中发送端发送请求的唯一标识,根据所述发送请求的唯一标识从所述等待响应队列中找到对应的发送请求,并将所述发送请求释放回到发送请求池中。
77.本发明实施例还提供了一种电子设备,如图5所示,该电子设备包括一个或多个处理器51以及存储器52,图5中以一个处理器51为例。
78.该控制器还可以包括:输入装置53和输出装置54。
79.处理器51、存储器52、输入装置53和输出装置54可以通过总线或者其他方式连接,图5中以通过总线连接为例。
80.处理器51可以为中央处理器(central processing unit,简称为cpu),处理器51还可以为其他通用处理器、数字信号处理器(digital signal processor,简称为dsp)、专用集成电路(application specific integrated circuit,简称为asic)、现场可编程门阵列(field

programmable gate array,简称为fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合,通用处理器可以是微处理器或者任何常规的处理器。
81.存储器52作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的控制方法对应的程序指令/模块。处理器51通过运行存储在存储器52中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的基于rdma的数据传输方法。
82.存储器52可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据服务器操作的处理装置的使用所创建的数据等。此外,存储器52可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存
储器52可选包括相对于处理器51远程设置的存储器,这些远程存储器可以通过网络连接至网络连接装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
83.输入装置53可接收输入的数字或字符信息,以及产生与服务器的处理装置的用户设置以及功能控制有关的键信号输入。输出装置54可包括显示屏等显示设备。
84.一个或者多个模块存储在存储器52中,当被一个或者多个处理器51执行时,执行如图3所示的方法。
85.本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成的,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各电机控制方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(read

only memory,简称为rom)、随机存储记忆体(random access memory,简称为ram)、快闪存储器(flash memory,简称为fm)、硬盘(hard disk drive,简称为hdd)或固态硬盘(solid

state drive,简称为ssd)等;存储介质还可以包括上述种类的存储器的组合。
86.虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1