经由基于RDMA的RPC请求在联网计算机之间的快速读/写制造技术

技术编号:17415936 阅读:70 留言:0更新日期:2018-03-07 11:04
“基于RDMA的RPC请求系统”以如下方式组合RPC和RDMA的概念:其能够被实现在商用网络通信硬件上,例如基于以太网的网络中的启用RDMA的网络接口控制器(NIC)。在各种实现中,基于RDMA的RPC请求系统经由基于RDMA的消息启用网络中的不同计算机之间的RPC请求的快速无锁和线程安全执行。换言之,基于RDMA的RPC请求系统组合RDMA消息传递和RPC请求,以经由在数据中心或其他网络环境中的联网计算机之间使用商用NIC而在以太网上传输的RDMA消息序列来启用快速RPC请求。这个RDMA消息过程既是无锁的也是线程安全的。有利地,无锁且线程安全两者通过降低用于在商用网络硬件上传输和执行RPC请求的总体系统时延来提高联网计算机之间的存储器访问和RPC请求的总体性能。

Fast reading / writing between RDMA based RPC requests between networked computers

The RPC request system based on RDMA combines the concepts of RPC and RDMA in the following way: it can be implemented on commercial network communication hardware, such as RDMA based network interface controller (NIC) in Ethernet based network. In various implementations, the RPC request system based on RDMA enables fast, unlocked and thread safe execution of RPC requests between different computers in the network via RDMA based messages. In other words, the RPC request system based on RDMA combines RDMA messaging and RPC requests to enable fast RPC requests through RDMA message sequences that are transmitted across Ethernet networks through commercial NIC in the data center or other network environment. This RDMA message process is both unlocked and thread safe. Advantageously, there is no lock and thread safety. Both of them improve the overall performance of memory access and RPC request between networked computers by reducing the total system delay for transmitting and executing RPC requests on commercial network hardware.

【技术实现步骤摘要】
【国外来华专利技术】经由基于RDMA的RPC请求在联网计算机之间的快速读/写
技术介绍
通常,直接存储器访问(DMA)提供了使得本地主机计算设备的设备或过程能够在不中断主机的CPU的情况下直接读写该主机设备的本地存储器的各种技术。相比之下,越来越多地部署在数据中心中的远程直接存储器访问(RDMA)扩展了传统的基于DMA的技术,以使得远程设备或过程能够在不中断远程计算设备的CPU的情况下直接读写远程计算设备的存储器。诸如例如InfiniBand、iWARP、融合以太网上的RDMA(RoCE)等现有的基于RDMA的技术利用启用RDMA的网络接口控制器(NIC)。当通过启用RDMA的网络写入数据时,配备有启用RDMA的NIC的服务器或其他计算设备通常应用DMA来读取用户或过程指定的缓冲器或存储器地址中的数据,并且将该数据作为独立消息传输到联网计算设备的启用RDMA的NIC。接收启用RDMA的NIC然后使用DMA将该数据写入用户或过程指定的缓冲器或存储器地址。类似地,针对跨启用RDMA的网络的数据读取,本地计算设备使用启用RDMA的NIC向远程计算设备的启用RDMA的NIC传输独立消息,以从用户或过程指定的缓冲器或存储器地址请求数据。远程计算设备然后应用DMA来读取所请求的数据,并且经由每个设备的启用RDMA的NIC将其返回到本地计算设备。
技术实现思路
提供以下
技术实现思路
以便以简化的形式介绍将在以下具体实施方式中进一步描述的概念选集。本
技术实现思路
并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在充当确定所要求保护的主题的范围中的辅助。此外,虽然本文中可以讨论其他技术的某些缺点,但是所要求保护的主题不旨在限于可以解答或解决这些其他技术的任何或所有缺点的实现。本
技术实现思路
的唯一目的是以简化的形式呈现所要求保护的主题的一些概念,作为下面呈现的更详细描述的序言。通常,如本文中描述的“基于RDMA的RPC请求系统”组合远程直接存储器访问(RDMA)消息传递和远程过程调用(RPC)请求,以经由在联网计算机之间传输的RDMA消息序列来提供快速RPC请求。传输这些RDMA消息的过程允许整个基于RDMA的RPC请求系统既是无锁的又是线程安全的。例如,在各种实现中,基于RDMA的RPC请求系统从在发送方计算设备(也称为客户端)上执行的过程接收用以向特定的接收方计算设备(也称为服务器)发送RPC请求的请求。然后经由RDMA读消息从发送方向接收方传输针对接收方控制数据的请求。在各种实现中,接收方控制数据包括接收方的RDMA消息缓冲器的空闲时隙列表。在另外的实现中,该接收方控制数据还包括但不限于在接收方上的活动的RPC请求的总数。在各种实现中,RPC请求的总数用于控制可以向任何特定接收方发送的并发消息的最大数目。这确保了RDMA消息缓冲器不会被过快地填充,以避免由于从一个或多个发送方向RDMA缓冲器发送的过多的活动的请求而导致的潜在的竞争情况或缓冲器溢出。换言之,如果在接收方上的活动的RPC请求的当前数目超过某个最大数目(对应于RDMA消息缓冲器大小),则发送方将不会向该接收方发送附加的RPC请求,直到在该接收方上存在较少的活动的请求时。响应于由发送方对所请求的控制数据的接收,发送方通过经由RDMA原子比较和交换消息向接收方传输针对空闲时隙之一的预留请求来执行无锁预留。在各种实现中,如果其他过程或客户端在发送方之前成功地预留所请求的空闲时隙,则该预留请求可以被重复(使用其他空闲时隙),直到成功。然后,发送方经由RDMA写消息向接收方的预留时隙直接写入RPC请求。在执行RPC请求之后,接收方通过应用类似于发送方的初始请求的技术来向发送方提供所执行的RPC请求的结果。具体地,在各种实现中,在由接收方对RPC请求的执行之后,经由RDMA读消息从接收方向发送方传输针对发送方控制数据的请求。类似于接收方控制数据,在各种实现中,发送方控制数据包括发送方的RDMA消息缓冲器的空闲时隙列表。在另外的实现中,该发送方控制数据还包括但不限于在发送方上的活动的RPC请求的总数。与接收方一样,在各种实现中,在发送方上的活动的RPC请求的总数用于控制可以向任何特定发送方发送的并发消息的最大数目。这确保了发送方的RDMA消息缓冲器不会被过快地填充,以避免由于从一个或多个接收方发送到发送方RDMA缓冲器的过多的活动的请求而导致的潜在的竞争情况或缓冲器溢出。换言之,如果在发送方上的活动的RPC请求的当前数目超过某个最大数目(对应于RDMA消息缓冲器大小),则接收方将不会向该发送方发送附加的RPC请求,直到在该发送方上存在较少的活动的请求时。响应于由接收方对所请求的控制数据的接收,接收方通过经由RDMA原子比较和交换消息向发送方传输针对空闲时隙之一的预留请求来执行无锁预留。在各种实现中,如果其他过程或客户端在接收方之前成功地预留发送方所请求的空闲时隙,则该预留请求可以被重复,直到成功。然后,接收方经由RDMA写消息向发送方的预留时隙直接写入发送方的原始RPC请求的结果。除了提供无锁时隙预留之外,上面概括的过程是线程安全的。换言之,基于RDMA的RPC请求系统提供了存储器访问技术,当被来自任何数目的计算设备的同时多个线程访问时,这些技术保证没有竞争情况。显著地,无锁且线程安全通过降低通过商用NIC硬件(例如,以太网网络中的启用RDMA的网络接口控制器(NIC))传输和执行RPC请求的总体系统延迟提高了数据中心和其他网络中的计算机之间的存储器访问的总体性能。本文中描述的基于RDMA的RPC请求系统提供了用于经由在数据中心或其他网络环境中的联网计算机之间使用商用NIC传输的RDMA消息序列来启用快速RPC请求的各种技术。传输这些RDMA消息的过程允许整个基于RDMA的RPC请求系统既是无锁的又是线程安全的。除了上述益处之外,基于RDMA的RPC请求系统的其他优点将从下文的详细描述中变得显而易见。附图说明所要求保护的主题的具体特征、方面和优点关于以下描述、所附权利要求和附图将变得更好理解,在附图中:图1示出了如本文中描述的经由与“基于RDMA的RPC请求系统”一起使用的启用RDMA的交换机、路由器和直接连接的任何组合进行通信的多个服务器的示例性数据中心或其他网络。图2示出了如本文中描述的用于使用基于RDMA的RPC请求系统来提供基于RDMA的RPC请求的通用架构图。图3提供了示出如本文中描述的用于实现基于RDMA的RPC请求系统的各种实现的程序模块的示例性流程图。图4示出了示出如本文中描述的用于实现基于RDMA的RPC请求系统的各种实现的示例性方法的通用系统流程图。图5是描绘如本文中描述的用于生效基于RDMA的RPC请求系统的各种实现中使用的具有简化的计算和I/O能力的简化的通用计算设备的通用系统图。具体实施方式在对“基于RDMA的RPC请求系统”的各种实现的以下描述中,参考附图,附图构成其部分并且附图中通过图示的方式示出了其中可以实践基于RDMA的RPC请求系统的具体实现。在不脱离其范围的情况下可以利用其他实现并且可以进行结构改变。在描述本文中描述的各种实现时,将使用特定的术语,并且不旨在将这些实现限于如此选择的特定术语。此外,应当理解,每个特定术语包括以广泛相似的方式操作以实现相似目本文档来自技高网
...
经由基于RDMA的RPC请求在联网计算机之间的快速读/写

【技术保护点】
一种计算机实现的方法,包括:从在发送方上执行的过程接收用以向接收方发送RPC请求用于执行的请求;经由RDMA读消息从所述发送方向所述接收方传输针对接收方控制数据的请求,所述接收方控制数据包括所述接收方的空闲时隙列表;响应于由所述发送方对所请求的控制数据的接收,经由RDMA原子比较和交换消息从所述发送方向所述接收方传输针对所述空闲时隙之一的预留请求;经由RDMA写消息从所述发送方向所述接收方的预留的时隙写入所述RPC请求;以及在所述接收方上执行所述RPC请求。

【技术特征摘要】
【国外来华专利技术】2015.06.02 US 14/728,7451.一种计算机实现的方法,包括:从在发送方上执行的过程接收用以向接收方发送RPC请求用于执行的请求;经由RDMA读消息从所述发送方向所述接收方传输针对接收方控制数据的请求,所述接收方控制数据包括所述接收方的空闲时隙列表;响应于由所述发送方对所请求的控制数据的接收,经由RDMA原子比较和交换消息从所述发送方向所述接收方传输针对所述空闲时隙之一的预留请求;经由RDMA写消息从所述发送方向所述接收方的预留的时隙写入所述RPC请求;以及在所述接收方上执行所述RPC请求。2.根据权利要求1所述的计算机实现的方法,还包括:经由RDMA读消息从所述接收方向所述发送方传输针对发送方控制数据的请求,所述发送方控制数据包括所述发送方的空闲时隙列表;响应于由所述接收方对所请求的控制数据的接收,经由RDMA原子比较和交换消息从所述接收方向所述发送方传输针对所述空闲时隙之一的预留请求;以及经由RDMA写消息从所述接收方向所述发送方的预留的所述时隙写入所述RPC请求的结果。3.根据权利要求2所述的计算机实现的方法,其中:所述接收方控制数据还包括在所述接收方上活动的RPC请求的总数;以及所述发送方控制数据还包括在所述发送方上活动的RPC请求的总数。4.根据权利要求1所述的计算机实现的方法,其中所述RDMA消息中的所有RDMA消息在所述发送方和所述接收方的启用RDMA的NIC之间被传输,而没有到所述发送方或所述接收方的CPU的任何中断或通知。5.根据权利要求1所述的计算机实现的方法,其中所述发送方的所述控制数据由所述发送方托管并且所述接收方的所述控制数据由所述接收方托管。6.根据权利要求1所述的计算机实现的方法,还包括:被托管在所述接收方的主存储器中的RDMA消息缓冲器;并且其中所述接收方控制数据中的所述空闲时隙列表表示所述接收方的所述RDMA消息缓冲器的对应空闲时隙。7.根据权利要求6所述的计算机实现的方法,还包括所述接收方的RPC请求监测器,所述RPC请求监测器被配置为:应用一个或多个线程来监测所述接收方的所述RDMA消息缓冲器的相关RPC请求;从所述RDMA消息缓冲器拉取相关RPC请求并且向所述接收方的RPC队列添加拉取的所述RPC请求。8.根据权利要求7所述的计算机实现的方法,其中在所述接收方上执行所述RPC请求还包括应用RPC请求处理模块,所述RPC请求处理模块被配置为:应用一个或多个线程来监测RPC队列的相关RPC请求;以及调用由相关RPC请求标识的过程。9.一种系统,包括:多个联网服务器,所述多个联网服务器经由启用RDMA的NIC通信,每个联网服务器充当关于其他联网服务器中的一个或多个联网服务器的发送方或接收方;被托管在每个服务器上的基于RDMA的消息传递API;应用充当发送方的所述服务器之一的所述API以拦截由所述发送方发起的RPC请求;应用所述发送方的所述API以指引发送方的NIC向充当接收方的所述服务器之一的NIC传输RDMA读消息,所述RDMA读消息被配置为请求控制数据,所述控制数据包括被托管在所述接收方上的RDMA消息缓冲器的空闲时隙列表;应用所述发送方的所述API以指引发送方的...

【专利技术属性】
技术研发人员:A·沙米斯铃江丰
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

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

1