
客户端
这篇论文提出了一种名为TeRM的技术方案,旨在高效地利用SSD扩展RDMA直连内存。以下是其主要贡献点:1. 作者深入研究了ODP MR(一种现有的RDMA访问非直连内存的硬件机制),并对其端到端延迟进行了详细分析。结果表明,ODP MR的性能表现不佳,主要原因在于RNIC硬件资源有限,特别是在处理页面错误时效率低下。2. TeRM系统被设计用来解决上述问题。其核心思想是将RNIC页面错误的异常处理从硬件转移到软件中实现。具体而言,对于所有位于SSD上的页面,TeRM会让RNIC页表指向一个包含预定义魔术模式的保留物理页,从而完全避免RNIC页面错误的发生。在读取请求方面,
客户端首先通过RDMA READ获取数据,并检查页面是否存储在SSD上。如果目标页面确实存在于SSD上,则通过RPC从
服务器检索该页面。这一机制确保了常见情况下的快速远程访问。3. 为了进一步降低网络和CPU开销,TeRM引入了一系列优化技术。其中包括分层I/O(tiering IO)策略,即当访问SSD扩展的虚拟内存时,采用文件I/O接口而非传统的内存load/store接口。若数据已被缓存至物理内存,则使用缓冲I/O;否则,采用绕过页面缓存的直接I/O。此外,TeRM还设计了一种动态热点数据提升机制,以提高整体性能。4. 在TeRM的设计中,RNIC和CPU页面错误均不处于关键路径上。微基准测试显示,在物理内存占总内存一半的情况下,TeRM的吞吐量可达到理论上限的98.13%。与现有方法相比,TeRM在基于RDMA的文件系统Octopus和键值系统XStore上的性能分别提升了642倍和7.68倍。TeRM的核心创新在于通过软硬件协同的方式,高效应对RDMA直连内存与SSD结合场景下的各种异常情况。其中提出的消除RNIC页表错误、分层I/O等关键技术尤为精妙。实验结果充分验证了TeRM设计方案的有效性。总体而言,本文所探讨的问题具有重要的实际意义,而提出的解决方案则极具洞察力,值得深入学习和借鉴。除了上述内容,本文还对buffered I/O和direct I/O两种I/O模式在不同场景下的优缺点进行了对比分析。总结来看,buffered I/O模式简化了编程流程,并能在多种场景下带来性能优势,但在大规模顺序I/O、高并发以及内存压力较大等情况下,其性能往往不尽如人意。相比之下,direct I/O虽然对I/O大小和对齐有特定要求,但能够在上述buffered I/O表现较差的场景中发挥显著优势。这种细致的分析为TeRM的设计提供了重要参考依据,同时也为相关领域的研究者提供了宝贵的指导。