博客
关于
分布式-网络\错误模型
2月 17 2020

分布式系统中的网络模型

同步网络:

  1. 所有节点的时钟漂移有上限。
  2. 网络的传输时间有上限。
  3. 所有节点的计算速度一样。

异步网络:

  1. 节点的时钟漂移无上限。
  2. 消息的传输延迟无上限。
  3. 节点计算的速度不可预料。

分布式系统中的故障模型

拜占庭错误:
这是最难处理的情况, 一个节点压根就不按照程序逻辑执行, 对它的调用会返回给你随意或者混乱的结果. 要解决拜占庭式故障需要有同步网络, 并且故障节点必须小于1/3或者消息传递过程中不可篡改。
算法:PBFT
崩溃恢复错误:
它比byzantine类故障加了一个限制, 那就是节点总是按照程序逻辑执行, 结果是正确的. 但是不保证消息返回的时间. crash的情况还要分健忘(amnesia)和非健忘的两种情况.对于健忘的情况, 是指这个crash的节点重启后没有完整的保存crash之前的状态信息, 非健忘是指这个节点crash之前能把状态完整的保存在持久存储上, 启动之后可以再次按照以前的状态继续执行和通信。
算法: Paxos和Raft
omission failures:
比crash-recovery多了一个限制, 就是一定要非健忘。
崩溃停止错误:
也叫做crash failure或者fail-stop failures, 它比omission failure多了一个故障发生后要停止响应的要求。