Skip to main content
QUICK REVIEW

[论文解读] Bizur: A Key-value Consensus Algorithm for Scalable File-systems

Ezra N. Hoch, Yaniv Ben-Yehuda|arXiv (Cornell University)|Feb 14, 2017
Distributed systems and fault tolerance参考文献 29被引用 5
一句话总结

Bizur 是一种为可扩展的分布式文件系统设计的键值共识算法,通过消除分布式日志依赖,实现了高 IOPS 和低延迟。与 Paxos、Zab 或 Raft 不同,Bizur 对每个键独立达成共识,避免了虚假和真实的依赖关系,从而在故障期间展现出更优越的性能和容错能力。

ABSTRACT

Bizur is a consensus algorithm exposing a key-value interface. It is used by a distributed file-system that scales to 100s of servers, delivering millions of IOPS, both data and metadata, with consistent low-latency. Bizur is aimed for services that require strongly consistent state, but do not require a distributed log; for example, a distributed lock manager or a distributed service locator. By avoiding a distributed log scheme, Bizur outperforms distributed log based consensus algorithms, producing more IOPS and guaranteeing lower latencies during normal operation and especially during failures. Paxos-like algorithms (e.g., Zab and Raft) which are used by existing distributed file-systems, can have artificial contention points due to their dependence on a distributed log. The distributed log is needed when replicating a general service, but when the desired service is key-value based, the contention points created by the distributed log can be avoided. Bizur does exactly that, by reaching consensus independently on independent keys. This independence allows Bizur to handle failures more efficiently and to scale much better than other consensus algorithms, allowing the file-system that utilizes Bizur to scale with it.

研究动机与目标

  • 解决类似 Paxos 的共识算法在大规模分布式文件系统中面临的可扩展性和延迟限制。
  • 克服强一致性系统中因分布式日志依赖而产生的性能瓶颈。
  • 在拥有数百台服务器、元数据拥有权动态且细粒度分布的文件系统中,支持高并发的元数据操作。
  • 同时支持内存和持久化键值服务,实现强一致性及低延迟恢复。
  • 设计一种专为键值工作负载优化的共识机制,避免通用分布式日志带来的开销。

提出的方法

  • 暴露一个键值 API,其中每个键独立受共识保护,消除键之间的依赖关系。
  • 通过允许对单个键值对独立达成一致,将共识与全局日志解耦。
  • 使用基于领导者的协议并结合法定人数投票机制,确保每个键的强一致性。
  • 支持条件写入和每个键的原子更新,实现对分布式服务的安全协调。
  • 与内存和持久化存储层集成,支持快速的内存操作,并通过持久化日志实现崩溃恢复。
  • 通过允许服务器重新加入并重建状态而无需重放单体日志,实现容错恢复。

实验结果

研究问题

  • RQ1能否设计一种共识算法,避免在键值工作负载中因分布式日志而产生的性能瓶颈?
  • RQ2每个键独立达成共识在正常运行和故障期间对可扩展性和延迟有何影响?
  • RQ3键值共识模型在元数据密集型文件系统中,相较于基于日志的共识,能多大程度上实现性能超越?
  • RQ4能否在不依赖全局日志的前提下,维持强一致性,同时支持高并发和低延迟操作?
  • RQ5与 ZooKeeper 和 etcd 等成熟系统相比,该算法在网络分区、数据包丢失和服务器故障情况下的表现如何?

主要发现

  • 在正常运行条件下,Bizur 在吞吐量、平均延迟和第 99 百分位延迟方面均优于 ZooKeeper 和 etcd。
  • 在网络数据包丢失情况下,由于依赖链更短,Bizur 的延迟显著低于基于日志的系统。
  • 在服务器故障期间,由于避免重放单体分布式日志,Bizur 实现了更快的恢复速度和更低的延迟退化。
  • 该算法的性能随键的数量线性扩展,支持大规模文件系统中的高并发元数据操作。
  • Bizur 的内存版本(在 ORC 服务中使用)实现了亚毫秒级延迟,证明了其相对于基于磁盘的替代方案的性能优势。
  • Bizur 的设计消除了操作之间的虚假依赖,防止单个缓慢操作阻塞后续操作。

更好的研究,从现在开始

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

无需绑定信用卡

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