形式陈述
故障检测器是分布式算法可查询的抽象模块,持续输出被怀疑已崩溃的进程集合。其规格由完整性与准确性组成:例如完美检测器
直觉
纯异步系统无法区分“节点已死”和“节点只是极慢”;故障检测器把这种不确定时间信息封装成可有误差但受性质约束的提示。
例子与边界
基于超时的实现可能暂时怀疑一个网络拥塞但仍正确的节点,因此不满足始终准确,却可能在网络最终稳定后满足最终准确。在完全异步、消息延迟无上界的系统中,不能仅靠通信实现既永不误判又及时发现所有崩溃的完美检测器。检测器输出是怀疑,不是不可撤销事实,除非规格明确要求永久性。
推论与应用
Chandra–Toueg 框架用不同检测器类别刻画异步共识、原子广播等问题的可解性。工程中的心跳和租约可视为在部分同步假设下逼近某类检测器。
参考资料
- 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,Full paper, completeness/accuracy classes of unreliable failure detectors。