Skip to main content
QUICK REVIEW

[论文解读] Exploiting Commutativity For Practical Fast Replication

Seo Jin Park, John K. Ousterhout|arXiv (Cornell University)|Oct 26, 2017
Distributed systems and fault tolerance参考文献 10被引用 6
一句话总结

本文提出 CURP,一种复制协议,通过利用操作的可交换性,使线性化更新在 1 RTT 内完成,允许客户端在主服务器执行的同时并行将操作复制到见证副本。在 RAMCloud 中,该协议将写入延迟降低 2 倍,吞吐量提高 4 倍,而三副本复制相比未复制性能仅增加 0.4 µs 的开销。

ABSTRACT

Traditional approaches to replication require client requests to be ordered before making them durable by copying them to replicas. As a result, clients must wait for two round-trip times (RTTs) before updates complete. In this paper, we show that this entanglement of ordering and durability is unnecessary for strong consistency. Consistent Unordered Replication Protocol (CURP) allows clients to replicate requests that have not yet been ordered, as long as they are commutative. This strategy allows most operations to complete in 1 RTT (the same as an unreplicated system). We implemented CURP in the Redis and RAMCloud storage systems. In RAMCloud, CURP improved write latency by ~2x (13.8 us -> 7.3 us) and write throughput by 4x. Compared to unreplicated RAMCloud, CURP's latency overhead for 3-way replication is just 0.4 us (6.9 us vs 7.3 us). CURP transformed a non-durable Redis cache into a consistent and durable storage system with only a small performance overhead.

研究动机与目标

  • 在不牺牲强一致性的情况下,减少一致存储系统中的复制延迟。
  • 解耦复制中传统的 2-RTT 协议中纠缠的顺序与持久化阶段。
  • 在大多数操作具有可交换性的系统(如键值存储和分布式存储)中,实现快速且持久的复制。
  • 以极低的性能代价,同时支持本地一致读取和地理复制一致性。

提出的方法

  • 客户端在向主服务器发送请求的同时,将每个操作并行复制到一个或多个见证副本。
  • 主服务器执行操作并向客户端响应,而无需等待完整复制完成,依赖见证副本确保持久性。
  • 仅当操作具有可交换性且成功被见证时,才认为其已持久化;非可交换操作仍需 2 RTT。
  • 若主服务器崩溃,通过结合见证信息与正常副本,可重建一致状态。
  • 该协议可与任何备份机制(包括状态机复制和网络附加存储)兼容,并可与 Raft 和 Viewstamped Replication 等共识协议集成。
  • 通过检查与本地见证副本的可交换性,实现从本地备份的强一致性读取,本地读取达到 0 RTT。

实验结果

研究问题

  • RQ1能否在保持强一致性的同时,将复制延迟从 2 RTT 降低至 1 RTT?
  • RQ2能否利用可交换性解耦复制协议中的顺序与持久化?
  • RQ3该方法在 RAMCloud 和 Redis 等高性能系统中是否具有高效的可扩展性?
  • RQ4该协议能否在不牺牲性能或正确性的情况下,应用于主从备份和基于共识的系统?
  • RQ5在具有广域网络延迟的地理复制环境中,该协议表现如何?

主要发现

  • 在 RAMCloud 中,CURP 将写入延迟从 13.8 µs 降低至 7.3 µs,实现 2 倍性能提升。
  • 在 RAMCloud 中,CURP 将写入吞吐量提高 3.8 倍,展现出显著的可扩展性优势。
  • 对于三副本复制,CURP 相比未复制的 RAMCloud(6.9 µs vs 7.3 µs)仅增加 0.4 µs 的开销。
  • 在 Redis 中,CURP 实现了持久且一致的存储,性能与原始非持久化 Redis 相当。
  • CURP 在异步网络中实现了更新操作的 1 RTT 延迟,是首个实现此目标的协议。
  • 与 Speculative Paxos 和 NOPaxos 相比,CURP 仅增加 0.4 µs 的开销,远低于它们 16–25 µs 的开销。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。