远程数据访问方法及装置制造方法及图纸

技术编号:37773523 阅读:14 留言:0更新日期:2023-06-06 13:40
本申请公开了一种远程数据访问方法及装置,涉及通信技术领域,该方法能够提高本端设备操作远端设备的数据的效率。该方法应用于与第二设备连接通信的第一设备,第一设备和第二设备均配置有具有远程直接内存访问RDMA功能的网络接口卡NIC。该方法由第一设备的NIC执行,该方法包括:生成包括类型标识和功能标识的第一报文;向第二设备发送第一报文。其中,第一报文中的类型标识表示第一报文是远程内存功能调用RMFC类型的报文,RMFC类型的报文用于指示第二设备对第二设备的本地数据执行预设操作。第一报文中的功能标识用于指示该预设操作的操作类型。作的操作类型。作的操作类型。

【技术实现步骤摘要】
远程数据访问方法及装置


[0001]本申请涉及通信
,尤其涉及一种远程数据访问方法及装置。

技术介绍

[0002]远程直接内存访问(remote direct memory access,RDMA)是一种用于解决网络传输中数据处理延迟的传输层网络协议。RDMA协议能够减少数据传输过程中在用于传输数据的主机设备内部对数据的复制操作,并且无需用于传输数据的主机设备的操作系统介入,因此RDMA协议能够降低用于传输数据的主机设备的中央处理单元(central processing unit,CPU)负载。
[0003]然而,当前的RDMA协议仅提供本端设备对远端设备的内存数据直接存(写)取(读)的功能。例如,当数据中心的客户端设备(也称为本端设备)采用RDMA协议中的读(read)请求从数据中心的服务器(也称为远端设备)查询数据时,客户端设备仅能利用一个或多个read请求将该服务器中的数据库读取到本地,然后再通过遍历读取到的数据库来查询需要的数据。可见,基于现有的RDMA协议实现的本端设备操作远端设备的数据的效率低。

技术实现思路

[0004]本申请提供了一种远程数据访问方法及装置,该方法能够提高本端设备操作远端设备的数据的效率。
[0005]为达上述目的,本申请提供如下技术方案:
[0006]第一方面,本申请提供了一种远程数据访问方法,该方法应用于与第二设备连接通信的第一设备,第一设备和第二设备均配置有具有远程直接内存访问(remote direct memory access,RDMA)功能的网络接口卡(network interface card,NIC)。该方法由第一设备的NIC执行,该方法包括:生成包括类型标识和功能标识的第一报文。向第二设备发送第一报文。其中,第一报文中的类型标识表示第一报文是远程内存功能调用(remote memory function call,RMFC)类型的报文,RMFC类型的报文用于指示接收第一报文的第二设备对第二设备的本地数据执行预设操作,第一报文中的功能标识用于指示该预设操作的操作类型。
[0007]根据本申请提供的方法,第一设备(例如本端设备)可以通过向第二设备(例如远端设备)发送RMFC类型的报文,以控制第二设备对第二设备的本地数据执行预设操作。其中,该RMFC类型的报文即为本申请对RDMA协议扩展后的协议报文。这样,第一设备通过执行本申请提供的方法,即可实现第一设备操作第二设备本地数据的目的。例如,第一设备通过执行本申请提供的方法,来实现第一设备查询第二设备本地数据的目的。相比第一设备通过执行扩展前RDMA协议中的read操作时需要多次报文交互来实现对第二设备内存数据的查询,本申请提供的方法仅需第一设备和第二设备之间的两次报文交互(即第一设备向第二设备发送第一报文,以及第二设备向第一设备发送的用于承载目标数据的报文)来实现第一设备对第二设备内存数据的查询,即本申请所提供方法提高了第一设备查询第二设备
本地数据的效率。也就是说,本申请方法能够提高第一设备操作第二设备本地数据的效率。
[0008]在一种可能的设计方式中,上述预设操作的操作类型包括查询操作、插入操作、或删除操作中的任一种。
[0009]根据该可能的设计方式,第一设备可以高效的实现对第二设备本地数据的操作,例如查询操作、插入操作、或删除操作等。
[0010]在另一种可能的设计方式中,如果上述预设操作的操作类型是查询操作,则上述方法还包括:接收用于承载目标数据的第二报文。将第二报文所承载的目标数据写入接收缓存区。其中,目标数据是第二设备对第二设备的本地数据执行查询操作后获得的数据。接收缓存区是与第一设备中运行的应用进程相对应的接收队列(receive queue,RQ)的头部接收队列元素(receive queue element,RQE)所指示的缓存区。
[0011]在另一种可能的设计方式中,上述第一设备设置有包括至少一个扩展RQE的扩展RQ,该至少一个扩展RQE中的任一个扩展RQE中,包括与任一个扩展RQE对应的扩展缓存区的地址。则上述将第二报文所承载的目标数据写入接收缓存区包括:确定第二报文所承载的目标数据的长度大于上述接收缓存区的长度。调用一个或多个扩展RQE,并将该目标数据写入上述接收缓存区和该一个或多个扩展RQE对应的扩展缓存区。
[0012]通过该可能的设计,当第一设备接收到的send报文所承载的数据量较大,以致QP中RQ的头部RQE所指示的接收缓存区的长度不足以存储该send报文所承载的数据时,第一设备也能通过调用扩展RQ中的扩展RQE成功接收send报文所承载的数据。
[0013]在另一种可能的设计方式中,上述方法还包括:在完成队列(completion queue,CQ)中写入完成队列元素(completion queue entry,CQE)。其中,在第一设备的NIC调用一个或多个扩展RQE时,CQE用于指示第二报文所承载的目标数据已写入上述接收缓存区和上述一个或多个扩展RQE对应的扩展缓存区,并用于指示该接收缓存区和该一个或多个扩展RQE对应的扩展缓存区的地址。
[0014]通过该可能的设计,第一设备的NIC可以在调用扩展缓存区来实现对接收数据的写入时,也能及时向第一设备的处理器上报当前数据已写入完成。
[0015]在另一种可能的设计方式中,上述第一报文中的功能标识是基于第一设备中运行的应用进程发出的数据请求确定的。
[0016]通过该可能的设计,第一设备可以获得当前应用进程请求对第二设备本地数据执行操作的操作类型。
[0017]在另一种可能的设计方式中,上述生成包括类型标识和功能标识的第一报文包括:根据与第一设备中运行的应用进程对应的发送队列(send queue,SQ)的头部发送队列元素(send queue element,SQE),生成包括类型标识和功能标识的第一报文。其中,头部SQE中包括与头部SQE对应的发送缓冲区的地址,该发送缓冲区用于存储前述应用进程发出的数据请求的参数。
[0018]第二方面,本申请提供了一种远程数据访问方法,该方法应用于与第一设备连接通信的第二设备,第二设备和第一设备均配置有具有RDMA功能的NIC。该方法由第二设备的NIC执行,该方法包括:接收来自第一设备的第一报文,第一报文包括类型标识和功能标识。当确定第一报文中的类型标识是用于指示第一报文是RMFC类型的报文的标识时,通知第二设备的处理单元对第二设备的本地数据执行预设操作,该预设操作的操作类型为第一报文
中的功能标识所指示的操作类型。
[0019]根据本申请提供的方法,第二设备(例如远端设备)通过对来自第一设备(例如本端设备)的RMFC类型的报文的响应,即可实对第二设备的本地数据执行预设操作。其中,该RMFC类型的报文即为本申请对RDMA协议扩展后的协议报文。这样,通过执行本申请提供的方法,即实现了第一设备操作第二设备本地数据的目的。并且,相比扩展前RDMA协议中receiv本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种远程数据访问方法,其特征在于,应用于第一设备,所述第一设备与第二设备连接通信,所述第一设备和所述第二设备均配置有具有远程直接内存访问RDMA功能的网络接口卡NIC;所述方法由所述第一设备的NIC执行,所述方法包括:生成第一报文,所述第一报文包括类型标识和功能标识;向所述第二设备发送所述第一报文,其中,所述类型标识表示所述第一报文是远程内存功能调用RMFC类型的报文,所述RMFC类型的报文用于指示所述第二设备对所述第二设备的本地数据执行预设操作,所述功能标识用于指示所述预设操作的操作类型。2.根据权利要求1所述的方法,其特征在于,所述预设操作的操作类型包括查询操作、插入操作、或删除操作中的任一种。3.根据权利要求2所述的方法,其特征在于,如果所述预设操作的操作类型是查询操作,则所述方法还包括:接收第二报文,所述第二报文用于承载目标数据,所述目标数据是所述第二设备对所述第二设备的本地数据执行所述查询操作后获得的数据;将所述目标数据写入接收缓存区,所述接收缓存区是与所述第一设备中运行的应用进程相对应的接收队列RQ的头部接收队列元素RQE所指示的缓存区。4.根据权利要求3所述的方法,其特征在于,所述第一设备设置有扩展RQ,所述扩展RQ包括至少一个扩展RQE,所述至少一个扩展RQE中的任一个扩展RQE中包括与所述任一个扩展RQE对应的扩展缓存区的地址;所述将所述目标数据写入接收缓存区,包括:确定所述目标数据的长度大于所述接收缓存区的长度;调用一个或多个扩展RQE,并将所述目标数据写入所述接收缓存区和所述一个或多个扩展RQE对应的扩展缓存区。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:在完成队列CQ中写入完成队列元素CQE,其中,在所述第一设备的NIC调用所述一个或多个扩展RQE时,所述CQE用于指示所述目标数据已写入所述接收缓存区和所述一个或多个扩展RQE对应的扩展缓存区,并用于指示所述接收缓存区和所述一个或多个扩展RQE对应的扩展缓存区的地址。6.根据权利要求1

5中任一项所述的方法,其特征在于,所述功能标识是基于所述第一设备中运行的应用进程发出的数据请求确定的。7.根据权利要求1

6中任一项所述的方法,其特征在于,所述生成第一报文,包括:根据与所述第一设备中运行的应用进程对应的发送队列SQ的头部发送队列元素SQE,生成所述第一报文;所述头部SQE中包括与所述头部SQE对应的发送缓冲区的地址,所述发送缓冲区用于存储所述应用进程发出的数据请求的参数。8.一种远程数据访问方法,其特征在于,应用于第二设备,所述第二设备与第一设备连接通信,所述第二设备和所述第一设备均配置有具有远程直接内存访问RDMA功能的网络接口卡NIC;所述方法由所述第二设备的NIC执行,所述方法包括:接收来自所述第一设备的第一报文,所述第一报文包括类型标识和功能标识;当确定所述类型标识是用于指示所述第一报文是远程内存功能调用RMFC类型的报文的标识时,通知所述第二设备的处理单元对所述第二设备的本地数据执行预设操作,所述
预设操作的操作类型为所述第一报文中的所述功能标识所指示的操作类型。9.根据权利要求8所述的方法,其特征在于,所述通知所述第二设备的处理单元对所述第二设备的本地数据执行预设操作,包括:向所述处理单元发送通知消息,所述通知消息包括所述预设操作的执行优先级,所述通知消息用于通知所述处理单元按照所述预设操作的执行优先级,对所述第二设备的本地数据执行所述预设操作。10.根据权利要求8所述的方法,其特征在于,所述通知所述第二设备的处理单元对所述第二设备的本地数据执行预设操作,包括:向第二设备的调度单元发送通知消息,所述调度单元用于调度任务在所述处理单元的执行顺序,所述通知消息包括所述预设操作的执行优先级,所述通知消息用于通知所述调度单元按照所述预设操作的执行优先级,为所述处理单元调度所述预设操作的执行顺序,以使所述处理单元按照所述执行顺序对所述第二设备的本地数据执行所述预设操作。11.根据权利要求8

10中任一项所述的方法,其特征在于,所述预设操作的操作类型包括查询操作、插入操作、或删除操作中的任一种。12.根据权利要求11所述的方法,其特征在于,如果所述预设操作的操作类型是查询操作,则所述方法还包括:向所述第一设备发送第二报文,所述第二报文用于承载目标数据,所述目标数据是所述第二设备对所述第二设备的本地数据执行所述查询操作后获得的数据。13.根据权利要求8

12中任一项所述的方法,其特征在于,所述功能标识是所述第一设备基于所述第一设备中运行的应用进程发出的数据请求确定的。14.一种远程数据访问装置,其特征在于,应用于第一设备,所述第一设备与第二设备连接通信,所述装置具有远程直接内存访问RDMA功能;所述装置包括:生成单元,用于生成第一报文,所述第一报文包括类型标识和功能标识;发送单元,用于向所述第二设备发送所述第一报文,其中,所述类型标识表示所述第一报文是远程内存功能调用RMFC类型的报文,所述RMFC类型的报文用于指示所述第二设备对所述第二设备的本地数据执行预设操作,所述功能标识用于指示所述预设操作的操作类型。15.根据权利要求14所述的装置,其特征在于,所述预设操作的操作类型包括查询操作、插入操作、或删除操作中的任一种。16.根据权利要求15所述的装置,...

【专利技术属性】
技术研发人员:林伟彬凌文凯沈胜宇谢尚港潘秋萍陈晓雨
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1