[论文解读] Microsecond Consensus for Microsecond Applications
Mu 提出了一种高性能、微秒级优化的状态机复制(SMR)系统,该系统利用基于权限的访问控制实现单边 RDMA 写入,在不到 1.3 微秒(第 99 百分位:1.6 μs)内完成请求复制,同时将故障转移时间缩短至 873 μs(第 99 百分位:945 μs),分别比先前系统降低超过 60% 和 90% 的延迟。该系统采用一种新型基于 RDMA 的一致性协议和基于拉分值的故障检测机制,为微秒级应用提供了快速、安全且可扩展的复制能力。
We consider the problem of making apps fault-tolerant through replication, when apps operate at the microsecond scale, as in finance, embedded computing, and microservices apps. These apps need a replication scheme that also operates at the microsecond scale, otherwise replication becomes a burden. We propose Mu, a system that takes less than 1.3 microseconds to replicate a (small) request in memory, and less than a millisecond to fail-over the system - this cuts the replication and fail-over latencies of the prior systems by at least 61% and 90%. Mu implements bona fide state machine replication/consensus (SMR) with strong consistency for a generic app, but it really shines on microsecond apps, where even the smallest overhead is significant. To provide this performance, Mu introduces a new SMR protocol that carefully leverages RDMA. Roughly, in Mu a leader replicates a request by simply writing it directly to the log of other replicas using RDMA, without any additional communication. Doing so, however, introduces the challenge of handling concurrent leaders, changing leaders, garbage collecting the logs, and more - challenges that we address in this paper through a judicious combination of RDMA permissions and distributed algorithmic design. We implemented Mu and used it to replicate several systems: a financial exchange app called Liquibook, Redis, Memcached, and HERD. Our evaluation shows that Mu incurs a small replication latency, in some cases being the only viable replication system that incurs an acceptable overhead.
研究动机与目标
- 解决传统 SMR 系统中存在的关键性能差距,其数百微秒的开销使其不适用于金融、嵌入式系统和微服务中的微秒级应用。
- 将复制和故障转移延迟降低至与微秒级应用兼容的水平,其中即使微小的开销也是不可接受的。
- 设计一种新型 SMR 协议,通过单轮单边 RDMA 操作实现一致性和复制,消除多轮通信和双向消息传递。
- 利用基于 RDMA 的拉分值机制实现快速、可靠的故障检测,避免网络抖动导致的误报,从而支持激进的超时策略。
- 同时实现低公共路径延迟和低故障转移时间,挑战“快速复制与快速故障转移之间存在权衡”的传统观念。
提出的方法
- 使用 RDMA 单边写入操作,在单轮通信中直接将请求复制到每个副本的日志中,消除与跟随者之间的往返通信。
- 通过 RDMA 写入权限强制对每个副本日志的独占写入访问,防止多个领导者同时写入导致日志损坏。
- 实现一种拉分值故障检测机制,即副本通过 RDMA 定期读取领导者的心跳计数器;若连续相同读取的得分超过阈值,则判定为故障。
- 基于 RDMA 权限更新实现轻量级领导者切换协议,该操作在现代支持 RDMA 的网卡上具有原子性和高效性。
- 设计一个支持通用应用的状态机复制框架,包括日志记录、状态管理、客户端协调和实例生命周期管理。
- 集成先前 RDMA 最佳实践中的优化技术,如减少系统调用和使用内存映射 I/O,以降低 CPU 开销并改善端到端延迟。
实验结果
研究问题
- RQ1仅使用单边 RDMA 操作,是否能够实现微秒级应用的亚微秒级复制延迟?
- RQ2如何利用 RDMA 权限在无需多轮通信或双向消息传递的情况下防止并发领导者写入?
- RQ3能否在微秒时间尺度上实现快速且准确的故障检测,而无需依赖易受网络抖动影响的网络超时机制?
- RQ4是否可能同时实现低复制延迟和低故障转移时间,从而打破快速路径与慢速路径性能之间的传统权衡?
- RQ5在仅使用单边 RDMA 操作和基于权限的协调机制的前提下,能够构建多大规模的完整 SMR 系统?
主要发现
- Mu 平均在 1.3 微秒内完成小请求的复制,第 99 百分位延迟为 1.6 微秒,相比最快先前系统降低 61% 的复制延迟。
- 故障转移时间降低至 873 微秒(第 99 百分位:945 μs),比先前系统至少降低 90%,最快先前系统(HovercRaft)耗时 10 毫秒。
- 系统通过单轮并行 RDMA 写入实现一致性和复制,无需多轮通信或双向操作。
- 拉分值故障检测机制平均可在约 600 微秒内完成故障检测,主要受限于进程调度的波动,而非网络抖动。
- Mu 利用 RDMA 权限机制,即使在并发领导者场景下也能实现无竞争的安全单轮复制,确保同一时间仅有一个领导者可向副本日志写入。
- 在真实系统(包括 Liquibook、Redis、Memcached 和 HERD)上的评估表明,由于其极低的开销,Mu 是唯一适用于微秒级应用的可行复制系统。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。