Skip to content

模型Model

故障检测器

Failure detector

按故障模式为进程提供受约束的怀疑集合、领导者等抽象输出。

形式陈述 ​

在 Chandra–Toueg 框架中,固定有限进程集合 Π。故障模式 F(t)⊆Π 指定时刻 t 已崩溃的进程,且随时间只增不减;correct(F)=Π∖⋃tF(t) 是整条执行中从不崩溃的进程。故障检测器历史 H 指定每个进程在每个时刻获得的抽象输出。一个故障检测器 D 是映射

F⟼D(F),

其中 D(F) 是与 F 相容的允许输出历史集合。这个一般定义不限制输出形状:P,◊P,S,◊S 输出怀疑集合,而 Ω 输出一个领导者标识。

完整性与准确性只是怀疑集合类检测器的性质。完美检测器 P 要求每个崩溃进程最终被所有正确进程永久怀疑(强完整性),并满足强准确性:任何进程在实际崩溃之前,都不被当时仍未崩溃的进程怀疑。对每个允许的 F 与每个 H∈D(F),后者写成

∀t,∀p,q∈Π∖F(t),p∉H(q,t).

这里保护的不只是整条执行中始终正确的进程,还包括将来会崩溃、此刻仍活着的进程。

最终完美检测器 ◊P 保留强完整性,只把准确性放宽为最终强准确性:对每个允许的 F,H,存在有限时刻 T,此后没有正确进程被任何正确进程怀疑。有限进程集合中,所有实际发生的崩溃都在某个有限时刻之前结束,所以这个最终量词可以使用 correct(F)。弱准确性则只要求存在一个正确进程,始终不被当时仍活着的进程怀疑;它也不同于上述两项条件。

另一类检测器不输出怀疑集合。例如最终领导者检测器 Ω持续给出一个进程标识,并最终让所有正确进程永久指向同一个正确进程;稳定量词、实现边界与“共识最弱检测器”定理由专页承接。检测器总览只强调输出形状可以不同,不能把 completeness/accuracy 机械套到 leader 标识上。

直觉

纯异步系统无法在有限观察内区分“节点已死”和“节点只是极慢”:消息可能只是迟到,进程也可能已经崩溃。故障检测器把这种无法可靠实现的判断封装成一个可能犯错、但受性质约束的预言接口。对怀疑集合类接口,完整性描述是否最终发现崩溃者,准确性限制何时、对哪些进程允许误判;领导者型接口则用最终共同输出等其他条件刻画。关键不在于检测器是否绝不出错,而在于它容许哪些暂时错误、从何时起必须稳定。

例子与边界

超时器是典型实现:进程在截止时间前未收到心跳便被怀疑。网络拥塞或偶发长延迟会使正确节点暂时遭到误判,因此这种实现不满足始终准确;在部分同步条件下,延迟最终受界后可逐步调大超时,使正确进程最终不再被怀疑。完全异步且消息延迟无上界时,仅靠通信无法实现同时具备强完整性和强准确性的完美检测器;最终完美检测器则允许有限时期的误判。

φ累积怀疑把滑窗心跳间隔变成正态尾部评分,让两个消费者使用不同门槛;四份样本的尾0.01并不能推出真实停机后验为99%。SWIM探测与成员怀疑进一步复算间接回复、本人incarnation反驳和迟到确认:一个仍在运行的成员也可能被原版Confirm移除。两种具体机制都保留本页关于误判、量词与外部授权的区别,不能只由有限成功轨迹声称满足最终准确性。

设进程 q 在时刻 10 才崩溃,仍活着的 p 却在时刻 1 就怀疑它。因为 q 不属于整条执行的 correct(F),只禁止怀疑“始终正确者”的条件会放过这次预判;强准确性却明确禁止它。最终强准确性可以允许这段有限时期的误判,只须在某个稳定时刻之后满足自己的条件。

检测器输出的是怀疑,而非不可撤销的事实,除非规格明确要求永久性。因此,“未怀疑”不等于进程健康,“被怀疑”也不等于进程已经崩溃,协议必须相应地容忍提示被撤回或修正。

推论与应用

异步系统与崩溃故障造成的不可区分性解释了为何需要该抽象。Chandra–Toueg 框架用不同检测器类别刻画异步共识、原子广播等问题的可解性;适当的检测器能越过FLP 不可能性的活性障碍。检测器允许的输出历史会扩展系统的轨迹集合,完整性、准确性或最终领导者是对这些历史的规格;若用模型检查验证使用它的协议,必须把这一环境约束显式编码,而不能把暂时正确的超时样本当作检测器定理。Ω 类把所需信息压缩为最终共同 leader,但“最弱”只在指定崩溃、通信与归约模型中成立。

工程中的心跳可以在部分同步假设下近似怀疑集合或 Ω;租约和 fencing 还要求时钟及外部写入规则,不是故障检测器输出的自动结果。

参考资料
  • Nancy A. Lynch, Distributed Algorithms, Morgan Kaufmann, 1996,Chs. 10–12, failure information and asynchronous agreement。
  • Tushar D. Chandra and Sam Toueg, “Unreliable Failure Detectors for Reliable Distributed Systems”, Journal of the ACM 43(2), 1996, pp. 225–267,§2.3、pp. 232–233:强准确性、弱准确性与最终准确性的不同量词;§2.4 给出检测器类别。
关系图谱9 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

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

上位 / 更一般

暂未标注直接上位概念。

下位 / 直接特例