A method and apparatus for processing remote direct memory access requests are disclosed. Including a specific embodiment of the method: in response to user space send bulk remote direct memory access RDMA request for the batch RDMA request distribution link in the RDMA card; the RDMA RDMA request in each batch request package for RDMA card into a link identification descriptor; descriptor physical address structure the descriptors encapsulated into the list; starting the physical address of the linked list issued to link the assigned, to link the allocated in order to read the list of descriptors of the physical address and processes the package descriptor physical addresses corresponding descriptors in the RDMA request. This implementation implements batch processing of RDMA requests.
【技术实现步骤摘要】
用于处理远程直接内存访问请求的方法和装置
本申请涉及计算机
,具体涉及网络
,尤其涉及用于处理远程直接内存访问请求的方法和装置。
技术介绍
RDMA(RemoteDirectMemoryAccess,远程直接内存访问),是为了解决网络传输中服务器端数据处理的延迟而产生的。RDMA与传统以太网的区别主要在于,数据由适配器从源端内存直接读出,经传输介质到达远端后被适配器直接写入目的区域。在使用RDMA技术时,发起者只需指定远端内存读写地址,开启传输并等待传输完成即可。整个传输过程几乎无需两端操作系统参与,无需复杂的协议层处理,亦无需多余数据拷贝,因此RDMA的延时能比传统以太网快一个数量级。此外,RDMA的传输介质一般是光纤,能提供极高的通信带宽,以满足业务巨大的吞吐量需求。然而,在使用RDMA技术时,在保证小数据包微秒级延时的前提下,如何增大小数据包的传输QPS从而提高光纤链路的带宽利用率以及改善应用业务的处理能力和实时性,是一个亟需解决的技术问题。
技术实现思路
本申请的目的在于提出一种改进的用于处理远程直接内存访问请求的方法和装置,来解决以上
技术介绍
部分提到的技术问题。第一方面,本申请提供了一种用于处理远程直接内存访问请求的方法,所述方法包括:响应于用户空间发送批量远程直接内存访问RDMA请求,在RDMA网卡中为所述批量RDMA请求分配链路;将所述批量RDMA请求中的每个RDMA请求封装成供RDMA网卡的链路识别的描述符;将所封装成的多个描述符的描述符物理地址构造成链表;将所述链表的起始物理地址下发至所分配的链路,以使用所分配的链路依次读取所述链 ...
【技术保护点】
一种用于处理远程直接内存访问请求的方法,其特征在于,包括:响应于用户空间发送批量远程直接内存访问RDMA请求,在RDMA网卡中为所述批量RDMA请求分配链路;将所述批量RDMA请求中的每个RDMA请求封装成供RDMA网卡的链路识别的描述符;将所封装成的多个描述符的描述符物理地址构造成链表;将所述链表的起始物理地址下发至所分配的链路,以使用所分配的链路依次读取所述链表中的描述符物理地址并对描述符物理地址对应的描述符中所封装的RDMA请求进行处理。
【技术特征摘要】
1.一种用于处理远程直接内存访问请求的方法,其特征在于,包括:响应于用户空间发送批量远程直接内存访问RDMA请求,在RDMA网卡中为所述批量RDMA请求分配链路;将所述批量RDMA请求中的每个RDMA请求封装成供RDMA网卡的链路识别的描述符;将所封装成的多个描述符的描述符物理地址构造成链表;将所述链表的起始物理地址下发至所分配的链路,以使用所分配的链路依次读取所述链表中的描述符物理地址并对描述符物理地址对应的描述符中所封装的RDMA请求进行处理。2.根据权利要求1所述的方法,其特征在于,所述将所封装成的多个描述符的描述符物理地址构造成链表,包括:对所述多个描述符的描述符物理地址进行分组,得到至少一个分组;将每个分组作为链表的节点,构造成链表。3.根据权利要求2所述的方法,其特征在于,所述对所述多个描述符的描述符物理地址进行分组,得到至少一个分组,包括:按照预先为每个分组设置的描述符物理地址数量,对所述多个描述符的描述符物理地址进行分组,得到至少一个分组。4.根据权利要求2所述的方法,其特征在于,所述将所封装成的多个描述符的描述符物理地址构造成链表,还包括:在所述链表的每个节点中记录下一个节点中描述符物理地址的数量;以及所述方法还包括:将所述链表中第一个节点中描述符物理地址的数量下发给所分配的链路。5.根据权利要求1-4之一所述的方法,其特征在于,所述方法还包括:检测所述RDMA网卡对批量RDMA请求的处理是否超时;向所述用户空间返回用于指示正常或超时的指示信息。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:检测所述RDMA网卡是否接收到目标节点或转发节点在发生传输异常时发回的否定回答NACK包;当接收到NACK包时,解析所述NACK包以确定异常类型,并向所述用户空间返回用于指示异常类型的指示信息。7.根据权利要求6所述的方法,其特征在于,所述方法还包括:判断所述异常类型是否为预设异常类型;若所述异常类型为预设异常类型,使用所述RDMA网卡进行数据重传。8.一种用于处理远程直接内存访问请求的装置,其特征...
【专利技术属性】
技术研发人员:缪天翔,龚小章,欧阳剑,王勇,漆维,
申请(专利权)人:北京百度网讯科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。