ImageVerifierCode 换一换
格式:PDF , 页数:32 ,大小:573.23KB ,
资源ID:9847848      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-9847848.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(分布式一致性系统算法.pdf)为本站会员(精品资料)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

分布式一致性系统算法.pdf

1、分布式系统一致性原理与应用 淋雨 分布式系统特征 CAP分布式系统特征 一致性( C): 在分布式系统中的所有数据备份,在同一时刻是否同样的 值。 可用性( A): 在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求 。 分区容忍性( P): 集群中的某些节点在无法联系后,集群整体是否还能继续进行服务。 分布式系统一致性问题 一 个业务操作需要修改两个数据 mysql P ob 分布式系统一致性问题 多个业务操作需要 同时 修改同一个数据 ob A C B 分布式系统一致性问题 网络不确定性 -order ob A C 分布式系统 一致性 定义 强一致性(即时一致性 ) 假如 A先

2、写入了一个值到存储系统,存储系统保证后续 A,B,C的读取操作都将返回最新 值。 S1 S2 S3 Client Server 分布式系统 一致性 定义 弱一致性 假如 A先写入了一个值到存储系统,存储系统不能保证后续 A,B,C的读取操作能读取到最新值。此种情况下有一个“不一致性窗口”的概念,它特指从 A写入值,到后续操作 A,B,C读取到最新值这一段时间。 S1 S2 S3 Client Server 分布式系统 一致性 定义 最终一致性 终一致性是弱一致性的一种特例。假如 A首先 write了一个值到存储系统,存储系统保证如果在 A,B,C后续读取之前没有其它写操作更新同样的值的话,最终

3、所有的读取操作都会读取到最 A写入的最新值 。 “不一致性窗口”的大小依赖于以下的几个因素:交互延迟,系统的负载,以及复制技术中 replication的个数。 S1 S2 S3 Client Update Server Server Two-phase commit(2PC) 两阶段提交 所谓的两个阶段是指:第一阶段:准备阶段和第二阶段:提交阶段。 Two-phase commit(2PC) 准备阶段 事务 协调者 (事务管理器 )给每个参与者 (资源管理器 )发送 Prepare消息,每个参与者要么直接返回失败(如权限验证失败 ),要么在本地执行事务,写本地的redo和 undo日志,但不

4、提交,到达一种“万事俱备,只欠东风”的状态。 (例如: SQL的语法、语义检查,数据安全规范约束检查,数据完整性检查等。 ) Two-phase commit(2PC) 提交 阶段 如果 协调者收到了参与者的失败消息或者超时,直接给每个参与者发送回滚 (Rollback)消息;否则,发送提交 (Commit)消息;参与者根据协调者的指令执行提交或者回滚操作,释放所有事务处理过程中使用的锁资源。 Two-phase commit(2PC) XA架构 Two-phase commit(2PC) XA架构 描述 XA是由 X/Open组织提出的分布式事务的规范。 XA规范主要定义了 (全局 )事务管

5、理器 (Transaction Manager)和 (局部 )资源管理器 (Resource Manager)之间的接口。XA接口是双向的系统接口,在事务管理器( Transaction Manager)以及一个或多个资源管理器( Resource Manager)之间形成通信桥梁。 XA之所以需要引入事务管理器是因为,在分布式系统中,从理论上 讲两 台机器理论上无法达到一致的状态,需要引入一个单点进行协调。事务管理器控制着全局事务,管理事务生命周期,并协调资源 。 Two-phase commit(2PC) 两 段式提交问题 1 准备阶段,资源节点故障。 2 准备阶段,协调节点故障。 3 提

6、交阶段,资源节点故障。 4 提交阶段,协调节点故障。 Paxos 算法 算法背景 Paxos 算法解决的问题是一个分布式系统如何就某个值(决议)达成一致。一个典型的场景是,在一个分布式数据库系统中,如果各节点的初始状态一致,每个节点都执行相同的操作序列,那么他们最后能得到一个一致的状态。为保证每个节点执行相同的命令序列,需要在每一条指令上执行一个“一致性算法”以保证每个节点看到的指令一致。一个通用的一致性算法可以应用在许多场景中,是分布式计算中的重要问题。因此从 20世纪 80年代起对于一致性算法的研究就没有停止过。节点通信存在两种模型:共享内存( Shared memory)和消息传递( M

7、essages passing)。 Paxos 算法就是一种基于消息传递模型的一致性算法。 Paxos 算法 算法提出 Paxos算法是莱斯利 兰伯特( Leslie Lamport) 于 1990年提出的一种基于消息传递的一致性算法 。 问题描述 希腊 岛屿 Paxon 上的执法者( legislators,后面称为牧师 priest)在议会大厅( chamber)中表决通过法律,并通过服务员传递纸条的方式交流信息,每个执法者会将通过的法律记录在自己的账目( ledger)上。问题在于执法者和服务员都不可靠,他们随时会因为各种事情离开议会大厅,并随时可能有新的执法者(或者是刚暂时离开的)回到

8、议会大厅进行法律表决,使用何种方式能够使得这个表决过程正常进行,且通过的法律不发生矛盾。 Paxos 算法 算法过程 Prepare阶段 选择候选人名单 Accept阶段 对候选人进行决议选出一个 Leader Learn阶段 Leader告诉其他人群我已当选 Paxos 算法 流程图 C1 C2 C3 C4 C5 P1 P5 A1 A2 A3 A4 A5 L5 P1 P5 Phase1 Phase2 Paxos 算法 算法角色 Client Proposer Proposer Leader Acceptor Learn。 Paxos 算法 Phase1: prepare ( a)任何一个 p

9、roposer选择一个 proposal编号 n,发送 给所有的 acceptor。 ( b)任何一个 acceptor,如果发现 n是它已回复的请求中编号最大的,它会回复它已 accept的最大的 proposal和对应的 value(如果有);同时还附有一种承诺:不会批准编号小于 n的 proposal。否则拒绝接收。 Paxos 算法 Phase2: accept ( a)如果 proposer接收到了多数派的回应,它发送一个 accept消息到(编号为 n, value v的proposal)到 acceptor的多数派(可以与 prepare的多数派不同 )关键 是这个 value

10、v是什么,如果acceptor回应中包含了 value,则取其编号最大的那个,作为 v;如果回应中不包含任何 value,则有 proposer随意选择一 个。 ( b) acceptor接收到 accept消息后 check,如果没有比 n大的回应比 n大的 proposal,则 accept对应的 value;否则拒绝或不 回应。 Paxos 算法 公式推导 背景: M1=C1=P1=A1=L1 = 1,2,3,4,5 Phase1: P1 =A1,A2,A3 P5 = 3,4,5 P1 P5 Paxos 算法 公式推导 背景: M1=C1=P1=A1=L1 = 1,2,3,4,5 P1

11、0.5 P5 0.5 Phase2: =P1v P5v C 0.5 5 5 = 或者 1 1 = Cm 没有任何结果 Paxos 算法 算法问题 ( a)在一轮选举中需要 确保 恒定的, 集 合的大小不能变化。 ( b) proposal编号的全局有序。 ( b) 活 锁问题,多次选举到没有达成一致。 Paxos Lease算法 算法背景 活 锁的问题在理论上的确存在, Lamport给出的解决办法是选举出一个 proposer作 leader,所有的 proposal都通过 leader来提交,当Leader宕机时马上再选举其他的 Leader。 Leader之所以能解决这个问题,是因为其可

12、以控制提交的进度,比如果之前的 proposal没有结果,之后的 proposal就等一等,不着急提高编号再次提交,相当于把一个分布式问题转化为一个单点问题,而单点的健壮性是靠选举机制 保证 Leader 。 问题貌似越来越复杂,因为又需要一个 Leader选举算法,但 Lamport在 fast paxos中认为该问题比较简单,因为 Leader选举失败不会对系统造成什么影响,因此这个问题他不想讨论。但是后来他又说, Fischer, Lynch, and Patterson的研究结果表明一个可靠的选举算法必须使用随机或超时(租赁)。 Paxos Lease算法 算法过程 Prepare阶段

13、 提名自己为 Master Accept阶段 对候选人进行决议选出一个 Master Learn阶段 Master告诉其他机器 ,并设置 lease Lease阶段 Paxos 算法 Phase1: prepare ( a)任何一个 proposer选择一个 proposal编号 n,并把自己机器 ip作为 value,提名自己为 master,将消息广播给 其他 所有的 acceptor。 ( b)任何一个 acceptor,如果发现 n是它已回复的请求中编号最大的 ,当他已经 accept其他机器为 master,它 会回复它已 accept的最大的proposal和对应 的 ip,如果没

14、有接受当前的请求的 ip作为 master; 同时还附有一种承诺:不会批准编号小于 n的 proposal。否则拒绝接收。 Paxos 算法 Phase2: accept ( a)如果 proposer接收到了多数派的回应,它发送一个 accept消息到(编号为 n,机器 ip为 v的proposal)到 acceptor的 多数派。 ( b) acceptor接收到 accept消息后 check,如果没有比 n大的回应比 n大的 proposal,则 accept对应 的 ip;否则拒绝或不 回应。 Paxos 算法 Phase3: Lease ( a) Master会定期的向其他节点发放 lease租期,当各个节点收到租期的时候,及时更新自己的master有效时间。 ( b)当某一节点定时 check Master的 lease时间,发现已经超时,尝试去和 master节点获取 lease,如果获取到新的 Master和 Lease,如果获取得到就更新。获取不到发起选举,提名自己为 master。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报