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将其返回到本地计算设备。
技术实现思路
提供以下
技术实现思路
以便以简化的形式介绍将在以下具体实施方式中进一步描述的概念选集。本
技术实现思路
并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在充当确定所要求保护的主题的范围中的辅助。此外,虽然本文中可以讨论其他技术的某些缺点,但 ...
【技术保护点】
一种计算机实现的方法,包括:从在发送方上执行的过程接收用以向接收方发送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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。