一种基于缓存的数据处理方法、系统及设备技术方案

技术编号:38752356 阅读:7 留言:0更新日期:2023-09-09 11:18
本申请公开了一种基于缓存的数据处理方法,当第一服务器需要将自身内存中的第一数据写入第二服务器的内存时,第一服务器中的处理器将第一数据拷贝至第一缓存中,该第一缓存为第一服务器中的缓存。在完成拷贝后,处理器向网卡发送写请求,以使得网卡根据该写请求以RDMA的方式将第一缓存中的第一数据写入第二服务器的内存中。即,网卡在向第二服务器发送第一数据时,是从第一缓存中读取的第一数据,并非是从内存中读取第一数据,从而使得处理器在向第一缓存中拷贝完第一数据后,就可以访问第一数据所占用的内存,无需等待第二服务器写完成后才访问,提高处理器的工作效率。提高处理器的工作效率。提高处理器的工作效率。

【技术实现步骤摘要】
一种基于缓存的数据处理方法、系统及设备


[0001]本申请涉及通信
,尤其涉及一种基于缓存的数据处理方法、系统及设备。

技术介绍

[0002]远程直接内存访问(remote direct memory access,RDMA)是一种可以绕过远端主机操作系统访问其内存数据的技术。由于RDMA可以不经过操作系统实现数据存取,不仅节省了大量中央处理器(central processing unit,CPU)资源,还可以提高系统吞吐量,降低系统中通信时延。例如图1所示的应用场景图,在该应用场景中服务器1为本地服务器、服务器2为远端服务器,交换机用于连接服务器1与服务器2。在处理器1上运行的应用程序通过调用网卡上的驱动程序与服务器1建立数据通道,以通过该数据通道使用服务器2所注册的内存区域执行RDMA读操作和写操作。具体地,服务器1通过网卡1向服务器2发送读请求或写请求,服务器2中的网卡2完成读写操作,无需处理器2参与操作。
[0003]然而,随着数据量的不断增大,对数据处理效率的要求也越来越高,如何提高数据处理效率是急需解决的技术问题。

技术实现思路

[0004]为解决上述问题,本申请提供了一种基于缓存的数据处理方法、系统及设备,以提高数据处理效率。
[0005]在本申请的第一方面,提供了一种基于缓存的数据处理方法,该方法应用于第一服务器,该第一服务器包括处理器和网卡。在需要将第一服务器内存中的第一数据写入第二服务器的内存时,处理器将第一数据拷贝至第一缓存中,该第一缓存为第一服务器中的缓存。在拷贝完成后,处理器向网卡发送写请求,该写请求指示网卡以RDMA方式将第一缓存中的第一数据写入第二服务器的内存中。网卡根据写请求从第一缓存中获取第一数据,并通过RDMA方式将第一数据发送给第二服务器。
[0006]在该方案中,当第一服务器需要将自身内存中的第一数据写入第二服务器的内存时,第一服务器中的处理器将第一数据拷贝至第一缓存中,该第一缓存为第一服务器中的缓存。在完成拷贝后,处理器向网卡发送写请求,以使得网卡根据该写请求以RDMA的方式将第一缓存中的第一数据写入第二服务器的内存中。即,网卡在向第二服务器发送第一数据时,是从第一缓存中读取的第一数据,并非是从内存中读取第一数据,从而使得处理器在向第一缓存中拷贝完第一数据后,就可以访问第一数据所占用的内存,无需等待第二服务器写完成后才访问,提高处理器的工作效率。
[0007]在一种可能的实现方式中,在处理器将第一数据拷贝至第一缓存中,允许处理器访问存储第一数据的内存,以提高处理器的处理效率。
[0008]在一种可能的实现方式中,第二服务器在完成写操作后,向网卡发送确认报文,以使得网卡通过确认报文可以获知第二服务器完成针对第一数据的写操作。
[0009]在一种可能的实现方式中,第一缓存可以为处理器中的内存中的部分存储空间,
或者第一缓存为网卡的内存中的部分存储空间。
[0010]在一种可能的实现方式中,网卡向第二服务器发送第一数据时,将通过网络设备以RDMA方式将第一数据发送给第二服务器。其中,第一服务器与第二服务器通过网络设备通信。
[0011]在本申请第二方面,提供了一种基于缓存的数据处理方法,包括:网络设备接收第一服务器发送的第一读请求,该第一读请求包括第一地址和第一数据长度。其中,第一请求用于以RDMA方式从第二服务器的内存获取从第一地址开始存储的第一数据刹那高度的第一目标数据。第一服务器和第二服务器通过网络设备通信。网络设备根据第一读请求向第二服务器发送第二读请求,该第二读请求包括第二地址和第二数据长度,用于指示以RDMA方式从第二服务器的内存获取从第二地址开始存储的第二数据长度的第二目标数据。网络设备以RDMA方式向所述第一服务器发送第一读响应,该第一读响应包括所述第一目标数据。其中,当第二地址为第一地址时,第二数据长度大于第一数据长度,所述第二目标数据包括第一目标数据;当第二地址为第一地址偏移第一数据长度后得到的地址时,第二目标数据为位于第一目标数据后的数据。
[0012]在该方案中,当第一服务器需要从第二服务器读取数据时,位于第一服务器和第二服务器之间的网络设备在接收到第一服务器发送的第一读请求后,将第一读请求中的第一数据长度修改为第二数据长度,以从第二服务器中读取第二数据长度的数据。其中,第二数据长度大于第一数据长度,或者第二数据长度对应的第二目标数据位于所要读取的第一目标数据之后。即,在网络设备侧实现预取功能,不仅加快读取速度,还可以避免对第一服务器中处理器的改动。
[0013]在一种可能的实现方式中,网络设备还可以存储第一地址和第一数据长度的第一对应关系,以便根据该第一对应关系向第一服务器发送第一目标数据。
[0014]在一种可能的实现方式中,网络设备接收第二服务器发送的第二目标数据,并根据第一对应关系以及第二目标数据向第一服务器发送第一读响应。
[0015]在一种可能的实现方式中,网络设备还可以根据第二读请求建立第二对应关系。当第二地址为第一地址时,第二对应关系包括第一地址、第二数据长度以及第二目标数据之间的对应关系;或者第二对应关系包括第一地址偏移第一长度后得到的地址、第二数据长度减去第一数据长度得到的数据长度以及第二目标数据中去掉第一目标数据后的数据之间的对应关系。当第二地址为第一地址偏移第一长度后得到的地址时,第二对应关系包括第二地址、第二数据长度以及第二目标数据之间的对应关系。
[0016]在一种可能的实现方式中,网络设备在接收到第一读请求后,根据第一读请求确定第二缓存中是否存储有第一目标数据,该第二缓存为网络设备中的缓存。当第二缓存中未存储有第一目标数据时,网络设备向第二服务器发送第二读请求。该第二读请求中第二地址为第一地址,第二数据长度大于第一数据长度,第二目标数据包括第一目标数据。当第二缓存中存储有第一目标数据时,网络设备向第二服务器发送第二读请求。该第二读请求中第二地址为第一地址偏移第一数据长度后得到的地址,第二目标数据为位于第一目标数据后的数据。
[0017]在一种可能的实现方式中,网络设备接收第一服务器发送的写报文,该写报文指示以RDMA方式向第二服务器的内存的第三地址中写入第三目标数据。网络设备确定第二缓
存中是否存储第三地址对应的数据。当第二缓存存储第三地址对应的数据时,网络设备利用第三目标数据更新第二缓存存储的第三地址所对应的数据。
[0018]在本申请第三方面,提供了一种基于缓存的数据处理系统,该系统包括第一服务器、第二服务器,该第一服务器与第二服务器以远程直接内存访问RDMA方式通信;第一服务器,用于执行第一方面或第一方面中任一可能的实现方式中所述的方法,以向第二服务器的内存中写入数据。
[0019]在一种可能的实现方式中,系统还包括:网络设备,该第一服务器与第二服务器通过所述网络设备通信;网络设备,用于执行第二方面或第二方面中任一可能的实现方式中所述的方法,以从第二服务器中获取数据并发送给第一服务器。...

【技术保护点】

【技术特征摘要】
1.一种基于缓存的数据处理方法,其特征在于,所述方法应用于第一服务器,所述第一服务器包括处理器和网卡,所述方法包括:在需要将所述第一服务器内存中的第一数据写入第二服务器的内存时,所述处理器将所述第一数据拷贝至第一缓存中,所述第一缓存为所述第一服务器中的缓存;所述处理器向所述网卡发送写请求,所述写请求指示所述网卡以远程直接内存访问RDMA方式将所述第一缓存中的所述第一数据写入所述第二服务器的内存中;所述网卡根据所述写请求从所述第一缓存中获取所述第一数据,并通过所述RDMA方式将所述第一数据发送给所述第二服务器。2.根据权利要求1所述的方法,其特征在于,在所述处理器将所述第一数据拷贝至所述第一缓存后,允许所述处理器访问存储所述第一数据的内存。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述网卡接收所述第二服务器发送的确认报文,所述确认报文指示所述第二服务器完成针对所述第一数据的写操作。4.根据权利要求1

3任一项所述的方法,其特征在于,所述第一缓存为所述处理器的内存中的部分存储空间,或者所述第一缓存为所述网卡的内存中的部分存储空间。5.根据权利要求1

4任一项所述的方法,其特征在于,所述网卡通过所述RDMA方式将所述第一数据发送给所述第二服务器,包括:所述网卡通过网络设备以所述RDMA方式将所述第一数据发送给所述第二服务器,所述第一服务器与所述第二服务器通过所述网络设备通信。6.一种基于缓存的数据处理方法,其特征在于,所述方法包括:网络设备接收第一服务器发送的第一读请求,所述第一读请求包括第一地址和第一数据长度,所述第一读请求用于以远程直接内存访问RDMA方式从第二服务器的内存获取从所述第一地址开始存储的所述第一数据长度的第一目标数据,所述第一服务器和所述第二服务器通过所述网络设备通信;所述网络设备根据所述第一读请求向所述第二服务器发送第二读请求,所述第二读请求包括第二地址和第二数据长度,所述第二读请求用于以所述RDMA方式从所述第二服务器的内存获取从所述第二地址开始存储的第二数据长度的第二目标数据;其中,当所述第二地址为所述第一地址时,所述第二数据长度大于所述第一数据长度,所述第二目标数据包括所述第一目标数据;当所述第二地址为所述第一地址偏移所述第一数据长度后得到的地址时,所述第二目标数据为位于所述第一目标数据后的数据;所述网络设备以所述RDMA方式向所述第一服务器发送第一读响应,所述第一读响应包括所述第一目标数据。7.根据权利要求6所述的方法,其特征在于,所述方法还包括:所述网络设备存储所述第一地址以及所述第一数据长度的第一对应关系。8.根据权利要求7所述的方法,其特征在于,所述方法还包括:所述网络设备接收所述第二服务器发送的所述第二目标数据;所述网络设备以所述RDMA方式向所述第一服务器发送第一读响应包括:所述网络设备根据所述第一对应关系以及所述第二目标数据向所述第一服务器发送所述第一读响应。
9.根据权利要求8所述的方法,其特征在于,还包括:所述网络设备根据所述第二读请求建立第二对应关系;当所述第二地址为所述第一地址时,所述第二对应关系包括所述第一地址、第二数据长度以及所述第二目标数据之间的对...

【专利技术属性】
技术研发人员:丁飞薛坤袁辉
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1