phi增量故障检测器概念
phi增量(φ-accrual)故障检测器不是将节点故障视为二元判断问题(即进程只能处于两种状态:在线或宕机),而是用连续范围来捕获被监视进程崩溃的概率。它的工作方式是维护一个滑动窗口,从对等进程收集最近心跳的到达时间。该信息用于估算下一个心跳的到达时间,将该近似值与实际到达时间进行比较,并计算可疑程度φ:代表在给定当前网络条件下,故障检测器对故障的置信度。
phi增量故障检测器原理
该算法的原理是:收集和采样到达时间,创建出一个可用于对节点健康状况做出可靠判断的视图,然后使用这些采样结果计算φ的值:如果该值达到阈值,则节点被标记为宕机。通过调整标记节点为疑似死亡的阈值,这种故障检测器能够动态地适应变化的网络条件。从架构的角度来看,phi增量故障检测器可以看作三个子系统的组合。监控通过ping、心跳或请求–响应采样来收集进程存活信息。解释决定是否将该进程标记为疑似死亡。行动每当标记进程为疑似死亡时执行的回调。监控进程将数据样本(假定是正态分布)收集并储存在心跳到达时间的固定大小窗口中。新到达的心跳被添加到窗口中,同时最早的心跳数据点被丢弃。通过确定样本的均值和方差,可以从采样窗口估算出分布参数。
该信息用于计算在前一个消息到达之后t个时间单位内消息到达的概率。基于这个信息我们能计算出φ,它描述了我们对一个进程活动性做出正确决定的可能性。换句话说,有多大的可能性犯错——接收到一个与计算出的假设相矛盾的心跳。
phi增量故障检测器应用
这种方法是由日本高级科学技术研究所的研究人员开发的,现在已用于许多分布式系统中,例如,Cassandra和Akka(连同前面提到的截止时间故障检测器)