第八章分布式并发控制.ppt
上传人:sy****28 上传时间:2024-09-14 格式:PPT 页数:46 大小:1.6MB 金币:18 举报 版权申诉
预览加载中,请您耐心等待几秒...

第八章分布式并发控制.ppt

第八章分布式并发控制.ppt

预览

免费试读已结束,剩余 36 页请下载文档后查看

18 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第八章分布式并发控制主要内容简单地讲,并发就是多个事务的同时执行,并发能够提高系统的效率,但也可能会带来三种错误。并发控制的主要目的是保证事务的一致性和隔离性,最终保证数据的一致性。当分布事务并发执行时,并发控制既要实现分布事务的可串行性,又要保持事务具有良好的并发度,以保证系统具有良好的性能。并发控制问题并发控制问题(1)丢失修改错误并发控制问题(2)不可重复读错误并发控制问题(3)读脏数据错误并发控制问题并发控制就是利用正确的方式调度事务中所涉及的并发操作序列,避免造成数据的不一致性;防止一个事务的执行受到其它事务的干扰,保证事务并发执行的可串行性。事务执行过程的形式化描述通常以串行化理论来检验并发控制方法的正确性。依据串行化理论,在数据库上运行的一个事务的所有操作,按其性质分为读和写两类。一个事务Ti对数据项x的读操作和写操作记为Ri(x)和Wi(x)。一个事务Ti所读取数据项的集合,称为Ti的读集,所写的数据项的集合,称为写集,分别记为R(Ti)和W(Ti)。设有事务T1,完成的操作如下:T1:x=x+1;y=y+1;则T1可表示为:T1:R1(x)W1(x)R1(y)W1(y)。读/写集分别是:R(T1)={x,y}W(T1)={x,y}事务执行过程的形式化描述什么是历程?在一个数据库上,各个事务所执行的操作组成的序列,称为事务的历程,记为H,有时也称为调度,记录了各事务的操作顺序。对于一个历程上的任何两个事务:Ti和Tj,如果Ti的最后一个操作在Tj的第一个操作之前完成,或反之,Tj的最后一个操作在的Ti第一个操作之前完成,称这样的历程为串行历程。否则,称为并发历程。我们希望事务历程中的各个事务是并发的,但同时它们的执行结果又等价于一个串行历程,即事务并发历程是可串行化的。事务执行过程的形式化描述有事务T1和T2:T1:R1(x)R1(y)W1(x)W1(y)T2:R2(x)W2(y)历程H1和H2,分别为:H1:R1(x)R1(y)W1(x)W1(y)R2(x)W2(y)H2:R1(x)R2(x)R1(y)W1(x)W1(y)W2(y)可见,H1为串行历程,H2为并行历程。集中式数据库的可串行化问题无论在集中式数据库系统中,还是在分布式数据库系统中,并发调度都要解决并发事务对数据库的冲突操作问题,使冲突操作串行执行,非冲突操作并发执行。在分布式数据库系统中,事务是由分解为各个场地上的子事务的执行实现的。因此,分布式事务之间的冲突操作,就转化为了同一场地上的子事务之间的冲突操作,分布式事务的可串行性调度也转化为了子事务的可串行性调度问题。集中式数据库的可串行化问题(1)可串行化定义在集中式数据库系统中的一个历程H,如果等价于一个串行历程,则称历程H是可串行化的。由可串行化历程H所决定的事务执行顺序,记为SR(H)。集中式数据库的可串行化问题(2)事务的执行顺序分别属于两个事务的两个操作Oi和Oj,如果它们操作同一个数据项,且至少其中一个操作为写操作,则Oi和Oj这两个操作是冲突的。如:R1(x)和W2(x),W1(x)和W2(x)。在一个串行历程中,用符号“<”表示先于关系,对分别属于Ti和Tj的两个冲突操作Oi和Oj,若存在Oi<Oj,则Ti<Tj。集中式数据库的可串行化问题(2)历程等价的判别方法定理1:任意两个历程H1和H2等价的充要条件是在H1和H2中,每个读操作读出的数据是由相同的写操作完成的;在H1和H2中,每个数据项上最后的写操作是相同的。集中式数据库的可串行化问题(2)历程等价的判别方法定理1的引理:对于两个历程H1和H2,如果每一对冲突操作Oi和Oj,在H1中有Oi<Oj,在H2中也有Oi<Oj,则H1和H2是等价的。集中式数据库的可串行化问题(2)历程等价的判别方法例:H1:R1(x)R1(y)W1(x)W1(y)R2(x)W2(x)H2:R1(x)R1(y)W1(x)R2(x)W1(y)W2(x)H3:R1(x)R1(y)R2(x)W1(x)W1(y)W2(x)H1是等价历程。解析来判断和H2和是否与H3是否与H1等价。分布式事务的可串行化问题在分布式事务执行过程中,场地Si上的所有子事务的操作的执行序列,称为局部历程,用H(Si)表示。分布式事务可串行化判定定理:对于n个分布式事务T1,T2,…,Tn在m个场地上S1,S2,…,Sm上的并发执行序列,记为E。如果E是可串行化的,则必须满足以下条件:每个场地Si上的局部历程H(Si)是可串行化的;存在E的一个总序,使得在总序中,如果有Ti<Tj,则在各局部历程中必须有Ti<Tj。分