Network Interface Architecture for Remote Indirect Memory Access (RIMA) in Datacenters

Network Interface Architecture for Remote Indirect Memory Access (RIMA) in Datacenters
复制标题

DOI:
10.1145/3374215
复制
发表时间:
2020-05
期刊:
ACM Transactions on Architecture and Code Optimization (TACO)
影响因子:
--
通讯作者:
Jiachen Xue;Nvidia T. N. Vijaykumar;Mithuna Thottethodi;T. N. Vijaykumar
Jiachen Xue;Nvidia T. N. Vijaykumar;Mithuna Thottethodi;T. N. Vijaykumar
中科院分区:
其他
文献类型:
--
作者:
Jiachen Xue;Nvidia T. N. Vijaykumar;Mithuna Thottethodi;T. N. Vijaykumar

文献摘要

相似文献

InfiniBand 和聚合以太网等远程直接内存访问 (RDMA) 结构报告的延迟比 TCP 短 50 倍。因此,RDMA 是运行低延迟应用程序(例如 Web 搜索和 memcached)的数据中心 (DC) 中 TCP 的潜在替代品。 InfiniBand 的共享接收队列 (SRQ) 使用双向发送/接收动词(即通道语义),减少了消息缓冲区的预分配固定内存量(尽管进行了 InfiniBand 的按需分页 (ODP) 等优化)。然而,SRQ 从根本上限制为每个队列的单个消息大小,这会导致内存浪费,或者对于任意数量(突发级别)任意大小的消息的典型 DC 流量造成显着的程序员负担。我们提出远程间接内存访问(RIMA),它通过提供(1)网络接口卡(NIC)微架构对新颖队列语义的支持和(2)称为追加的新“动词”来避免这些陷阱。要将发送者的消息附加到共享队列,接收者 NIC 以原子方式将队列的尾指针增加传入消息的大小,并将消息放置在新创建的空间中。与传统 RDMA 一样,NIC 负责指针查找、地址转换和实施虚拟内存保护。这种指定队列(而不是它的尾指针,它对发送者仍然隐藏)的间接处理处理任意发送者发送任意数量、任意大小的消息的典型 DC 流量。由于 RIMA 的简单硬件仅增加了 1--2 ns 的消息延迟,因此 RIMA 实现了与具有无限缓冲的 InfiniBand SRQ 相同的消息延迟和吞吐量。在 30 节点 InfiniBand 集群上运行 memcached 流量,我们表明,在类似的、低程序员工作量的情况下,RIMA 实现的内存占用量明显小于 SRQ。然而,虽然 SRQ 可以通过花费大量的编程工作来设计来最大限度地减少内存占用,但 RIMA 只需很少的程序员工作就可以提供这些好处。对于 memcached 流量,使用 RIMA 的高性能键值缓存 (FastKV) 可以实现比使用 RDMA 的 FastKV 低 3 倍的 96% 延迟,或者明显更好的吞吐量或内存占用。
Remote Direct Memory Access (RDMA) fabrics such as InfiniBand and Converged Ethernet report latency shorter by a factor of 50 than TCP. As such, RDMA is a potential replacement for TCP in datacenters (DCs) running low-latency applications, such as Web search and memcached. InfiniBand’s Shared Receive Queues (SRQs), which use two-sided send/recv verbs (i.e., channel semantics), reduce the amount of pre-allocated, pinned memory (despite optimizations such as InfiniBand’s on-demand paging (ODP)) for message buffers. However, SRQs are limited fundamentally to a single message size per queue, which incurs either memory wastage or significant programmer burden for typical DC traffic of an arbitrary number (level of burstiness) of messages of arbitrary size. We propose remote indirect memory access (RIMA), which avoids these pitfalls by providing (1) network interface card (NIC) microarchitecture support for novel queue semantics and (2) a new “verb” called append. To append a sender’s message to a shared queue, the receiver NIC atomically increments the queue’s tail pointer by the incoming message’s size and places the message in the newly created space. As in traditional RDMA, the NIC is responsible for pointer lookup, address translation, and enforcing virtual memory protections. This indirection of specifying a queue (and not its tail pointer, which remains hidden from senders) handles the typical DC traffic of an arbitrary sender sending an arbitrary number of messages of arbitrary size. Because RIMA’s simple hardware adds only 1--2 ns to the multi-\mu s message latency, RIMA achieves the same message latency and throughput as InfiniBand SRQ with unlimited buffering. Running memcached traffic on a 30-node InfiniBand cluster, we show that at similar, low programmer effort, RIMA achieves significantly smaller memory footprint than SRQ. However, while SRQ can be crafted to minimize memory footprint by expending significant programming effort, RIMA provides those benefits with little programmer effort. For memcached traffic, a high-performance key-value cache (FastKV) using RIMA achieves either 3× lower 96 th-percentile latency or significantly better throughput or memory footprint than FastKV using RDMA.