ScholarGate
助手

分布式系统模型

分布式系统模型是对架构、时序、通信和故障的抽象假设,它们定义了分布式算法可以依赖什么以及必须容忍什么。

用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
下载幻灯片
Learn & explore
视频即将推出

Definition

分布式系统是独立计算机的集合,它们仅通过交换消息进行通信,并向其用户呈现为一个单一的连贯系统;系统模型是对进程、通信通道、时序和故障的假设集合,在此假设下对这样的系统进行分析。

Scope

该领域涵盖了分布式系统的架构和物理模型(客户端、服务器、对等体和多层组织)、区分同步执行和异步执行的时序模型、基本故障模型(崩溃、遗漏、时序和拜占庭)、以及消息传递、共享内存、远程调用和中间件的通信抽象。这些模型构成了该领域所有研究成果的框架:在一个模型下正确的算法在另一个模型下可能无法实现,因此明确模型是推断正确性和性能的先决条件。

Sub-topics

Core questions

  • 给定分布式算法需要对时序、通信和故障做出哪些假设?
  • 同步模型和异步模型有何不同,为什么这种区别会改变可计算性?
  • 协议必须容忍哪些类型的进程和通道故障才能保持正确性?
  • 系统何时应围绕消息传递而非共享内存或远程调用抽象进行构建?

Key theories

同步模型与异步模型
在同步模型中,消息延迟和处理器相对速度存在已知界限,允许使用超时来检测故障;在异步模型中不存在这样的界限,这使得故障检测从根本上不可靠,并导致了许多不可能性结果。
故障模型层次结构
进程和通道故障从良性到严重进行分类——崩溃(故障停止)、遗漏、时序和任意(拜占庭)——需要更强的保证来掩盖更严重的故障;所选模型决定了可实现的弹性和协议的成本。
通信抽象
分布式计算建立在一小组交互原语之上——异步和同步消息传递、分布式共享内存以及远程过程或方法调用——每种原语都具有独特的交付、排序和故障语义,这些语义塑造了更高级别的设计。

Clinical relevance

选择正确的模型是任何实际系统中的首要设计决策:云平台、数据库和协调服务都声明了一个(通常是部分同步的)时序模型和一个故障模型,这些选择决定了系统可以承诺的一致性、可用性和容错保证。

History

20世纪70年代和80年代早期的分布式系统研究旨在确定分布式协调可能实现的最小假设,从而产生了同步/异步二分法和故障分类。这些模型在Lynch、Attiya和Welch、Tanenbaum和van Steen以及Coulouris及其同事的教科书中得到了整合,成为整个领域的共同词汇。

Debates

异步模型对于实际系统来说有多现实?
纯异步模型被证明是最难编程的,并且排除了可靠的故障检测,但大多数真实网络只是间歇性地慢;部分同步模型和故障检测器作为一种实用的中间方案出现,它在保持严谨性的同时允许超时。

Key figures

  • Leslie Lamport
  • Nancy Lynch
  • Andrew S. Tanenbaum
  • Maarten van Steen

Related topics

Seminal works

  • lynch1996
  • tanenbaum2017
  • attiya2004

Frequently asked questions

为什么时序模型如此重要?
因为它决定了超时是否可以被信任。在同步模型中,有界延迟允许进程安全地断定一个沉默的对等体已经失败;在异步模型中,一个慢速进程和一个崩溃的进程是无法区分的,这是几个著名不可能性结果的根本原因。
什么是拜占庭故障?
拜占庭(任意)故障是指故障组件可能以任何方式行为,包括发送冲突或恶意消息。容忍它比容忍简单的崩溃要昂贵得多,并且需要专门的协议。

Methods for this concept

Related concepts