分布式系统之8、同步2.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
分布式系统之8、同步2

2、写前日志 写前日志 真正修改原文件系统 每一个修改操作的详细信息都被记录到日志中,只有日志被成功写入了,对文件的改动才写入文件 回滚(rollback):如果事务异常中止,系统从日志的末尾开始向前读日志中的每一条记录,按照日志的记录撤销改动 写前日志的方法也适用于分布式事务。 x = 0; y = 0; BEGIN_TRANSACTION; x = x + 1; y = y + 2; x = y * y; END_TRANSACTION; (a) Log [x=0/1] (b) Log [x=0/1] [y= 0/2] (c) Log [x=0/1] [y=0/2] [x=1/4] (d) 写前日志 四、并发控制 1、基本概念 并发事务 是同时对共享数据进行操作的事务 共享数据的一致性问题 并发控制 允许几个事务同时进行,但是被操作的数据项集合要保持一致的状态 允许事务以某一特定顺序执行,以此保证数据一致性 基本概念 基本实现模型:事务处理系统模型 事务管理器:保证事务的原子性 调度管理器:正确控制并发 数据管理器:完成数据读写操作,不关心事务 可以应用于分布式事务中 每个站点有调度管理器和数据管理器,它们一起保证本地数据一致性 事务管理器与各站点的调度管理器通信 事务处理系统模型 分布式事务处理系统模型 2、并发控制方法 并发控制方法 思想:正确地调度相冲突的操作,包括读写冲突,写写冲突。 算法: 可以通过共享数据上的互斥机制 也可以通过显式地使用时间戳排序的方法来实现。 BEGIN_TRANSACTION x = 0; x = x + 1; END_TRANSACTION (a) BEGIN_TRANSACTION x = 0; x = x + 2; END_TRANSACTION (b) BEGIN_TRANSACTION x = 0; x = x + 3; END_TRANSACTION (c) Schedule 1 x = 0; x = x + 1; x = 0; x = x + 2; x = 0; x = x + 3 Legal Schedule 2 x = 0; x = 0; x = x + 1; x = x + 2; x = 0; x = x + 3; Legal Schedule 3 x = 0; x = 0; x = x + 1; x = 0; x = x + 2; x = x + 3; Illegal 并发事务的调度 并发控制方法 排序的并发控制算法可以分为悲观算法和乐观算法, 悲观算法: 基本原则是墨菲定律,即如果某事物可能出错,那么它就会出错。所以悲观算法中操作是在它们被执行前同步。 乐观算法: 基于错误一般不会发生的观点,所以操作被简单地执行,在事务结束后再进行同步。 作业 有如下事务,设它是以写前日志方式实现: x = 0; y = 0; BEGIN_TRANSACTION; x = x + 3; 1) y = (y + 5) * 2 2) x = x * y; 3) END_TRANSACTION; 如果在事务的操作3)处失败了, 请写出事务的写前日志,和回滚的过程。 一、事务概念与模型 1、基本概念 事务 与互斥一样,保护共享资源不被多个并发进程同时访问。 允许进程把访问和修改数据项的一组操作作为一项原子操作来完成。 进程如果在事务处理期间退出,所有数据都恢复到事务开始前的状态。这是事务本质属性。 2、事务实例 银行系统转帐 第一步从帐户1提取金额a 第二步向帐户2存入金额a 特点: 如果第一个操作完成,但第二个操作失败,则钱就消失了 这两个操作要么全有,要么全无 事务实例 超市库存存储 早期使用磁带存储交易的超市中,一天用两盘磁带存储当天的交易 第一盘记录早上开张前的库存,第二盘记录当天更新列表 晚上用这两盘磁带进行盘点更新库存。盘点更新的时候,如果有任何一个更新失败,磁带倒卷回去,全部重新开始,但不会造成损失。 利用磁带盘点更新的超市事务模型 3、事务原语 原语 描述 BEGIN_TRANSACTION 事务开始 END_TRANSACTION 终止事务并提交 ABORT_TRANSACTION 中止事务并恢复原来状态 READ 读操作 WRITE 写操作 典型的事务原语 4、使用原语定义事务 从济南飞往台北,一条可能的路线是从济南飞北京,从北京飞香港,再从香港飞台北。这个事务可以描述如下: 完整的事务 第三步失

文档评论(0)

yaocen + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档