分布式系统的网络模型

同步网络

一个发出的消息如果在一个round内没有到达, 那么一定是网络中断造成的, 这个消息会丢失, 不会延迟到第二个round到达.

异步网络

你发给一个节点一个消息之后几秒钟都没有收到他的应答, 有可能这个节点计算非常慢, 但是也可能是节点crash或者网络延迟造成的, 你很难判断到底是发生了什么样的故障.

故障模型

byzantine failures(拜占庭事故)

节点的故障可能导致节点返回随意或者混乱的结果,要解决拜占庭式故障需要有同步网络, 并且故障节点必须小于1/3或者消息传递过程中不可篡改

crash-recovery failures ( 崩溃恢复事故)

节点的结果总是正确的,但消息回复的时间不保证,crash的节点可能是健忘的也可能是非健忘的,健忘即节点不一定保证crash前的状态信息

omission failures(省略错误)

节点的结果总是正确的,但消息回复的时间不保证,crash的节点一定是非健忘的

crash-stop failures(崩溃停止)

节点在崩溃后完全不和其他节点有任何的交互

一致性模型

1.无一致性: 不保证一致性

2.最终一致性 :在某个时间之后保证一致性

3.强一致性 : 任意时刻保证一致性

具体方法