Skip to main content
QUICK REVIEW

[论文解读] Write-Optimized and Consistent RDMA-based NVM Systems

Xinxin Liu, Yu Hua|arXiv (Cornell University)|Jun 18, 2019
Advanced Memory and Neural Computing参考文献 26被引用 4
一句话总结

Erda 是一种零拷贝、日志结构化的内存设计,可在无需额外网络往返、远程 CPU 参与或双重 NVM 写入的情况下,为单边 RDMA 写入 NVM 提供远程数据原子性(RDA)。通过使用 CRC 校验和检测不完整写入,并结合 8 字节原子元数据更新,Erda 将 NVM 写入减少约 50%,同时相比重做日志和写后读方案,提升了吞吐量并降低了延迟。

ABSTRACT

In order to deliver high performance in cloud computing, we generally exploit and leverage RDMA (Remote Direct Memory Access) in networking and NVM (Non-Volatile Memory) in end systems. Due to no involvement of CPU, one-sided RDMA becomes efficient to access the remote memory, and NVM technologies have the strengths of non-volatility, byte-addressability and DRAM-like latency. In order to achieve end-to-end high performance, many efforts aim to synergize one-sided RDMA and NVM. Due to the need to guarantee Remote Data Atomicity (RDA), we have to consume extra network round-trips, remote CPU participation and double NVM writes. In order to address these problems, we propose a zero-copy log-structured memory design for Efficient Remote Data Atomicity, called Erda. In Erda, clients directly transfer data to the destination address at servers via one-sided RDMA writes without redundant copy and remote CPU consumption. To detect the incompleteness of fetched data, we verify a checksum without client-server coordination. We further ensure metadata consistency by leveraging an 8-byte atomic update in the hash table, which also contains the address information for the stale data. When a failure occurs, the server properly restores to a consistent version. Experimental results show that compared with Redo Logging (a CPU involvement scheme) and Read After Write (a network dominant scheme), Erda reduces NVM writes approximately by 50%, as well as significantly improves throughput and decreases latency.

研究动机与目标

  • 为解决在保证远程数据原子性(RDA)时,基于 RDMA 的 NVM 系统中出现的高网络开销、CPU 消耗和双重 NVM 写入问题。
  • 在无需远程 CPU 协调的情况下,实现对 NVM 的单边 RDMA 写入,确保端到端一致性和低延迟。
  • 通过消除冗余副本和持久化日志开销,减少 NVM 写入放大。
  • 通过基于校验和的检测和原子元数据更新,确保故障后数据一致性。
  • 通过协同使用单边 RDMA 和 NVM,在不牺牲持久性或原子性的情况下,实现云工作负载中的高性能。

提出的方法

  • Erda 采用日志结构化设计,客户端通过单边 RDMA 直接将数据写入服务器 NVM,绕过中间缓冲区和服务器 CPU。
  • 每个数据对象包含一个 CRC 校验和,用于在后续读取操作中检测不完整或损坏的写入。
  • 元数据更新通过 8 字节原子写入哈希表实现,该哈希表同时存储新数据地址和前一版本的地址,用于恢复。
  • 当通过校验和验证检测到不完整写入时,客户端使用哈希表中存储的地址重新读取前一版本。
  • 服务器通过存储的前一版本和原子元数据更新,检测不一致并恢复到一致状态。
  • 该设计通过无需为原子性进行日志记录或协调,避免了额外的网络往返,并消除了双重 NVM 写入。

实验结果

研究问题

  • RQ1如何在不产生额外网络往返的情况下,保证单边 RDMA 基于 NVM 系统中的远程数据原子性(RDA)?
  • RQ2能否在不依赖远程 CPU 参与或冗余数据副本的情况下实现远程数据原子性?
  • RQ3哪些机制可以减少 RDMA-NVM 系统中的 NVM 写入放大,同时保持一致性?
  • RQ4在零拷贝、远程直接环境中,如何高效检测和恢复不完整或不一致的写入?
  • RQ5日志结构化设计结合校验和与原子元数据更新,能否在 RDMA-NVM 系统中同时实现高性能和一致性?

主要发现

  • 与重做日志和写后读方案相比,Erda 通过消除冗余写入和日志记录,将 NVM 写入减少了约 50%。
  • 由于减少了网络往返和远程操作带来的 CPU 开销,吞吐量显著提升。
  • 由于数据直接写入 NVM 而无需中间缓冲或 CPU 处理,延迟降低。
  • 系统通过校验和验证和 8 字节原子元数据更新实现远程数据原子性,确保故障后的一致性。
  • Erda 通过无需持久化日志或缓冲区副本,避免了双重 NVM 写入,提升了 NVM 耐用性和性能。
  • 源代码已公开发布,支持可复现性及进一步系统集成。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。