[网络领域顶会追踪系列#11][NSDI'22]RDMA是图灵完备的,只是我们还不知道而已!
本系列为个人论文阅读笔记,大多数应该是对顶会摘要的个人菜鸟翻译,旨在让感兴趣的朋友能快速浏览、获取信息。如有错误或心得,欢迎在评论区交流指正!
RDMA is Turing complete, we just did not know it yet!
背景
目前,分布式系统越来越流行利用offload来减小CPU的负载。其中,远程直接内存访问(Remote Direct Memory Access, RDMA)offload是特别流行的。
挑战
然而,RDMA在处理超出简单远程内存访问的复杂offload时,仍然需要CPU的干预。这样,offload的潜力就被限制,并且基于RDMA的系统通常不得不围绕这些限制做工作。
工作
提出了RedN,一个有原则的(principled)、实用的实现复杂RDMAoffload的方法,不需要任何对硬件的修改。
使用自我修改(self-modifying)的RDMA链,作者提升现有的RDMA动作接口为图灵完备的编程抽象集合。
探索了商用RDMA网卡在offload复杂性和性能方面的可能性。
展示了如何结合这些RDMA链到应用,例如Memcached的key-value存储,允许卸载复杂的任务如键查询。
实验
与最先进的使用RDMA原语的键值对设计(如FaRM-KV)相比,RedN可以减少最多2.6x倍的key-value查询延迟,与传统的基于RDMA的RPC相比也一样。此外,与这些基准方案相比,RedN提供了性能隔离,在存在性能竞争的情况下,可以减小至多35x的延迟,同时能够提供应用OS故障恢复力和对崩溃的处理。
原文摘要
It is becoming increasingly popular for distributed systems to exploit offload to reduce load on the CPU. Remote Direct Memory Access (RDMA) offload, in particular, has become popular. However, RDMA still requires CPU intervention for complex offloads that go beyond simple remote memory access. As such, the offload potential is limited and RDMA-based systems usually have to work around such limitations.
We present RedN, a principled, practical approach to implementing complex RDMA offloads, without requiring any hardware modifications. Using self-modifying RDMA chains, we lift the existing RDMA verbs interface to a Turing complete set of programming abstractions. We explore what is possible in terms of offload complexity and performance with a commodity RDMA NIC. We show how to integrate these RDMA chains into applications, such as the Memcached key-value store, allowing us to offload complex tasks such as key lookups. RedN can reduce the latency of key-value get operations by up to 2.6× compared to state-of-the-art KV designs that use one-sided RDMA primitives (e.g., FaRM-KV), as well as traditional RPC-over-RDMA approaches. Moreover, compared to these baselines, RedN provides performance isolation and, in the presence of contention, can reduce latency by up to 35× while providing applications with failure resiliency to OS and process crashes.