Skip to content

异步系统

Asynchronous distributed system

消息延迟和进程相对速度没有已知有限上界的系统模型。

条目类型
模型

形式陈述

在异步消息传递系统中,不假设存在已知常数可以上界消息延迟、正确进程两步之间的间隔或不同进程的相对速度;协议也没有可用于正确性证明的共享全局时钟。对任意有限等待阈值 T,模型都允许一条消息在超过 T 后才交付,或某个正确进程在超过 T 后才取得下一步。

异步性只删去时间上界,不决定可靠性与故障。常见可容许执行另外要求:每个正确进程取得无穷多步,发给正确进程的每条消息最终交付,故障数不超过预算。于是允许的延迟可以任意大,却必须在每条具体公平执行中是有限的;永久丢失属于信道故障,永久停止取步的进程则要么崩溃、要么违反调度公平性。

直觉

异步调度者可以把任何关键事件推到更晚,却不能违反另行承诺的最终交付与公平性。协议观察到的只是一个有限前缀;在这个前缀之后,沉默节点既可能已经崩溃,也可能下一步就恢复运行。两条执行对观察者不可区分,因此超时只能产生怀疑,不能成为无条件的故障证明。

异步模型中的安全证明通常更稳健:消息再慢也不能制造两个决定。活性却需要排除对手永远在关键点改变领导者或延迟消息的能力,往往必须引入最终领导、部分同步或随机化。

异步系统:崩溃与迟缓不可区分
例子与边界

进程 pq 发送心跳后等待十秒。执行 α 中,q 已 crash-stop;执行 β 中,q 正确,但心跳响应延迟十一秒。在十秒处,p 的局部状态与已收消息可以完全相同。若此时永久排除 q,协议会在 β 中误判;若必须永远等待确证,又会在 α 中失去进展。故障检测器理论正是研究要补充什么信息才能打破这组不可区分执行。

一条公平异步执行还可让第 k 条消息延迟 k 个调度阶段:延迟序列没有统一上界,但每条消息最终到达。相反,永久扣住某条发给正确进程的消息违反可靠交付条款。无上界与不交付是不同量词。

崩溃故障与公平性都独立于时序模型。“正确”只表示未崩溃;要保证它继续执行,还须在可容许执行中加入进程公平性。异步也不消除本地顺序与消息因果,因果广播仍可保持 happens-before;缺失的是可用于截止期推理的时长界。

推论与应用

FLP 不可能性表明:完全异步、确定性、可靠消息并允许一次 crash-stop 时,不存在覆盖所有可容许执行的共识终止保证。它没有否定正常调度下快速决定,也没有削弱协议的安全不变量。

故障检测器把关于崩溃的额外信息显式做成 oracle;最终领导者检测器 Ω 只要求某个未知时刻后所有正确进程永久信任同一个正确进程。部分同步允许自适应超时最终实现这类稳定性,纯异步时间信息本身做不到。

实践系统通常借随机化或部分同步补入活性所需的信息;在最终时序稳定后,自适应超时才可能具体化 Ω 一类接口。Paxos 等协议由此形成“异步下保安全、时序稳定后求进展”的分工。理解协议时,应分别说明纯异步执行中保住什么,以及活性额外依赖哪个 oracle 或时间假设。

参考资料
  • Nancy A. Lynch, Distributed Algorithms, Morgan Kaufmann, 1996, Chapters 8 and 14。
  • Hagit Attiya and Jennifer Welch, Distributed Computing: Fundamentals, Simulations, and Advanced Topics, 2nd ed., Wiley, 2004, Chapter 2。
  • Cynthia Dwork, Nancy Lynch, and Larry Stockmeyer, “Consensus in the Presence of Partial Synchrony,” Journal of the ACM 35(2), 1988, pp. 288–323。
关系图谱14 个相邻概念 · 1 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组