- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 分布式并发控制 计算机科学与技术学院 5.1 问题提出与抽象 一 读写异常问题 二 分布式数据库管理系统的抽象 1 数据库与DM(Data Managers) 数据库可以看作是一个逻辑数据项集合,记作X,Y,Z ,…….每一个逻辑数据项可以存储在系统的任何DM中,也可以冗余地存储在多个DM中。TM(Transaction Managers)。 5.2 用于并发控制的DDBS抽象结构 一、 集中式事务处理模式 一个集中式DBMS可以看作是在一个站点上的只有一个TM机构的管理软件。 ⑴当一个事务T发出BEGIN操作时,TM给T初始化一个私有工作区。 ⑵当T发出READ(X)时,TM检查私有工作区是否包含X的一个副本。如果包含X的一个副本值并返回到T,否则TM发命令到相应的DM,检索X的一个副本值并返回到T,这个操作记为: DM-READ(X). 二、 分布事务处理模型 1. DDBMS中的私有工作区 一个事务T的私有工作区通常并不在与T的TM相同的场所,而是分布在包含T所访问数据的所有场所中。 2. DDBMS中的两阶段提交问题 在DDBMS中,由于可能一个场所失效而系统的其它部分继续工作,使得原子提交问题变得更加复杂与困难。 在分布式DBMS中,引入TM与DM之间的预提交操作(pre-commit)。这个操作使DM从私有工作区复制数据项到安全存储器。每个接收与提交的DM能够确定在提交活动中还有哪些DM参加。如果T的TM在发生所有的DM-WRITE之前失效,则尚未收到DM-WRITE的那些DM能够识别这些情况,并查询是否有DM收到DM-WRITE。如果有DM接收到DM-WRITE,则剩余的这些DM就像它们也接收到命令一样的进行执行。 三、分布式事务处理模式 ⑴当一个事务T发出BEGIN操作时,T的TM给T初始化一个私有工作区; ⑵当T发出READ(X)时,TM检查私有工作区是否存在X的一个副本。如果包含X的一个副本,T就使用这个副本的值,否则TM选择X的某个存储副本Xi,DM从数据库中检索这个副本的值,把这个值存入私有工作区 5.3 分布式并发控制理论 一、 无干扰执行与可串行性 考虑事务的一个集合T1 …..Tn,令E0是这些事务的一个执行。E0最保险的实现策略是串行执行,即每一个事务是在下一个事务开始之前完成。如果这些事务的另一个执行E1中有事务的并行执行,但E1和E0在输出和对数据库的影响上都有相同的结果,则称E1是可串行的(Serilizable)。数据库并发控制的目标就是只允许可串行的执行出现。 计程:用一组计程(Log)做事务的执行模型,其中每一个DM有一个计程,每个计程指出在一个DM中DM-READ和DM-WRITE的执行次序。 二、 操作的冲突与执行的等价 1 操作冲突的类型 (1)读写冲突 对数据项X ,Ti发出DM-READ (X),Tj发出DM-WRITE (X),Ti,Tj次序不同则Ti执行结果不同 。 (2)写写冲突 对数据项X,如果事务Ti发出DM-WRITE(X),Tj也发出DM-WRITE(X)。执行的次序不同,执行的结果不一样。 三、 并发控制处理模式 1. 关系( ) 令E是由一组计程所表示的执行,在E中可能有三种二元关系值得关注,分别记作 RW, WR, WW。对每一对事务Ti,Tj,他们的定义为: 2.读写和写写同步的结合模式 定理5-2 ,令— RWR和—WW与执行E相关联,如果下列条件满足,则E是可串行的。 所有的— RWR和—WW关系是无回路的; 存在一个总事务次序,使得这个次序即与所有——RWR关系相一致,也与所有—WW关系一致。 5.4 两相封锁并发控制算法 一 锁的粒度(Granularity) (1) 表锁 (2) 页锁 (3) 行锁 (4) 项锁 二 锁类型 (1)读锁 S(Shared) (2)写锁 X(eXclusive) (3)更新锁 U(Update) 三 锁的相容性 四、两相封锁(2PL)算法思想 2PL算法对并发的控制,通过两个相对独立的阶段进行: 第一阶段:称为生长阶段,在这个阶段,一个事务得到越来越多的锁,而不释放任何锁; 第二阶段:称为紧缩阶段,如果一个事务释放一个锁,则进入紧缩阶段。在紧缩阶段,这个事务逐步释放锁,并禁止它得到另外的锁; 当事务终止或撤销时,所剩余的锁自动释放。 五、2PL算法的基本实现 无副本,且把数据项X的调度程序布置在同X所在的DM中,通过DM的操作隐含地实现锁的请求和释放。 (1)读锁可以隐含地DM-READ操作来请求 。 (2)写锁可隐含地由Pr
原创力文档


文档评论(0)