Skip to main content
QUICK REVIEW

[论文解读] Fault-tolerant Distributed Reactive Programming

Rachid Guerraoui, Matej Pavlovič|arXiv (Cornell University)|Sep 8, 2016
Distributed systems and fault tolerance被引用 8
一句话总结

本文提出了 Correctables,一种分布式编程抽象,为复制对象提供增量一致性保证(ICG),使应用程序能够先获得快速的初步结果,随后再获得强一致的最终结果。通过推测初步值,应用程序在仅增加10%带宽和6%吞吐量下降的情况下,将延迟降低了高达40%,该结果已在基于 Cassandra 和 ZooKeeper 的系统中得到验证。

ABSTRACT

In this paper, we present a holistic approach to provide fault tolerance for distributed reactive programming. Our solution automatically stores and recovers program state to handle crashes, automatically updates and shares distributed parts of the state to provide eventual consistency, and handles errors in a fine-grained manner to allow precise manual control when necessary. By making use of the reactive programming paradigm, we provide these mechanisms without changing the behavior of existing programs and with reasonable performance, as indicated by our experimental evaluation.

研究动机与目标

  • 解决在强一致性与弱一致性之间的‘灰色区域’中,分布式应用程序面临的兼顾一致性和性能的挑战。
  • 通过抽象化存储栈细节(如多数派选择、缓存和一致性管理),降低使用复制对象编程的复杂性。
  • 通过在单个操作中暴露多种一致性级别,使开发人员能够同时优化低延迟和正确性。
  • 使用生产级工作负载,在真实系统中评估增量一致性保证(ICG)的性能和开销。

提出的方法

  • 引入 Correctables,一种广义的基于 Promise 的抽象,用于表示对应于复制对象增量一致性视图的多个未来值。
  • 设计 ICG,使其先提供初步结果(快速、弱一致),随后再提供最终结果(强一致),且最终结果在之后到达。
  • 为两种广泛使用的存储系统——Cassandra 和 ZooKeeper——实现绑定,以支持增量一致性保证。
  • 通过允许应用程序使用初步结果进行预取或早期处理,实现推测,从而改善感知延迟。
  • 在 Amazon EC2 上使用 YCSB 工作负载 A、B 和 C 评估延迟、吞吐量和带宽开销。
  • 根据应用程序语义(如单调计数器或票务排队)动态在初步结果和最终结果之间切换,以优化正确性和性能。

实验结果

研究问题

  • RQ1增量一致性保证(ICG)能否作为分布式系统中的一流抽象有效暴露,以在不牺牲正确性的情况下改善应用程序延迟?
  • RQ2在真实应用程序中,通过推测初步结果使用 ICG 能够获得多大的性能提升?
  • RQ3在生产级存储系统(如 Cassandra 和 ZooKeeper)中支持 ICG 的带宽和吞吐量开销是多少?
  • RQ4ICG 能否与应用特定语义(如单调计数器或队列系统)有效结合,以降低延迟?
  • RQ5不一致的初步结果的频率如何影响推测的整体系统成本和可靠性?

主要发现

  • 在广告投放系统中,ICG 将强一致性操作的延迟最高降低了 40%,从 100ms 降至 60ms,同时带宽仅增加 10%,吞吐量下降 6%。
  • 即使 25% 的初步结果不一致,带宽开销仍保持在仅 27% 的低水平。
  • 初步结果与最终结果之间的时间窗口足够大,足以在真实应用场景(如微博和票务销售)中实现有效的推测。
  • 在 Twissandra 微博系统中,推测显著降低了跨多个地理区域的延迟,且与正确结果的偏差始终低于 1%,表明推测成功率很高。
  • 在票务销售系统中,使用初步结果处理前 480 张票显著降低了延迟,最终视图平均仅撤销 2–6 张票,确保了在竞争条件下的正确性。
  • 评估结果证实,ICG 允许在运行时进行动态一致性决策,使应用程序能够根据实时状态和应用语义在不同一致性级别间切换。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

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