分布式-容错性,2PC

《分布式系统原理与范型》

分布式区别于单机系统的一个特性:可能部分失效。

分布式系统设计的一个重要目标:可以从部分失效中自动恢复,它能容忍错误,在发生错误时某种程度上的可以继续操作。

 

1、可用性,可靠性、安全性、可维护性。

2、故障类型,崩溃性故障、遗漏性故障、随即故障(拜占庭故障)、等等。

    问题: 当一个服务器一段时间不响应时,服务器是崩溃了,还是出现性能问题呢???

3、使用冗余来掩盖故障

Lamport在论文中证明在拜占庭故障的系统中,具有m个故障进程的系统中,只有存在2m+1个正确的工作进程才能达成协议,这样总共有3m+1个进程,也就是当2/3以上的进程正常工作时,才可能达成协议。

 

4、分布式系统中原子性的基础是分布式提交协议

两阶段提交 2PC:

a\ 协调者向所有参与者发送一个vote_request消息

b\ 当参与者接受到vote_request消息时,就向协调者发送一个vote_commit消息通知协调者他已经准备好本地提条事务中属于它的部分,否则返回一个vote_abort

c\ 协调者收集来自所有参与者的选票,如果全部都表决提交事务,那么协调者就进行提交,它向所有参与者发送一个global_commit消息,如果有一个参与者表决取消事务,那么协调者就决定取消,它向所有参与者发送一个global_abort消息。

d\ 每个提交表决的参与者 都等待 协调者的最后会有,如果参与者接收到global_commit, 那么他就提交事务,否则接受到gloabl_abortt消息时,取消abort.。

表决阶段有第一,第二步构成,决定阶段有第三、第四步构成。

 

出现的问题:所有协调者、参与者都是阻塞等待消息,当一个进程崩溃,而其他进程又在等待来自该进程的消息时,这个协议很容易崩溃。

可以引入定时机制。当协调者崩溃时,参与者不能做出最后的决定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值