知识卡片
一个简单的周期性心跳信号,足以支撑起整套故障检测机制
内容
判断一个CPU是否发生故障,Guardian没有设计复杂的健康检查协议,而是用了一种极简的方式:每个CPU每隔1.2秒在总线上广播一条”我还活着”的消息,只要连续两次没收到某个CPU的这条广播,其他CPU就直接判定它已故障,并接管它负责的资源。这个机制的价值在于它把”故障检测”这件本可以做得很复杂的事,简化成了一个容易实现、容易验证、几乎不会自己出错的固定规则——检测机制本身的可靠性,某种程度上比检测得多精确更重要,因为一个复杂而脆弱的健康检查系统,反而可能变成整个容错体系里最先出问题的那个环节。
参考来源
《架构之美》第8章《Guardian:一个容错操作系统环境》