arXiv Paper CXL论文阅读笔记整理
问题
数据中心应用程序通常依赖于远程过程调用(RPC)来实现快速、高效和安全的通信。然而,由于RPC需要昂贵的序列化和压缩才能通过分组串行网络链路进行通信,导致速度慢、效率低。
Compute Express Link 3.0(CXL)提供了一种替代解决方案,允许应用程序在机器集群之间使用缓存一致的共享内存接口共享数据,从而避免序列化和压缩的开销。但面临以下2个问题:
-
安全。共享内存失去了隔离性,发送方可以在接收方处理共享数据结构的同时并发修改这些数据结构,导致应用程序之间的内存共享不同步。共享内存管理复杂,如果应用程序在不放弃内存的情况下崩溃,则可能会导致共享内存泄露。
-
可扩展性。基于CXL的共享内存仅限于机架级系统[22],无法跨越整个数据中心。必须提供合理的可扩展计划。
本文方法
本文提出RPCool,一个利用CXL共享内存功能的新框架。
-
通过传递指向共享内存数据结构的指针来避免序列化。
-
通过限制发送方对RPC参数的访问,来防止发送方和接收方并发访问数据。
-
通过一个轻量级的沙盒,在处理共享内存中的RPC参数时检查无效或野指针。
-
通过回退到基于RDMA的通信来解决扩展性,并提供统一RPC接口。
-
通过租约机制感知应用程序共享内存故障,并限制共享内存消耗,以防止数据丢失或内存泄漏。
实验表明,与最先进的基于RDMA和CXL的RPC机制相比,RPCool将往返延迟分别降低了1.93倍和7.2倍,同时实现最高的吞吐量。
总结
针对远程过程调用(RPC)的优化,现有方法需要昂贵的序列化和压缩才能通信。本文提出RPCool,利用CXL共享内存功能的RPC框架。包括以下技术:(1)通过传递指向共享内存数据结构的指针来通信。(2)限制发送方对RPC参数的访问,避免并发访问数据。(3)通过沙盒指定指针范围,检查无效或野指针。(4)将跨机架通信回退到基于RDMA的通信,并提供统一RPC接口。(5)利用租约机制感知应用程序故障,防止数据丢失或内存泄漏。