Remote Direct Memory Access (RDMA) is becoming widely available in data centers. This technology allows a process to directly read and write the memory of a remote host, with a mechanism to control access permissions. In this paper, we study the fundamental power of these capabilities. We consider the well-known problem of achieving consensus despite failures, and find that RDMA can improve the inherent trade-off in distributed computing between failure resilience and performance. Specifically, we show that RDMA allows algorithms that simultaneously achieve high resilience and high performance, while traditional algorithms had to choose one or another. With Byzantine failures, we give an algorithm that only requires $n \geq 2f_P + 1$ processes (where $f_P$ is the maximum number of faulty processes) and decides in two (network) delays in common executions. With crash failures, we give an algorithm that only requires $n \geq f_P + 1$ processes and also decides in two delays. Both algorithms tolerate a minority of memory failures inherent to RDMA, and they provide safety in asynchronous systems and liveness with standard additional assumptions.
翻译:远程直接内存存存(RDMA) 正在数据中心中广泛使用。 这种技术允许直接读写远程主机的记忆, 并有一个控制访问许可的机制。 在本文中, 我们研究这些能力的基本力量。 我们考虑到众所周知的在失败情况下达成共识的问题, 并发现RDMA可以改善在失败复原力和性能之间分配计算所固有的平衡。 具体地说, 我们显示RDMA允许同时实现高复原力和高性能的算法, 而传统算法不得不选择一种或另一种。 由于Byzantine失败, 我们给出一种只需要$\geq 2f_ P+1$的算法( $f_ P$是错误程序的最大数量), 并在两个( 网络) 共同处决中决定。 在崩溃失败后, 我们给出的算法只要求$n\ geq f_ P+ 1$ + 1 。 我们还给出了两个错误。 两种算法都容忍了RDMA所固有的少量记忆失败, 并且它们提供了无序系统和生活安全, 标准的额外假设。