[论文解读] Using RDMA for Lock Management
本文提出一种以客户端为中心的锁管理设计,利用RDMA绕过分布式锁管理器中的服务器CPU瓶颈。通过使客户端能够对锁状态执行原子RDMA操作(例如,比较并交换、获取并增加),该系统在高竞争环境下相比传统集中式设计实现了高达十倍的吞吐量提升。
In this work, we aim to evaluate different Distributed Lock Management service designs with Remote Direct Memory Access (RDMA). In specific, we implement and evaluate the centralized and the RDMA-enabled lock manager designs for fast network settings. Experimental results confirms a couple of hypotheses. First, in the traditional centralized lock manager design, CPU is the bottleneck and bypassing CPU on client-to-server communication using RDMA results in better lock service perofrmance. Second, different lock manager designs with RDMA in consideration result in even better performance; we need to re-design lock management system for RDMA and fast networks.
研究动机与目标
- 解决传统集中式分布式锁管理器(DLM)在高网络负载下存在的CPU瓶颈问题。
- 评估在InfiniBand等高速网络中,启用RDMA的锁管理是否能显著提升性能。
- 探索通过使用单边RDMA操作,让客户端参与锁管理来重构DLM架构。
- 比较传统以服务器为中心的设计与新型以客户端为中心的设计,后者通过RDMA将锁协调任务卸载至客户端。
提出的方法
- 使用TCP/IP和RDMA发送/接收调用实现传统以服务器为中心的DLM,用于底层通信。
- 设计一种以客户端为中心的DLM,客户端通过RDMA单边操作(比较并交换、获取并增加、读取、写入)直接在服务器上操作锁状态。
- 使用64位锁状态字,其中包含两个独立的32位字段分别表示独占锁和共享锁的所有权,通过RDMA实现原子更新。
- 实现锁获取重试的退避机制,使用RDMA读取操作检查锁状态,而无需修改状态。
- 在配备40核处理器的7台机器InfiniBand集群上,通过变化客户端数量和竞争率来测量吞吐量。
- 对比基于TCP的以服务器为中心、基于RDMA的以服务器为中心,以及以客户端为中心的设计之间的性能表现。
实验结果
研究问题
- RQ1通过RDMA绕过服务器CPU是否能显著提升集中式DLM中锁服务的吞吐量?
- RQ2将DLM重构为通过RDMA操作让客户端参与锁协调,是否能相比传统以服务器为中心的模型实现更好的性能?
- RQ3在使用RDMA原子操作实现时,独占锁与共享锁的获取和释放协议性能表现如何?
- RQ4在使用RDMA时,客户端退避策略对锁获取性能有何影响?
- RQ5在高竞争环境下,以客户端为中心的基于RDMA的DLM吞吐量与传统基于TCP的DLM以及基于RDMA的以服务器为中心的DLM相比如何?
主要发现
- 在传统的基于TCP的集中式DLM中,超过90%的服务器CPU周期被内核消息处理占用,证实CPU是主要瓶颈。
- 使用RDMA发送/接收调用虽降低了CPU开销并提升了吞吐量,但服务器仍是性能瓶颈。
- 以客户端为中心的设计通过RDMA原子操作将锁协调卸载至客户端,其性能相比甚至优化过的基于RDMA的以服务器为中心设计也高出一个数量级。
- 以客户端为中心的设计在客户端数量和竞争率增加时,吞吐量表现出显著更好的可扩展性,展现出优越的横向扩展能力。
- 比较并交换、获取并增加等原子操作实现了高效、低延迟的锁获取与释放,无需服务器CPU介入。
- 在重试过程中使用RDMA读取进行状态轮询,避免了对共享锁计数器的不必要的递增,从而提升了正确性和性能。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。