[论文解读] Datacenter RPCs can be General and Fast
eRPC 是一个通用的 RPC 库,能够在普通数据中心网络上(包括有损的以太网)与专用系统在性能方面相匹配,而无需网络特定硬件。
It is commonly believed that datacenter networking software must sacrifice generality to attain high performance. The popularity of specialized distributed systems designed specifically for niche technologies such as RDMA, lossless networks, FPGAs, and programmable switches testifies to this belief. In this paper, we show that such specialization is not necessary. eRPC is a new general-purpose remote procedure call (RPC) library that offers performance comparable to specialized systems, while running on commodity CPUs in traditional datacenter networks based on either lossy Ethernet or lossless fabrics. eRPC performs well in three key metrics: message rate for small messages; bandwidth for large messages; and scalability to a large number of nodes and CPU cores. It handles packet loss, congestion, and background request execution. In microbenchmarks, one CPU core can handle up to 10 million small RPCs per second, or send large messages at 75 Gbps. We port a production-grade implementation of Raft state machine replication to eRPC without modifying the core Raft source code. We achieve 5.5 microseconds of replication latency on lossy Ethernet, which is faster than or comparable to specialized replication systems that use programmable switches, FPGAs, or RDMA.
研究动机与目标
- 证明通用 RPC 在典型数据中心网络上可以达到与最先进系统相当的性能。
- 确定实现高小消息吞吐、大消息带宽与可扩展性的设计原则。
- 表明 eRPC 在有损以太网下也能高效运行,无需无损光纤。
- 将 Raft 和 Masstree 移植到 eRPC,而不对 Raft 的核心修改,以证明其实用性。
提出的方法
- 设计一个面向常见场景的高性能 RPC 框架(针对小消息、无拥塞的网络、短处理程序)。
- 使用单一 BDP 的流控以防止交换机缓冲区丢弃,并在每核保持恒定 NIC 内存占用的前提下实现可扩展性。
- 实现支持零拷贝的消息缓冲区(msgbuf)布局,以及在罕见重传或故障时通过受控刷新实现无信号传输。
- 支持由客户端驱动的传输协议,带会话 Credits,以实现端到端流控和可扩展的会话管理。
- 在多种 NIC 和网络类型上进行评估,包括有损的以太网和 InfiniBand,并与专用系统进行比较。
实验结果
研究问题
- RQ1一个通用目的的 RPC 库能否在商品数据中心网络上实现与专用系统相当的性能?
- RQ2哪些设计原则能够在没有无损光纤的情况下实现对小 RPC 的高消息速率和对大消息的高带宽?
- RQ3考虑到 NIC 和交换机的限制,在大量节点和 CPU 核心的情况下,这种方法的可扩展性如何?
- RQ4eRPC 是否可以在不修改核心 Raft 源代码的前提下,与现有生产级系统(如 Raft、Masstree)集成?
主要发现
- 一个核心每秒最多可以处理 10 百万次小型 RPC。
- 单核即可以 75 Gbps 的速率发送大消息。
- 微基准的中位数 RPC 延迟为 2.3 微秒。
- 在有损以太网上的三段式 Raft 复制延迟为 5.5 微秒。
- eRPC 在没有无损光纤且不修改核心 Raft 源码的情况下实现高吞吐和低延迟。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。