分布式系统中的时间抽象与故障检测
在分布式系统中,时间抽象和故障检测是非常重要的概念。不同的系统假设(异步、同步和部分同步)适用于不同的环境,而故障检测抽象则为处理系统中的故障提供了有效的手段。
1. 故障检测概述
在分布式系统中,存在异步、同步和部分同步三种系统假设。异步系统没有时间假设,而同步和部分同步系统需要引入时间假设。为了避免对进程和链路抽象进行过于复杂的扩展,引入了故障检测器的抽象概念。
故障检测器可以提供关于哪些进程崩溃以及哪些进程正常的信息,但这些信息不一定准确。根据系统的时间假设不同,可以分为封装同步系统时间假设的故障检测器和封装部分同步系统时间假设的故障检测器,前者提供的信息通常更准确。
故障检测器抽象相对于直接对进程和链路进行时间假设具有两个优点:
- 保留了进程和链路抽象的简单性,无需对其进行时间假设的扩展。
- 可以使用公理性质来推理故障检测器的行为,而无需显式引用物理时间,减少了出错的可能性。
在讨论时间假设时,主要考虑了崩溃故障和崩溃恢复故障,而对于任意故障或拜占庭故障,实现故障检测抽象较为困难。因为拜占庭进程可能会故意逃避检测,使得故障检测器的输出可能不太有用。
2. 完美故障检测
在同步系统中,假设采用崩溃停止进程抽象,可以使用超时机制准确地检测崩溃。完美故障检测器(Perfect Failure Detector,简称 P)可以封装这种检测方式。
2.1 规格说明
完美故障检测器在每个进程输出检测到崩溃的进程的身份。当检测到进程 p 崩溃时,会触发事件 ⟨Crash | p ⟩。其具有以下两个重要属
超级会员免费看
订阅专栏 解锁全文
1891

被折叠的 条评论
为什么被折叠?



