CN105630426A - 基于rdma特性的远程数据获取方法及系统 - Google Patents

基于rdma特性的远程数据获取方法及系统 Download PDF

Info

Publication number
CN105630426A
CN105630426A CN201610009488.3A CN201610009488A CN105630426A CN 105630426 A CN105630426 A CN 105630426A CN 201610009488 A CN201610009488 A CN 201610009488A CN 105630426 A CN105630426 A CN 105630426A
Authority
CN
China
Prior art keywords
result
rdma
server end
memory field
client
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.)
Pending
Application number
CN201610009488.3A
Other languages
English (en)
Inventor
武永卫
苏茂萌
陈康
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN201610009488.3A priority Critical patent/CN105630426A/zh
Publication of CN105630426A publication Critical patent/CN105630426A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种基于RDMA特性的远程数据获取方法及系统,其中,方法包括以下步骤:客户端通过RDMA-write发送操作请求;服务器端根据操作请求进行操作以得到处理结果,并缓存至服务器端的本地结果内存区中;客户端通过RDMA-read检测结果状态,以判断处理结果是否为就绪状态;如果判断处理结果为就绪状态,则通过RDMA-read将处理结果远程获取至客户端的本地结果内存区中。本发明实施例的获取方法可以有效地利用底层InfiniBand网络硬件以及RDMA协议的性能特点,从而保证在小数据请求占很大比重时可以获得较高的IOPS性能,并提供较低的响应时间。

Description

基于RDMA特性的远程数据获取方法及系统
技术领域
本发明涉及数据中心高性能网络技术领域,特别涉及一种基于RDMA特性的远程数据获取方法及系统。
背景技术
数据中心高性能网络(InfiniBand)作为性能远远优于以太网的高性能网络硬件,自问世以来一直被用在高性能计算领域。InfiniBand能够支持一种高性能的协议,其称作RDMA(RemoteDirectMemoryAccess,远程直接数据存取)协议。RDMA能够显示地避免数据拷贝以及旁路机器的CPU和操作系统,并且提供的性能更加优于传统TCP/IP协议。传统的系统如何更高效地利用新型的InfiniBand网络硬件以及高性能的RDMA通信协议,是InfiniBand和RDMA被大规模部署到商用数据中心里需要解决的问题。
同时,在目前的商用数据中心里,小数据请求占了很大的比重,而且很多系统中(比如key-value数据库)也存储了大量的小数据。在这种情况下,传输小数据的性能瓶颈不会出现在网络的带宽大小上,而是会出现在网络的IOPS(Input/OutputOperationsPerSecond,每秒进行读写操作的次数)大小上。因此,如何充分利用InfiniBand高性能网络以及RDMA协议,发掘这些硬件以及协议所能提供的IOPS,是数据中心高性能网络领域中亟待解决的问题,但是相关技术中只对如何有效利用RDMA做了一些探索,但是仍然不能在通用的系统上获得高IOPS。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种基于RDMA特性的远程数据获取方法,该获取方法可以提高IOPS性能,并且提供较低的响应时间。
本发明的另一个目的在于提出一种基于RDMA特性的远程数据获取系统。
为达到上述目的,本发明一方面实施例提出了一种基于RDMA特性的远程数据获取方法,包括以下步骤:客户端通过RDMA-write操作向服务器端发送操作请求;在获取所述操作请求之后,所述服务器端根据所述操作请求进行操作以得到处理结果,并将所述处理结果缓存至服务器端的本地结果内存区中;所述客户端通过RDMA-read操作检测所述服务器端的本地结果内存区的结果状态,以根据接收到的检测结果判断所述处理结果是否为就绪状态;以及如果判断所述处理结果为就绪状态,则通过所述RDMA-read操作将所述处理结果远程获取至客户端的本地结果内存区中。
本发明实施例的基于RDMA特性的远程数据获取方法,以InfiniBand高性能网络和RDMA通信协议为底层支持,在客户端发送操作请求之后,服务器处理操作请求并且缓冲处理结果,客户端远程检测结果状态以远程获取最终结果,保证服务器能够避免out-boundRDMA的性能瓶颈,充分利用服务器in-boundRDMA的性能优势,提升整体系统性能,即有效地利用底层InfiniBand网络硬件以及RDMA协议的性能特点,从而保证在小数据请求占很大比重时可以获得较高的IOPS性能,并提供较低的响应时间。
另外,根据本发明上述实施例的基于RDMA特性的远程数据获取方法还可以具有以下附加的技术特征:
在本发明的一个实施例中,如果判断所述处理结果为所述就绪状态,则所述客户端同时获取当次的检测结果和所述处理结果。
进一步地,在本发明的一个实施例中,在获取所述操作请求之后,还包括:所述服务器端从请求内存区中提取所述操作请求,并清空所述请求内存区。
进一步地,在本发明的一个实施例中,所述将所述处理结果缓存至服务器端的本地结果内存区中,进一步包括:在得到所述处理结果之后,所述服务器端将从所述服务器端的本地结果内存区任意选择一个空闲结果内存区,并且将所述处理结果存入所述空闲结果内存区中;如果存入所述处理结果的操作完成之后,则所述服务器端在所述空闲结果内存区中将所述处理结果的状态置为就绪状态。
另外,在本发明的一个实施例中,所述客户端通过RDMA-write操作向服务器端发送操作请求,还包括:在发送完所述操作请求之后,所述客户端通过所述RDMA-read操作从所述服务器端的本地结果内存区中远程获取预设大小的数据区域;所述客户端检测所述数据区域的头部,以判断所述处理结果是否为就绪状态;如果所述处理结果为就绪状态,则所述客户端进一步从所述数据区域的头部提取所述处理结果的大小,其中,如果所述处理结果的大小小于或等于所述数据区域的大小,则操作结束;如果结果的大小大于所述数据区域的大小,则所述客户端再发送一次RDMA-read请求以远程获取全部余下的数据。
为达到上述目的,本发明另一方面实施例提出了一种基于RDMA特性的远程数据获取系统,包括:服务器端,在获取操作请求之后,用于根据所述操作请求进行操作以得到处理结果,并将所述处理结果缓存至服务器端的本地结果内存区中;客户端,用于通过RDMA-write操作向服务器端发送所述操作请求,并且通过RDMA-read操作检测所述服务器端的本地结果内存区的结果状态,以根据接收到的检测结果判断所述处理结果是否为就绪状态,并且在判断所述处理结果为就绪状态之后,通过所述RDMA-read操作将所述处理结果远程获取至客户端的本地结果内存区中。
本发明实施例的基于RDMA特性的远程数据获取系统,以InfiniBand高性能网络和RDMA通信协议为底层支持,在客户端发送操作请求之后,服务器处理操作请求并且缓冲处理结果,客户端远程检测结果状态以远程获取最终结果,保证服务器能够避免out-boundRDMA的性能瓶颈,充分利用服务器in-boundRDMA的性能优势,提升整体系统性能,即有效地利用底层InfiniBand网络硬件以及RDMA协议的性能特点,从而保证在小数据请求占很大比重时可以获得较高的IOPS性能,并提供较低的响应时间。
另外,根据本发明上述实施例的基于RDMA特性的远程数据获取系统还可以具有以下附加的技术特征:
在本发明的一个实施例中,在判断所述处理结果为所述就绪状态之后,所述客户端同时获取当次的检测结果和所述处理结果。
进一步地,在本发明的一个实施例中,所述服务器端还用于从请求内存区中提取所述操作请求,并清空所述请求内存区。
进一步地,在本发明的一个实施例中,在得到所述处理结果之后,所述服务器端还用于将从所述服务器端的本地结果内存区任意选择一个空闲结果内存区,并且将所述处理结果存入所述空闲结果内存区中,并且在存入所述处理结果的操作完成之后,所述服务器端在所述空闲结果内存区中将所述处理结果的状态置为就绪状态。
进一步地,在本发明的一个实施例中,在发送完所述操作请求之后,所述客户端还用于通过所述RDMA-read操作从所述服务器端的本地结果内存区中远程获取预设大小的数据区域,并且在所述处理结果为就绪状态之后,所述客户端进一步从所述数据区域的头部提取所述处理结果的大小,其中,如果所述处理结果的大小小于或等于所述数据区域的大小,则操作结束;如果所述处理结果的大小大于所述数据区域的大小,所述客户端再发送一次RDMA-read请求以远程获取全部余下的数据。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明实施例的基于RDMA特性的远程数据获取方法的流程图;
图2为根据本发明一个实施例的基于RDMA特性的远程数据获取方法的流程图;
图3为根据本发明一个具体实施例的基于RDMA特性的远程数据获取方法的流程图;
图4为根据本发明一个实施例的InfiniBand网卡在in-boundRDMA和out-boundRDMA的性能差异示意图;
图5为根据本发明一个实施例的服务器端处理操作请求与缓冲处理结果的流程图;
图6为根据本发明一个实施例的客户端发送操作请求与获取处理结果的流程图;以及
图7为根据本发明实施例的基于RDMA特性的远程数据获取系统的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参照附图描述根据本发明实施例提出的基于RDMA特性的远程数据获取方法及系统,首先将参照附图描述根据本发明实施例提出的基于RDMA特性的远程数据获取方法。
图1是本发明实施例的基于RDMA特性的远程数据获取方法的流程图。
如图1所示,该基于RDMA特性的远程数据获取方法包括以下步骤:
步骤S101,客户端通过RDMA-write操作向服务器端发送操作请求。
也就是说,客户端产生操作请求后,将操作请求发送给服务器,发送请求的方式可以为通过RDMA-write将请求写到服务器端的请求内存区。
进一步地,在本发明的一个实施例中,客户端通过RDMA-write操作向服务器端发送操作请求,还包括:在发送完操作请求之后,客户端通过RDMA-read操作从服务器端的本地结果内存区中远程获取预设大小的数据区域;客户端检测数据区域的头部,以判断处理结果是否为就绪状态;如果处理结果为就绪状态,则客户端进一步从数据区域的头部提取处理结果的大小,其中,如果处理结果的大小小于或等于数据区域的大小,则操作结束;如果结果的大小大于数据区域的大小,则客户端再发送一次RDMA-read请求以远程获取全部余下的数据。
步骤S102,在获取操作请求之后,服务器端根据操作请求进行操作以得到处理结果,并将处理结果缓存至服务器端的本地结果内存区中。
也就是说,服务器通过检测本地的请求内存区,从而判断客户端是否通过RDMA-write将操作请求发了过来。如果收到了客户端发送过来的操作请求,服务器会立刻处理操作请求,并且服务器在处理完客户端的操作请求后,不会通过网络以及RDMA将处理结果返回给客户端,而是将处理结果缓存在本地的结果内存区中。
进一步地,在本发明的一个实施例中,在获取操作请求之后,还包括:服务器端从请求内存区中提取操作请求,并清空请求内存区。
进一步地,在本发明的一个实施例中,将处理结果缓存至服务器端的本地结果内存区中,进一步包括:在得到处理结果之后,服务器端将从服务器端的本地结果内存区任意选择一个空闲结果内存区,并且将处理结果存入空闲结果内存区中;如果存入处理结果的操作完成之后,则服务器端在空闲结果内存区中将处理结果的状态置为就绪状态。
步骤S103,客户端通过RDMA-read操作检测服务器端的本地结果内存区的结果状态,以根据接收到的检测结果判断处理结果是否为就绪状态。
也就是说,客户端在发送完操作请求后,通过RDMA-read不断地远程检测服务器的结果内存区,以判断操作请求的结果是否已经在服务器准备就绪。
步骤S104,如果判断处理结果为就绪状态,则通过RDMA-read操作将处理结果远程获取至客户端的本地结果内存区中。
也就是说,当客户端发现操作请求已经被服务器处理完毕,并且处理结果在服务器端就绪时,客户端会发送RDMA-read请求将处理结果从服务器的结果内存区远程获取到本地。
其中,在本发明的一个实施例中,如果判断处理结果为就绪状态,则客户端同时获取当次的检测结果和处理结果。
也就是说,在小数据请求占很大比重的情况下,可以将结果状态的检测结果和处理结果获取通过一次RDMA-read操作绑定到一起。通过将检测结果和处理结果放到同一个结果内存区中,客户端可以通过一次RDMA操作将结果状态和结果同时获取到本地。当检测到结果状态就绪后,由于处理结果已经获取到了本地,客户端就不需要再额外发送一次RDMA-read来获取实际数据,从而客户端和服务器之间的往返通信次数就会降低,系统的IOPS就会得到提高。
应理解,步骤S101和步骤S104的设置仅为了描述的方便,而不用于限制方法的执行顺序。
图2为根据本发明一个实施例的基于RDMA特性的远程数据获取方法的流程图。
如图2所示,可以理解为,本发明实施例的基于RDMA特性的远程数据获取方法可以包括以下步骤:
步骤S201,客户端将操作请求通过RDMA-write发送给服务器。
步骤S202,服务器不断检测客户端是否通过RDMA-write发来操作请求,并在客户端发来操作请求后处理操作请求。即言,如果收到了客户端发送过来的操作请求,服务器会立刻处理操作请求。
步骤S203,服务器处理完客户端的操作请求后,将处理结果缓存在本地的结果内存区中。
需要注意的是,服务器不会通过网络以及RDMA将处理结果返回给客户端,而是将处理结果缓存在本地的结果内存区中。
具体地,InfiniBand网卡在in-boundRDMA操作和out-boundRDMA操作上具有差异很大的性能。对某个InfiniBand网卡来说,in-boundRDMA操作指的是其服务的来自其他InfiniBand网卡发送的RDMA操作,out-boundRDMA操作指的是其发送到其他InfiniBand网卡的RDMA操作。InfiniBand网卡在in-boundRDMA和out-boundRDMA上具有很大的性能差异:其在in-boundRDMA上能够获得的IOPS要比在out-boundRDMA上能够获得的IOPS高出5-6倍。性能差异的原因是InfiniBand网卡在发送out-boundRDMA请求时,需要维护更多的状态以及做更多的硬件操作,而InfiniBand网卡在服务in-boundRDMA请求时,需要的状态和硬件操作比发送out-boundRDMA需要的少很多。因此,如果服务器在完成请求后通过RDMA-write将结果发回给客户端的话,其会受到out-boundRDMA-write性能瓶颈的影响,而客户端通过RDMA-read远程检测和获取数据的话,会充分利用服务器InfiniBand网卡的in-boundRDMA-read的高性能,提升系统在小数据操作上的IOPS。
步骤S204,客户端通过RDMA-read不断地远程检测服务器端结果内存区的结果状态。其中,客户端通过检测结果状态判断操作请求的处理结果是否已经在服务器端准备就绪。
步骤S205,当客户端发现其请求已经被服务器处理完毕,并且处理结果在服务器端就绪时,即当结果就绪时,客户端通过RDMA-read将结果远程获取至本地。
在本发明的实施例中,RDMA操作为直接远程内存操作,该操作允许本地机器直接读写远程机器内存中的数据,而不需要本地机器的操作系统以及远程机器CPU和操作系统的参与。同时,RDMA操作允许直接读写用户态内存中的数据,而不需要数据在用户态和内核态之间做显示的拷贝。RDMA操作这种完全旁路的特性要优于TCP/IP协议,因为TCP/IP协议需要数据在用户态和内核态之间进行显示的拷贝,而且需要CPU和操作系统的全程参与。InfiniBand高性能网络可以很好地支持RDMA,因此InfiniBand和RDMA的组合可以被用来提升传统系统的整体性能。
图3为根据本发明一个实施例的基于RDMA特性的远程数据获取方法的流程图。
如图3所示,可以理解为,本发明实施例的基于RDMA特性的远程数据获取方法可以包括以下步骤:
步骤S1,客户端负责发送操作请求(通过RDMA-write)和远程获取请求结果(通过RDMA-read),不负责处理请求,以充分利用服务器InfiniBand网卡的in-boundRDMA的高性能。
步骤S2,服务器负责处理操作请求,不负责将处理请求得到的处理结果返回给客户端,而是将处理结果缓存在本地。这种方式可以在服务器本地执行任意复杂的策略,保护服务器端的核心内存区,执行的过程对客户端透明。同时,也能避免服务器InfiniBand网卡的out-boundRDMA的性能瓶颈。
图4为根据本发明一个实施例的InfiniBand网卡在in-boundRDMA和out-boundRDMA的性能差异示意图。
如图4所示,InfiniBand网卡在in-boundRDMA和out-boundRDMA的性能差异具体如下:
(一)InfiniBand网卡由于在服务in-boundRDMA请求时,所需要维护的状态以及硬件操作非常少,因此,其能够获得很高的in-boundRDMAIOPS。其中,in-boundRDMAIOPS指InfiniBand网卡每秒能够服务的in-boundRDMA操作数,单位为MOPS(每秒钟百万级别的操作数)。图4中(a)展示了InfiniBand网卡能够取得的in-boundRDMA-read的IOPS峰值,该峰值约为11.2MOPS。
(二)InfiniBand网卡由于在发送out-boundRDMA请求时,需要维护很多的状态以及硬件操作,导致out-boundRDMAIOPS存在性能瓶颈。其中,out-boundRDMAIOPS指InfiniBand网卡每秒能够发送的out-boundRDMA操作数,单位也为MOPS。图4中(b)展示了InfiniBand网卡能够取得的out-boundRDMA-write的IOPS峰值,该峰值约为2.1MOPS。
(三)InfiniBand网卡的in-boundRDMAIOPS要比其out-boundRDMAIOPS高出5到6倍。如果系统的设计依赖服务器通过out-boundRDMA将结果发回给客户端,系统的性能会受限于服务器InfiniBand网卡out-boundRDMA的瓶颈;而如果依赖客户端通过in-boundRDMA远程获取结果,系统能够充分利用服务器InfiniBand网卡in-boundRDMA的高性能,取得更高的IOPS。
图5为根据本发明一个实施例的服务器端处理操作请求与缓冲处理结果的流程图。
如图5所示,可以理解为,本发明实施例的服务器端处理操作请求与缓冲处理结果可以包括以下步骤:
步骤S501,服务器周期性地检测本地的请求内存区中是否有客户端发送来的新请求,如果发现了操作请求,则将操作请求提取出来,并将该请求内存区清空,以便进行下一次的检测。
步骤S502,服务器提取操作请求后,解析操作请求,并根据请求操作本地核心内存区中的数据。
步骤S503,服务器处理完操作请求后,会得到处理请求的处理结果。服务器从本地选择一个空闲的结果内存区,将处理结果存入该结果内存区中。当存入处理结果的操作完成后,服务器在结果内存区中将该处理结果的状态置为就绪状态。
图6为根据本发明一个实施例的客户端发送操作请求与获取处理结果的流程图。
如图6所示,可以理解为,本发明实施例的客户端发送操作请求与获取处理结果可以包括以下步骤:
步骤S601,客户端在准备好请求后,通过RDMA-write将请求发送到服务器的请求内存区中。
步骤S602,在发送完请求后,客户端通过RDMA-read从服务器的结果内存区中远程获取一定大小的数据区域。
步骤S603,客户端检测该数据区域的头部,判断结果是否为就绪状态。如果结果状态不为就绪状态,那么客户端重复步骤S602。如果结果状态为就绪状态,那么客户端继续从该数据区域头部提取结果的大小。如果结果的大小小于等于该数据区域的大小,那么实际的数据已经远程获取到本地,则操作结束;如果结果的大小大于该数据区域的大小,那么还剩余部分的数据没有获取到本地,客户端会额外发送一次RDMA-read请求远程获取全部余下的数据。
根据本发明实施例的基于RDMA特性的远程数据获取方法,以InfiniBand高性能网络和RDMA通信协议为底层支持,在客户端发送操作请求之后,服务器处理操作请求并且缓冲处理结果,客户端远程检测结果状态以远程获取最终结果,保证服务器能够避免out-boundRDMA的性能瓶颈,充分利用服务器in-boundRDMA的性能优势,提升整体系统性能,即有效地利用底层InfiniBand网络硬件以及RDMA协议的性能特点,从而保证在小数据请求占很大比重时可以获得较高的IOPS性能,并提供较低的响应时间。
其次参照附图描述根据本发明实施例提出的基于RDMA特性的远程数据获取系统。
图7是本发明实施例的基于RDMA特性的远程数据获取系统的结构示意图。
如图7所示,该基于RDMA特性的远程数据获取系统10包括:服务器端100和客户端200。
其中,在获取操作请求之后,服务器端100用于根据操作请求进行操作以得到处理结果,并将处理结果缓存至服务器端100的本地结果内存区中。客户端200用于通过RDMA-write操作向服务器端发送操作请求,并且通过RDMA-read操作检测服务器端100的本地结果内存区的结果状态,以根据接收到的检测结果判断处理结果是否为就绪状态,并且在判断处理结果为就绪状态之后,通过RDMA-read操作将处理结果远程获取至客户端200的本地结果内存区中。本发明实施例的获取系统10可以有效地利用底层InfiniBand网络硬件以及RDMA协议的性能特点,从而保证在小数据请求占很大比重时可以获得较高的IOPS性能,并提供较低的响应时间。
在本发明的一个实施例中,在判断处理结果为就绪状态之后,客户端同时获取当次的检测结果和处理结果。
进一步地,在本发明的一个实施例中,服务器端还用于从请求内存区中提取操作请求,并清空请求内存区。
进一步地,在本发明的一个实施例中,在得到处理结果之后,服务器端还用于将从服务器端的本地结果内存区任意选择一个空闲结果内存区,并且将处理结果存入空闲结果内存区中,并且在存入处理结果的操作完成之后,服务器端在空闲结果内存区中将处理结果的状态置为就绪状态。
进一步地,在本发明的一个实施例中,在发送完操作请求之后,客户端还用于通过RDMA-read操作从服务器端的本地结果内存区中远程获取预设大小的数据区域,并且在处理结果为就绪状态之后,客户端进一步从数据区域的头部提取处理结果的大小,其中,如果处理结果的大小小于或等于数据区域的大小,则操作结束;如果处理结果的大小大于数据区域的大小,客户端再发送一次RDMA-read请求以远程获取全部余下的数据。
需要说明的是,前述对基于RDMA特性的远程数据获取方法实施例的解释说明也适用于该实施例的基于RDMA特性的远程数据获取系统,为了减少冗余,此处不再赘述。
根据本发明实施例的基于RDMA特性的远程数据获取系统,以InfiniBand高性能网络和RDMA通信协议为底层支持,在客户端发送操作请求之后,服务器处理操作请求并且缓冲处理结果,客户端远程检测结果状态以远程获取最终结果,保证服务器能够避免out-boundRDMA的性能瓶颈,充分利用服务器in-boundRDMA的性能优势,提升整体系统性能,即有效地利用底层InfiniBand网络硬件以及RDMA协议的性能特点,从而保证在小数据请求占很大比重时可以获得较高的IOPS性能,并提供较低的响应时间。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (10)

1.一种基于RDMA特性的远程数据获取方法,其特征在于,包括以下步骤:
客户端通过RDMA-write操作向服务器端发送操作请求;
在获取所述操作请求之后,所述服务器端根据所述操作请求进行操作以得到处理结果,并将所述处理结果缓存至服务器端的本地结果内存区中;
所述客户端通过RDMA-read操作检测所述服务器端的本地结果内存区的结果状态,以根据接收到的检测结果判断所述处理结果是否为就绪状态;以及
如果判断所述处理结果为就绪状态,则通过所述RDMA-read操作将所述处理结果远程获取至客户端的本地结果内存区中。
2.根据权利要求1所述的基于RDMA特性的远程数据获取方法,其特征在于,如果判断所述处理结果为所述就绪状态,则所述客户端同时获取当次的检测结果和所述处理结果。
3.根据权利要求1所述的基于RDMA特性的远程数据获取方法,其特征在于,在获取所述操作请求之后,还包括:
所述服务器端从请求内存区中提取所述操作请求,并清空所述请求内存区。
4.根据权利要求1所述的基于RDMA特性的远程数据获取方法,其特征在于,所述将所述处理结果缓存至服务器端的本地结果内存区中,进一步包括:
在得到所述处理结果之后,所述服务器端将从所述服务器端的本地结果内存区任意选择一个空闲结果内存区,并且将所述处理结果存入所述空闲结果内存区中;
如果存入所述处理结果的操作完成之后,则所述服务器端在所述空闲结果内存区中将所述处理结果的状态置为就绪状态。
5.根据权利要求1所述的基于RDMA特性的远程数据获取方法,其特征在于,所述客户端通过RDMA-write操作向服务器端发送操作请求,还包括:
在发送完所述操作请求之后,所述客户端通过所述RDMA-read操作从所述服务器端的本地结果内存区中远程获取预设大小的数据区域;
所述客户端检测所述数据区域的头部,以判断所述处理结果是否为就绪状态;
如果所述处理结果为就绪状态,则所述客户端进一步从所述数据区域的头部提取所述处理结果的大小,
其中,如果所述处理结果的大小小于或等于所述数据区域的大小,则操作结束;如果结果的大小大于所述数据区域的大小,则所述客户端再发送一次RDMA-read请求以远程获取全部余下的数据。
6.一种基于RDMA特性的远程数据获取系统,其特征在于,包括:
服务器端,在获取操作请求之后,用于根据所述操作请求进行操作以得到处理结果,并将所述处理结果缓存至服务器端的本地结果内存区中;
客户端,用于通过RDMA-write操作向服务器端发送所述操作请求,并且通过RDMA-read操作检测所述服务器端的本地结果内存区的结果状态,以根据接收到的检测结果判断所述处理结果是否为就绪状态,并且在判断所述处理结果为就绪状态之后,通过所述RDMA-read操作将所述处理结果远程获取至客户端的本地结果内存区中。
7.根据权利要求6所述的基于RDMA特性的远程数据获取系统,其特征在于,在判断所述处理结果为所述就绪状态之后,所述客户端同时获取当次的检测结果和所述处理结果。
8.根据权利要求6所述的基于RDMA特性的远程数据获取系统,其特征在于,所述服务器端还用于从请求内存区中提取所述操作请求,并清空所述请求内存区。
9.根据权利要求6所述的基于RDMA特性的远程数据获取系统,其特征在于,在得到所述处理结果之后,所述服务器端还用于将从所述服务器端的本地结果内存区任意选择一个空闲结果内存区,并且将所述处理结果存入所述空闲结果内存区中,并且在存入所述处理结果的操作完成之后,所述服务器端在所述空闲结果内存区中将所述处理结果的状态置为就绪状态。
10.根据权利要求6所述的基于RDMA特性的远程数据获取系统,其特征在于,在发送完所述操作请求之后,所述客户端还用于通过所述RDMA-read操作从所述服务器端的本地结果内存区中远程获取预设大小的数据区域,并且在所述处理结果为就绪状态之后,所述客户端进一步从所述数据区域的头部提取所述处理结果的大小,其中,如果所述处理结果的大小小于或等于所述数据区域的大小,则操作结束;如果所述处理结果的大小大于所述数据区域的大小,所述客户端再发送一次RDMA-read请求以远程获取全部余下的数据。
CN201610009488.3A 2016-01-07 2016-01-07 基于rdma特性的远程数据获取方法及系统 Pending CN105630426A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610009488.3A CN105630426A (zh) 2016-01-07 2016-01-07 基于rdma特性的远程数据获取方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610009488.3A CN105630426A (zh) 2016-01-07 2016-01-07 基于rdma特性的远程数据获取方法及系统

Publications (1)

Publication Number Publication Date
CN105630426A true CN105630426A (zh) 2016-06-01

Family

ID=56045424

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610009488.3A Pending CN105630426A (zh) 2016-01-07 2016-01-07 基于rdma特性的远程数据获取方法及系统

Country Status (1)

Country Link
CN (1) CN105630426A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107451092A (zh) * 2017-08-09 2017-12-08 郑州云海信息技术有限公司 一种基于ib网络的数据传输系统
WO2018119738A1 (en) * 2016-12-28 2018-07-05 Intel Corporation Speculative read mechanism for distributed storage system
CN110471779A (zh) * 2019-07-22 2019-11-19 阿里巴巴集团控股有限公司 用于实现锁资源处理的方法和装置
WO2020119608A1 (zh) * 2018-12-10 2020-06-18 中国人民银行清算总中心 基于Spark Shuffle的远程直接内存访问系统及方法
CN111858418A (zh) * 2019-04-30 2020-10-30 华为技术有限公司 一种基于远程直接内存访问rdma的内存通信方法及装置
CN113422792A (zh) * 2021-02-05 2021-09-21 阿里巴巴集团控股有限公司 数据传输方法、装置、电子设备及计算机存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080109604A1 (en) * 2006-11-08 2008-05-08 Sicortex, Inc Systems and methods for remote direct memory access to processor caches for RDMA reads and writes
CN101409715A (zh) * 2008-10-22 2009-04-15 中国科学院计算技术研究所 一种利用InfiniBand网络进行通信的方法及系统
CN103929415A (zh) * 2014-03-21 2014-07-16 华为技术有限公司 Rdma下数据读写的方法、装置和网络系统
CN105933325A (zh) * 2016-06-07 2016-09-07 华中科技大学 一种基于NFSoRDMA的内核态RPC通信加速方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080109604A1 (en) * 2006-11-08 2008-05-08 Sicortex, Inc Systems and methods for remote direct memory access to processor caches for RDMA reads and writes
CN101409715A (zh) * 2008-10-22 2009-04-15 中国科学院计算技术研究所 一种利用InfiniBand网络进行通信的方法及系统
CN103929415A (zh) * 2014-03-21 2014-07-16 华为技术有限公司 Rdma下数据读写的方法、装置和网络系统
CN105933325A (zh) * 2016-06-07 2016-09-07 华中科技大学 一种基于NFSoRDMA的内核态RPC通信加速方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MAOMENG SU等: ""RFP:A Remote Fetching Paradigm for RDMA-Accelerated Systems"", 《HTTPS://ARXIV.ORG/PDF/1512.07805V1.PDF》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018119738A1 (en) * 2016-12-28 2018-07-05 Intel Corporation Speculative read mechanism for distributed storage system
CN107451092A (zh) * 2017-08-09 2017-12-08 郑州云海信息技术有限公司 一种基于ib网络的数据传输系统
WO2020119608A1 (zh) * 2018-12-10 2020-06-18 中国人民银行清算总中心 基于Spark Shuffle的远程直接内存访问系统及方法
CN111858418A (zh) * 2019-04-30 2020-10-30 华为技术有限公司 一种基于远程直接内存访问rdma的内存通信方法及装置
CN111858418B (zh) * 2019-04-30 2023-04-07 华为技术有限公司 一种基于远程直接内存访问rdma的内存通信方法及装置
CN110471779A (zh) * 2019-07-22 2019-11-19 阿里巴巴集团控股有限公司 用于实现锁资源处理的方法和装置
CN110471779B (zh) * 2019-07-22 2023-11-14 创新先进技术有限公司 用于实现锁资源处理的方法和装置
CN113422792A (zh) * 2021-02-05 2021-09-21 阿里巴巴集团控股有限公司 数据传输方法、装置、电子设备及计算机存储介质

Similar Documents

Publication Publication Date Title
CN105630426A (zh) 基于rdma特性的远程数据获取方法及系统
US20220335037A1 (en) Trustless Stateless Incentivized Remote Node Network Using Minimal Verification Clients
CN107360010B (zh) 一种网站灰度发布方法及装置
CN103593147B (zh) 一种数据读取的方法及装置
US20160328281A1 (en) Application error detection method for cloud streaming service, and apparatus and system therefor
US10455047B2 (en) Methods and systems for application controlled pre-fetch
CN104427627A (zh) 测试数据获取方法、客户端与服务器
US20170277622A1 (en) Web Page Automated Testing Method and Apparatus
CN109815430A (zh) 请求处理方法、装置、数据处理服务器及可读存储介质
CN110569036A (zh) 一种前后端分离架构下的数据校验系统及其方法
CN110362986A (zh) 一种微信小程序自动登录方法及存储设备
US8924472B1 (en) Embedding application services in a distributed datastore
CN102945284B (zh) 搜索引擎的状态获取方法、装置以及浏览器
CN106161623A (zh) 缓存服务器、更新服务器及数据更新方法
CN103024015A (zh) 一种基于Flex的跨平台的浏览器端校验md5值上传文件的方法
CN109088948A (zh) 一种推送消息的展示方法、设备及存储介质
CN103491057A (zh) 一种共享会话数据的方法、系统及装置
CN113138814A (zh) 远程协助方法、装置、设备和存储介质
CN103942206A (zh) 访问网络图片、响应访问请求的方法及其装置、系统
CN106294884A (zh) 一种数据采集的方法及装置
CN105761069A (zh) 一种pos终端通信方法和系统
CN112541136B (zh) 网络地址信息的获取方法、装置、存储介质和电子设备
CN102968483B (zh) 针对导航页面的搜索引擎的状态获取方法和装置及服务器
CN113347234A (zh) 网络信息获取方法、装置、系统、计算机设备和存储介质
CN115484303A (zh) 工厂微服务系统、方法、设备和存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160601

WD01 Invention patent application deemed withdrawn after publication