执行步骤: (1) 设RT=min(Rij), WT= min(Wij) (2) 按下法处理缓冲区中的Rij和Wij a. 若队列中有 (Rij) WT的Rij , 则顺序执行这些Rij,执行完删掉 b. 若队列中有 (Wij) RT的Wij, 则顺序执行这些Wij,执行完删掉 (3) 修改 RT=min(Rij), WT=min(Wij) ,此时的Rij和Wij是队列中剩余的 (4) 重复上述(2)和(3), 直到没有满足条件的操作, 或者: a. 若某个或某些R队列为空时, RT=0; b. 若某个或某些W队列为空时, WT=0 4.3 保守时标法 4 分布式数据库系统并发控制的时标技术 基本思想 保存了已更新数据项的旧值 维护一个数据项的多个版本 通过读取数据项的较老版本来维护可串行性,使得系统可以接受在其他技术中被拒绝的一些读操作 写数据项时,写入一个新版本,老版本依然保存 缺点 需要更多的存储来维持数据库数据项的多个版本 模式分类 基于时标排序 基于两阶段封锁 5.1 多版本概念和思想 5 分布式数据库系统并发控制的多版本技术 数据项X的多版本 X1, X2, X3,…, Xk 系统保存的值 Xi的值 两种时标 Read_TS(Xi): 读时标,成功读取版本Xi的事务的时标,最大的一个 Write_TS(Xi): 写时标,写入版本Xi的值的事务的时标 5.2 基于时标的多版本技术 5 分布式数据库系统并发控制的多版本技术 多版本规则 如果事务T发布一个write_item(X)操作,并且X的版本Xi具有X所有版本中最高的write_TS(Xi),同时write_TS(Xi) = TS(T)且read_TS(Xi)TS(T),那么撤销并回滚T;否则创建X的一个新版本,并且令read_TS(Xi) = write_TS(Xi) = TS(T) 如果事务T发布一个read_item(X)操作,并且X的版本Xi具有X所有版本中最高的write_TS(Xi),同时write_TS(Xi) = TS(T),把Xi的值返回给事务T,并且将read_TS(Xi)的值置为TS(T)和当前read_TS(Xi)中较大的一个 5.2 基于时标的多版本技术 5 分布式数据库系统并发控制的多版本技术 图示 写值 v1 v2 v3 … Vn-1 Vn 5 10 20 92 100 若读 TS(Ri)=95, 则读 92, Vn-1 的值 若写TS(Wk)=93, 则出现了 v1 v2 v3 … Vn-1 Vn 5 10 20 92 100 93 v 于是要拒绝TS(Wk), 否则 TS(Ri)=95读的就是Vn-1, 而不是v的值, 但是按规定 TS(Ri)=95应该读的是v值 三种锁方式 读,写,验证 四种锁状态 读封锁(read_locked) 写封锁(write_locked) 验证封锁(certify_locked) 未封锁(unlocked) 锁相容性 标准模式锁相容性(写锁和读锁) 验证模式锁相容性(写锁、读锁和验证锁) 5.3 采用验证锁的多版本两阶段封锁 5 分布式数据库系统并发控制的多版本技术 5.3 采用验证锁的多版本两阶段封锁 5 分布式数据库系统并发控制的多版本技术 (a) 读/写封锁模式的相容性表 读 写 读 写 是 否 否 否 读 写 验证 读 写 是 是 否 是 否 否 验证 否 否 否 (b) 读/写/验证封锁模式的相容性表 多版本2PL的思想 当只有一个单独的事务T持有数据项上的写锁时,允许其他事务T’读该项X,这是通过给予每个项X的两个版本来实现的 一个版本X是由一个已提交的事务写入的 另一个版本X’是每个事务T获得该数据项上写锁时创建的、 当事务T持有这个写锁时,其他事务可以继续读X的已提交版本 事务T可以写X’的值,而不影响X已提交版本的值 但是,一旦T准备提交,它必须在能
您可能关注的文档
最近下载
- 行者讲课脉法下篇.doc VIP
- (人教版)数学一年级上册寒假应用题“天天练”作业设计,含30份题组,附参考答案.doc
- 多参数监护仪技术参数和要求.doc VIP
- HL德國創新機能家電烤箱HL-840用户手册.pdf
- (高清!)2025年3月29日河北省事业单位联考C类《职测》真题及答案.pdf VIP
- ZORRO遥控器中文说明书.pdf
- 多参数监护仪技术参数.doc VIP
- 05R417-1 室内管道支吊架建筑工程图集 高清.docx VIP
- 2025届安徽省江南十校高三下学期第一次联考(一模)数学试题含答案.pdf VIP
- 三年级上册数学思维训练题30题,拓展孩子思维能力201123.pdf VIP
原创力文档

文档评论(0)