Datacenter RPCs can be General and Fast——论文泛读

NSDI 2019 Paper 论文阅读笔记整理

问题

从现代高速数据中心网络中挤出最佳性能意味着要进行复杂的专业化,打破软件和硬件层之间的抽象障碍。导致依赖网络技术的联合设计分布式系统激增,包括RDMA[18,25,26,38,50,51,58,64,66,69]、无损网络[39,47]、FPGA[33,34]和可编程交换机[37]。再加上新的分布式协议,但这些协议具有不完整的规范、无法重用现有软件、启用远程内存一致视图等缺陷,使得大量人员只使用基于内核的TCP。

现有方法局限性

现有方法在性能和通用性之间提供了一种不可取的折衷。

DPDK[24]这样的低级别接口速度很快,但缺乏通用应用程序所需的功能(例如,DPDK只提供不可靠的数据包I/O)。

mTCP[35]这样的全边缘网络堆栈留下了显著的性能问题。

由于没有提供高性能和通用性的网络选项,最近的系统通常选择使用低级接口来设计和实现自己的通信层[18,25,26,38,39,55,58,66]。

本文方法

本文提出了eRPC,一种新的通用远程过程调用(RPC)库,其性能与专用系统相当,在基于有损以太网或无损结构的传统数据中心网络中的商品CPU上运行。eRPC在三个关键指标上表现良好:小消息的消息速率;大消息的带宽;对大量节点和CPU核心的可扩展性。它处理数据包丢失、节点故障、拥塞控制和长时间运行的后台请求。

  • 针对常见情况进行优化,当消息很小[16,56]时,网络没有拥塞,RPC处理程序很短。处理大型消息、拥塞和长时间运行的RPC处理程序需要昂贵的代码路径,eRPC会尽可能避免这些路径。在重传、节点故障和速率限制的情况下实现零拷贝传输的技术。实现可扩展的方式,NIC内存占用与集群中的节点数量无关。

  • 将每个流限制为最多一个未处理数据的带宽延迟乘积(BDP),有效地防止了由普通传输模式的交换机缓冲区溢出引起的数据包丢失。这是因为数据中心交换机缓冲区比网络的BDP大得多。例如,在我们类似于实际部署的两层测试平台中,每个交换机都有12MB的动态缓冲区,而BDP只有19kB。

开源代码:GitHub - erpc-io/eRPC: Efficient RPCs for datacenter networks

在微基准标记中,一个CPU内核每秒可以处理多达1000万个小型RPC,或以75 Gbps的速度发送大型消息。在不修改核心Raft源代码的情况下,将Raft状态机复制的生产级实现移植到eRPC。在有损以太网上实现了5.5μs的复制延迟,这比使用可编程交换机、FPGA或RDMA的专用复制系统更快或相当。

总结

本文实现了eRPC,一种快速、通用的RPC系统,实现了与无损RDMA结构或专用网络硬件相当的性能。在三个关键指标上表现良好:小消息的消息速率;大消息的带宽;对大量节点和CPU核心的可扩展性。存在两个关键技术:(1)针对常见情况进行优化,当消息很小时,网络没有拥塞,RPC处理程序很短,尽可能避免处理大型消息、拥塞和长时间运行的RPC处理程序需要昂贵的代码路径。在重传、节点故障和速率限制的情况下实现零拷贝传输的技术。降低内存占用,NIC内存占用与集群中的节点数量无关。(2)将每个流限制为最多一个未处理数据,有效防止了由交换机缓冲区溢出引起的数据包丢失。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妙BOOK言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值