[论文解读] Write-Optimized and Consistent RDMA-based NVM Systems
Erda 是一种零拷贝、日志结构化的内存设计,可在无需额外网络往返、远程 CPU 参与或双重 NVM 写入的情况下,为单边 RDMA 写入 NVM 提供远程数据原子性(RDA)。通过使用 CRC 校验和检测不完整写入,并结合 8 字节原子元数据更新,Erda 将 NVM 写入减少约 50%,同时相比重做日志和写后读方案,提升了吞吐量并降低了延迟。
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 生成,并经人工编辑审核。