容错与复制
容错和复制是分布式系统在部分组件发生故障时仍能提供正确服务的技术。
用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
Learn & explore
视频即将推出
Definition
容错是指系统在某些组件出现故障时仍能满足其规范的能力;复制——维护计算或数据的多个副本——是实现容错的主要机制,需要协议来保持副本之间适当的一致性。
Scope
该领域涵盖了作为容错基础的冗余、构建可靠服务的状态机复制方法、数据复制和管理复制数据的一致性模型、CAP定理以及分区下的一致性-可用性权衡,以及基于检查点和日志记录的回滚恢复技术。它将共识和排序理论与可靠系统的构建联系起来。
Sub-topics
Core questions
- 冗余如何将不可靠的组件转变为可靠的服务?
- 副本必须保持何种一致性,每个级别在延迟和可用性方面的成本是多少?
- 当网络可能分区时,从根本上无法保证什么?
- 系统在故障后如何恢复到一致状态?
Key theories
- 状态机复制
- 通过运行处理相同命令序列的相同副本,使确定性服务具有容错性,从而幸存的副本可以掩盖其他副本的故障。
- CAP定理
- 当网络可能分区时,复制服务不能同时保证强一致性和可用性;设计者必须选择在分区期间牺牲哪一个,吉尔伯特和林奇对此进行了形式化权衡。
- 回滚恢复
- 通过定期检查点状态和可选地记录消息,系统可以将失败的进程回滚到一致的恢复线并向前重放,从而在不重新启动整个计算的情况下进行恢复。
Clinical relevance
复制和容错是使云存储持久化和高可用服务的关键;这里研究的一致性模型和CAP权衡直接决定了生产中广泛使用的数据库、对象存储和协调服务所提供的保证。
History
施耐德1990年的教程规范了状态机复制方法;布鲁尔的CAP猜想(2000年),由吉尔伯特和林奇于2002年证明,构筑了塑造NoSQL时代的一致性-可用性争论;埃尔诺扎希及其同事的调查巩固了几十年的回滚恢复研究。
Debates
- 强一致性与最终一致性
- 强一致性简化了应用程序推理,但在分区下限制了可用性并增加了延迟;最终一致性以暴露临时不一致为代价最大化了可用性,正确的选择取决于应用程序语义。
Key figures
- Fred Schneider
- Leslie Lamport
- Eric Brewer
- Seth Gilbert
- Nancy Lynch
Related topics
Seminal works
- schneider1990
- gilbert2002
- elnozahy2002
Frequently asked questions
- 复制总是能提高可靠性吗?
- 只有当副本保持一致且独立失效时才行。协调不当的副本可能会出现分歧并提供冲突数据,而相关故障(共享电源、软件错误)会破坏冗余,因此复制必须与正确的一致性协议结合使用。