文档详情

12分布式数据库中的并发控制摘要.pptx

发布:2017-04-07约1.82万字共110页下载文档
文本预览下载声明
并发控制的概念和理论 分布式数据库系统并发控制的封锁技术 分布式数据库系统中的死锁处理 分布式数据库系统并发控制的时标技术 分布式数据库系统并发控制的多版本技术 分布式数据库系统并发控制的乐观方法 分布式数据库中的并发控制 1 通常,数据库总有若干个事务在运行,这些事务可能并发地存取相同的数据,称为事务的并发操作。 当数据库中有多个事务并发执行时,系统必须对并发事务之间的相互作用加以控制,这是通过并发控制机制来实现的。 并发控制就是负责正确协调并发事务的执行,保证这种并发的存取操作不至于破坏数据库的完整性和一致性,确保并发执行的多个事务能够正确地运行并获得正确的结果。 分布式数据库中的并发控制解决多个分布式事务对数据并发执行的正确性,保证数据库的完整性和一致性。比集中式并发控制更复杂。 2 集中式DB环境 T1 T2 … Tn DB (一致性 约束) 3 分布式DB环境 X Y Z T1 T2 4 多处理器 并发执行 5 单处理器 非并发执行 6 UPDATE x 70 t6 FIND x t2 200 t7 UPDATE x t5 x:=x*2 t4 x:=x-30 t3 FIND x t1 100 t0 更新事务T2 数据库中X的值 更新事务T1 时间 注:其中FIND表示从数据库中读值,UPDATE表示把值写回到数据库 T1T2,结果140,T2T1,结果170, 得到结果是200,显然是不对的,T1在t7丢失更新操作。 并发控制问题之一:丢失更新 7 FIND x t2 70 t5 UPDATE x t4 x:=x-30 t3 FIND x t1 100 t0 更新事务T2 数据库中A的值 更新事务T1 时间 注:在时间t5事务T2仍认为x的值是100 并发控制问题之二:不一致分析 8 100 t6 x:=x-10 t2 ROLLBACK t5 FIND x 90 t4 UPDATE x t3 FIND x t1 100 t0 更新事务T2 数据库中A的值 更新事务T1 时间 注: 事务T2依赖于事务T1的未完成更新 并发控制问题之三:依赖于未提交更新(读脏数据) 9 事务Ti Ti= { ?i, i } 其中: ?i : 操作符集合:{Ri(x), Wi(x) } U {Ai, Ci } Ai, Ci 是最后的操作符,只能是其一 i : (冲突)操作有序执行,Ri(x) i Wi(x) 或 Wi(x) i Ri(x) 10 操作符集 读Ri(x)和写Wi(x)动作序列 冲突动作 R1(A) W2(A) W1(A) W2(A) R1(A) W2(A) 一个调度 事务的一个操作序列称为一个调度,一般用S表示 比如,S: R1(x),R2(y),W2(y),R2(x),W1(x),W2(x) 11 T1 T2 1 (T1) a ? X 5 (T2) c ? X 2 (T1) X ? a+100 6 (T2) X ? 2c 3 (T1) b ? Y 7 (T2) d ? Y 4 (T1) Y ? b+100 8 (T2) Y ? 2d 先序关系 例子 已知:站点1有数据X,站点2有数据Y 约束:X=Y 12 (X站点) (Y站点) 1 (T1) a ? X 2 (T1) X ? a+100 5 (T2) c ? X 3 (T1) b ? Y 6 (T2) X ? 2c 4 (T1) Y ? b+100 7 (T2) d ? Y 8 (T2) Y ? 2d 初值: X=Y=0 , 结果: X=Y=200 调度S1 事务内 事务间 13 令T= {T1,T2,…,Tn} 是一组事务. T上的调度 S 是具有如下顺序关系T的偏序,即S={?T ,T} : (1) ?T= ? Ti (2) T ? ? i (3) 对于任意一组冲突操作 p,q ?S, 存在 p q 或 q p关系 并发调度定义 i=1 N N i=1 14 调度 一组事务的调度必须包含这些事务的所有操作 调度中某个事务的操作顺序必须保持与该事务原有的顺序相同 串行调度 一个事务的第一个动作是在另一个事务的最后一个动作完成后开始. 即调度中事务的各个操作不会交叉, 每个事务相继执行. 一致性调度 调度可以使得数据库从一个一致性状态转变为另一个一致性状态,则称调
显示全部
相似文档