Skip to main content
QUICK REVIEW

[论文解读] Byzantine-Tolerant Register in a System with Continuous Churn

Saptaparni Kumar, Jennifer L. Welch|arXiv (Cornell University)|Oct 13, 2019
Distributed systems and fault tolerance参考文献 32被引用 4
一句话总结

本文提出了在动态系统中首次实现拜占庭容错的原子寄存器仿真,该系统具有持续的节点流动(churn),服务器和客户端可连续加入和离开,且系统规模无上限。该算法在任意时间区间内,节点流动速率被限制为系统规模的常数比例 α,且最多存在常数个拜占庭服务器 f 的条件下,确保了原子性和安全性,证明了当 f 未知时问题的不可解性。

ABSTRACT

A shared read/write register emulation provides the illusion of shared-memory on top of message-passing models. The main hurdle with such emulations is dealing with server faults in the system. Several crash-tolerant register emulations in static systems require algorithms to replicate the value of the shared register onto a majority of servers. Majority correctness is necessary for such emulations. Byzantine faults are considered to be the worst kind of faults that can happen in any distributed system. Emulating a Byzantine-tolerant register requires replicating the register value on to more than two-thirds of the servers. Emulating a register in a dynamic system where servers and clients can enter and leave the system and be faulty is harder than in static systems. There are several crash-tolerant register emulations for dynamic systems. This paper presents the first emulation of a multi-reader multi-writer atomic register in a system that can withstand nodes continually entering and leaving, imposes no upper bound on the system size and can tolerate Byzantine servers. The algorithm works as long as the number of servers entering and leaving during a fixed time interval is at most a constant fraction of the system size at the beginning of the interval, and as long as the number of Byzantine servers in the system is at most f. Although our algorithm requires that there be a constant known upper bound on the number of Byzantine servers, this restriction is unavoidable, as we show that it is impossible to emulate an atomic register if the system size and maximum number of servers that can be Byzantine in the system is unknown to the nodes.

研究动机与目标

  • 设计一种在动态系统中实现拜占庭容错的原子寄存器,该系统具有持续的节点流动,系统规模无上限,且不要求节点流动最终停止。
  • 解决在服务器和客户端持续加入和离开,且可能发生拜占庭故障的系统中,维持一致性和安全性的挑战。
  • 确立此类寄存器可安全仿真的条件,特别是对节点流动速率和拜占庭服务器数量的限制。
  • 证明在此模型中无法实现统一算法,揭示动态拜占庭系统的基本限制。
  • 证明已知拜占庭服务器数量的上界是必要的,因为若无此假设,问题将变得不可解。

提出的方法

  • 该算法使用基于时间戳的全序机制以确保原子性,根据操作的开始时间并结合法定集合进行协调,为所有操作分配唯一的时间戳。
  • 采用拜占庭法定集合系统(BQS),其中读取和写入操作必须与重叠的服务器集合交互,以确保在存在拜占庭故障时仍能保持一致性。
  • 系统假设在任意固定时间区间内,进入或离开的服务器数量最多为区间开始时系统规模的 α 倍,从而确保节点流动有界。
  • 客户端和服务器通过基于领导者的机制进行协调,以维护法定集合的完整性,并确保系统内所有操作的一致性排序。
  • 写入操作采用两阶段协议:首先将写请求发送至一个法定集合的服务器;其次仅在多数服务器确认后才提交写入。
  • 通过按时间戳对写入操作排序,并将读取操作置于其读取的写入操作之后,构建所有操作的全序,从而确保原子性和实时顺序。

实验结果

研究问题

  • RQ1是否可以在具有持续节点流动、系统规模无上限,且容忍拜占庭服务器故障的动态系统中仿真原子寄存器?
  • RQ2是否可能在不强制要求节点流动最终停止或限制系统规模的前提下,实现此类系统的原子性和安全性?
  • RQ3对于正确且安全的仿真,节点流动速率(α)和拜占庭服务器数量(f)的必要条件是什么?
  • RQ4是否可能在此模型中实现拜占庭容错寄存器仿真的统一算法,或存在根本性的不可解性结果?
  • RQ5假设已知 f 的上界是否必要?系统能否容忍未知数量的拜占庭服务器?

主要发现

  • 本文提出了首个在具有持续节点流动、系统规模无上限、且不要求节点流动停止的动态系统中,实现拜占庭容错原子寄存器仿真的算法。
  • 该算法通过基于时间戳和法定集合协调构建操作的全序,确保每个读取操作返回最新先前写入操作的值,从而保证原子性。
  • 只要在任意固定时间区间内,节点流动速率被限制为系统规模的常数比例 α,且拜占庭服务器数量被已知常数 f 所限制,系统即为正确。
  • 本文证明,若拜占庭服务器数量未知,则无法实现此类寄存器,确立了系统假设的下限。
  • 作者表明,对 f 的已知上界假设是不可避免的,因为若放松此假设,问题将变得不可解。
  • 该算法在给定约束下被证明是正确的,其正确性依赖于对操作排序的精心构造,该构造尊重实际执行顺序并确保一致性。

更好的研究,从现在开始

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

无需绑定信用卡

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