基于Java的RDMA高性能通信库(四):DaRPC

DaRPC是一个用于Java的RPC框架和API,它使用RDMA在用户空间中实现RPC消息处理和网络处理之间的紧密集成。

自80年代初以来,远程过程调用(RPC)一直是分布式系统的基石。 最近,在数据中心中运行的新类型的大规模分布式系统在扩展和延迟方面对RPC系统构成了额外的挑战。DaRPC是一个用于Java的RPC框架和API,它使用RDMA在用户空间中实现RPC消息处理和网络处理之间的紧密集成。 DaRPC在CPU核心和DRAM之间有效地分配计算,网络资源和RPC资源,以非常低的每请求延迟(小于10μs)实现高聚合吞吐量(2-3M ops / sec)。DaRPC是IBM公司开发的一种开源的基于RDMA的高性能远程过程调用RPC框架。

1. Introduce

DaRPC编程API在远程过程调用(RPC)期间提供对网络和计算资源的完全控制。 因此,应用程序决定他们希望用于服务器端RPC处理的CPU核心数目以及应用程序是否应通过中断或轮询与网络接口交互。 应用程序发出的DaRPC中的RPC调用是非阻塞的。 与其他非阻塞RPC库相比,DaRPC不会使用任何后台线程,因此可以实现更低的延迟。 DaRPC依赖于jVerbs,一种用于Java中RDMA通信的框架和API。

目前的形式是,DaRPC专为低延迟RDMA网络量身定制。 但是,RDMA只是一种低延迟网络接口。 另一个类似的网络接口是DPDK(数据平面开发套件)。 DaRPC将API与实际实现分离。 因此,为不同的高性能网络接口实现DaRPC的不同后端是可行的。
 

猜你喜欢

转载自blog.csdn.net/qq_21125183/article/details/81122003