5章_分布式数据库中并发控制2012-12-29.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
通常,数据库总有若干个事务在运行,这些事务可能并发地存取相同 的数据,称为事务的并发操作。 当数据库中有多个事务并发执行时,系统必须对并发事务之间的相互 作用加以控制,这是通过并发控制机制来实现的。 并发控制就是负责正确协调并发事务的执行,保证这种并发的存取操 作不至于破坏数据库的完整性和一致性,确保并发执行的多个事务能 够正确地运行并获得正确的结果。 分布式数据库中的并发控制主要解决多个分布式事务对数据并发执行的正确性,保证数据库的完整性和一致性。 在分布式数据库中,允许数据被复制在多个站点上,当需要对数据执行更新操作时,也必须同时正确地更新它的所有副本。当来自同一站点或 /和不同站点的多个事务对数据进行并发操作时,如果不能正确处理, 数据库的完整性和一致性很容易遭到破坏。因此分布式并发控制比集中式并发控制更复杂。 对一组并发的分布式事务可能存在多种正确调度,分布式DBMS事务 管理器的并发控制机制应该采用那种代价最小的正确调度。与集中式数据库系统一样,可串行化调度也是分布式事务能否正确执行的基本方法。 事务的可串行性是指若干个事务并发执行的结果与按希望的顺序执行的结果相同时,称诸事务是可串行的。即,如果事务的并发执行能够通过以一定顺序串行执行就可使数据库处于新的一致状态,那么诸如丢失更新的问题就可能得到解决,这就是串行化理论的观点。 1. 分布式事务的调度定义: 在数据库系统中,事务访问数据库中数据的方式是通过发出读操作和写操作原语来实现的。通常以Ti表示某个事务,以Ri(x)表示该事务 对数据项x的读操作,以Wi(x)表示该事务对数据项x的写操作。 事务的一个操作序列称为一个调度(Schedule也称history),一般 以字母S表示。例如,关于两个事务的一个调度: S: R1(x),R2(y),W2(y),R2(x),W1(x),W2(x) 2. 操作冲突定义: 两个同时访问同一数据项x的操作,如果其中至少有一个是写操作, 那么称这两个操作是冲突的。 注意两点: 第一,只有两种冲突:读-写冲突(或写-读冲突)及写-写冲突。 第二,两个操作可以属于同一事务或者两个不同的事务,在后者的情况下,称为两个事务冲突。 如果有两个事务Ti 和Tj, Ti 的所有操作都先于Tj 的操作,那么这两个 事务为串行执行的,必定不会有冲突。 3. 分布式事务串行调度定义 设有一组事务T={T1,T2,……,Tn},如果事务Ti的所有操作都 先于事务Tj 的操作,记为 Ti Tj 。 若一个调度S,其每个事务的执行均有TiTj,i≠j,记为: S = { …… Ti Tj …… } 称 S 是一个串行调度。 对一个串行调度来说,它总是可以正确地执行,执行它可以使数据库 保持一致状态。原因如下: (1)如果S正确执行完成,则S中的每一个事务都被提交,由于事务 的原子性,保证了数据库的一致性。 (2)如果S在执行时发生故障,若Tk之前的事务都已提交,则夭折Tk ,使数据库的状态恢复到Tk前的状态。该状态的数据库也是一致的,因为Tk之前的事务都已提交。 (3)如果S在执行时发生故障,若Tk之前的事务有被夭折的,则夭折Tk,重做Tk以前已被提交的事务,撤销Tk以前被夭折的事务,此时数据库也是一致的。 所以,串行调度总是可以使数据库保持一致。但是串行调度时系统 的运行效率较低。 4. 可串行化调度 可串行化调度是让有冲突的操作串行执行,非冲突的操作并行执行,所以可串行化调度就是事务并发控制要寻求的基本方法。 因为分布式事务之间的冲突最终分解,转换为同一站点上子事务间 的冲突操作,而且由于分布式数据库中数据的复制,会使冲突的几率 比集中式更小,从而使并行执行的程度更高。 因此,通常分布式事务的可串行化调度可以转化为子事务的可串行 化调度,但涉及多副本选择时,分布式事务调度要多做一个选择副本 的操作,以避免冲突操作。 1. 事务的定义 一个事务是一个偏序集:Ti= { ?i , i },其中: (1)?i :操作符集合,包含{Ri[x], Wi[x]/ x为数据项 } U { Ai , Ci },

文档评论(0)

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

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

1亿VIP精品文档

相关文档