两阶段提交协议 分布式事务增强数据库一致性 分布 Read9.ppt

两阶段提交协议 分布式事务增强数据库一致性 分布 Read9.ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
两阶段提交协议 分布式事务增强数据库一致性 分布 Read9

4.3 两阶段提交协议 4.4分布式数据库中的数据更新 4.5分布式事务增强数据库一致性 4.6本章小结 4.3 两阶段提交协议 4.3.1 两阶段提交协议的基本思想和内容 4.3.2 两阶段提交协议的通信结构 4.3.3 两阶段提交协议与故障恢复 4.3.1 两阶段提交协议的基本思想和内容 两阶段提交协议(Two-phase Commitment Protocal—2PC)既简单又精巧,它把本地原子性提交行为的效果扩展到分布式事务,保证了分布式事务提交的原子性,并在不损坏日志的情况下.实现快速故障恢复,提高分布式数据库系统的可靠性。 在两阶段提交协议中,把分布式事务的某一个代理(根代理)指定为协调者(coodinator),所有其他代理称为参与者(Participants)。只有协调者才有掌握提交或撤销事务的决定权,而其他参与者各自负责在其本地数据库中执行写操作,并向协调者提出撤销或提交子事务的意向。一般一个站点惟一地对应一个子事务,如果某一参与者与协调者在同一站点,虽然它们不需要使用网络来通信,但在处理时仍逻辑地认为它与协调者不在同一站点。 图4.14为协调者和参与者关系的示意图 2PC保证分布式事务提交的原子性,这是通过坚持在分布式事务的结果生效以前,所有参与执行分布式事务的站点都同意提交而做到这一点. 图4.15描述了协调者和一个参与者之间的两阶段提交协议的活动 。图中椭圆形表示状态,虚线表示协调者和参与者之间的消息。虚线上的标号说明了消息的种类 . 2Pc把事务的提交过程分为两个阶段: 第一阶段是表决阶段,目的是形成一个共同的决定。 第二阶段是执行阶段,目的是实现这个决定.根据协调者的指令.参与者或者提交事务,或者撤销事务,并给协调者发送确认消息。此时,协调者在日志中写入一条事务结束记录并终止事务。 请注意协调者做出关于事务的全局终止决定的方式。该决定受两条规则支配,这两条规则合称为全局提交规则: 只要有一个参与者撤销事务,协调者就必须做出全局撤销决定。 只有所有参与者都同意提交事务,协调者才能做出全局提交决定。 从图4.14中可以看出以下一些关于两阶段提交协议的一些重要之处。首先,两阶段提交协议允许参与者可以单方面撤销事务;其次,一旦参与者确定了提交或撤销提议.它就不能再更改它的提议;第三,当参与者处于就绪状态时,根据协调者发出的消息的种类,参与者可以转换为提交状态或撤销状态;第四,协调者依据全局提交规则做出全局终止决定;最后,注意协调者和参与者可能进入某些相互等待对方发送消息的状态。为了确保它们能够从这些状态中退出并终止,要使用定时器。每个进程进入一个状态时都要设置定时器。如果所期待的消息在定时器超时之前没有到来,定时器向进程报警,进程于是调用它自己的超时协议。 4.3.2 两阶段提交协议的通信结构 集中式2Pc通信结构 分层式2Pc通信结构 线性2Pc的通信结构 分布式2PC的通信结构 集中式2Pc通信结构 有一些不同的通信范例可以在实现两阶段提交协议时使用。上面讨论的并在图4.14中指述的范例称为集中式两阶段提交协议,这是因为通信只发生在协调者和参与者之间,参与者之间不交换消息。图4.16中作了更明确的描述. 分层式2Pc通信结构 如图协调者是在树根的DTM—代理者。在协调者和参与者之间的通信不用直接广播的方法进行,而是使报文在树中上下传播。每个DTM—代理者是通信树的一个内部节点,它从下层节点处收集报文或向它们广播报文。 线性2Pc的通信结构 另一种可供选择的范例是线性两阶段提交协议(也称为嵌套两阶段提交协议)。在该结构中,参与者之间可以相互通信。为了通信,系统中的站点之间要进行排序。假定参与事务执行的站点之间的顺序是1到N,协调者就是序列中的第一个。实现两阶段提交协议时,在第一阶段使用了向前通信方式,从协调者(No.1)到N;在第二阶段使用了向后通信方式,即从N到协调者。于是,线性两阶段提交协议按如下方式操作. 图4.18 线性2PC的通信结构 它产生较少的消息.但是不提供任何并行。因此,它增加了相应时间,降低了性能。然而,它可能适合于没有广播能力的网络。 分布式2P

文档评论(0)

haowendangqw + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档