分布式系统原理(3)--副本控制协议

本文介绍了分布式系统中的副本控制协议,包括中心化和去中心化两大类。中心化协议如primary-secondary协议,强调了数据更新流程、读取方式以及一致性保证。去中心化协议如Paxos,具有更好的容错性。文章还列举了GFS、PNUTS、Dynamo/Cassandra等系统的副本控制实现。

2、基本副本协议

副本控制协议指按特定的协议流程控制副本数据的读写行为,使得副本满足一定的可用性和一致性要求的分布式协议。副本控制协议要具有一定的对抗异常状态的容错能力,从而使得具有一定的可用性,同时要能提供一定一致性级别。由CAP原理可知,设计满足强一致性,且出现任何网络异常时都可用的副本协议是不可能的。故需在可用性、一致性与性能等各要素间按照具体需求折中。

副本控制协议可分为两大类:“中心化(centralized)副本控制协议”和“去中心化(decentralized)副本控制协议”

(1)中心化副本控制

l  基本思路:由一个中心节点协调副本数据的更新、维护副本之间的一致性。

l  优点:简单,使得分布式并发(多节点同时修改副本)控制问题,简化为中心节点单机并发控制问题。使用方法:加锁等

l  缺点:系统的可用性依赖于中心化节点,当中心化节点异常或与中心节点通信中断时,系统将失去某些服务,也就是存在一定的停服务时间

(2)primary-secondary协议

也称primary-backup,是一种非常常用的中心化副本控制协议。该协议中副本分两大类,有且仅有一个副本作为primary副本,剩余副本都作为secondary副本。维护primary副本的节点作为中心节点,负责维护数据的更新、并发控制、协调副本的一致性。primary-secondary协议一般要解决四大问题,数据更新流程、数据读取方式、primary副本的确定和切换、数据同步(reconcile)。

(a)数据更新基本流程

1)数据更新都是由primary节点协调完成。

2)外部节点将更新操作发给primary节点

3)primary节点进行并发控制即确定并发更新操作的先后顺序

4)primary节点将更新操作发送给secondary节点

5)primary根据secondary节点的完成情况决定更新是否成功并将结果返回外部节点

上述4步骤,若primary同时发送,则secondary的更新吞吐受prim

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值