- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6事务管理资料
基于时间戳的方法 多版本时间戳排序协议 在事务的并发执行中保存数据项的多个拷贝。 每个write(Q)操作创建Q的一个新版本。 当进行read(Q)操作时,系统选择Q的一个版本进行读取。 并发控制机制必须保证用于读取的版本的选择能保持可串行性。 基于时间戳的方法 数据项的多个版本及其时间戳 思想:数据项有多个版本,对数据项的写不覆盖先前写入的值,直到所有可能需要先前的值的事务都已完成。 事务Ti的时间戳为TS(Ti)。 数据项Q的版本序列 Q1,Q2,…Qm。每个版本Qk包含 Content: Qk版本的值 W-timestamp(Qk) :创建Qk版本的事务的时间戳 R-timestamp(Qk):所有成功地读取Qk版本的事务的最大时间戳 基于时间戳的方法 多版本时间戳机制: 当事务Ti发出read( Q)或write( Q)请求时,系统找出Q的版本序列中具有小于或等于TS( Ti)的最大写时间戳的版本Qk, 1. 如果事务Ti发出read( Q),则返回值是Qk的内容。 2. 如果事务Ti发出write( Q), 且若TS( Ti) R-timestamp( Qk), 则事务Ti回滚; 否则,若TS( Ti)= W- timestamp( Qk), 则Qk的内容被覆盖; 否则,创建Q的一个新版本。 基于时间戳的方法 版本的删除: 不再需要的版本根据以下规则删除,假设有某数据项的两个版本Qk与Qj,这两版本Wtimestamp都小于系统中最老的事务的时间戳。那么Qk和Qj中较旧的版本可以删除。 多版本时间戳排序机制的优点: 读请求从不失败,从不等待。 多版本时间戳排序机制的缺点: 读取数据项需两次磁盘访问。 事务间的冲突通过回滚解决而不是等待。 基于有效性确认的方法* 基本思想:事务的执行分为三个阶段,在开始写阶段前,事务经过一个“有效性确认阶段”,这时它已经读的和将写的元素集合被用来与其它活跃事务的写集合做比较。如果存在事实上不可实现行为的风险,该事务就被回滚。 事务执行的三个阶段 事务Ti的三个时间戳 有效性确认规则 三种并发控制方法比较 基于有效性确认的方法 事务执行的三个阶段 读阶段:执行事务Ti,各数据项值被读入并保存在事务Ti的局部变量中。所有write操作都是对局部临时变量进行的,并不对数据库进行真正的更新。 有效性确认阶段:事务Ti进行有效性确认,判定是否可以将write操作所更新的临时局部变量值拷入数据库而不违反可串行性。 写阶段:若事务Ti已在第二步通过有效性确认,则实际的更新就可以写入数据库中。否则,事务Ti回滚。 基于有效性确认的方法 事务Ti的三个时间戳 Start(Ti):事务Ti开始执行的时间 Validation(Ti):事务Ti完成读阶段并开始其有效性确认的时间 Finish(Ti):事务Ti完成写阶段的时间 事务Ti的时间戳TS(Ti)= Validation(Ti) 基于有效性确认的方法 有效性确认规则 事务Tj要通过有效性测试,必须满足: 对于所有满足TS(Ti)TS(Tj)的事务Ti ,有Finish(Ti) Start(Tj) 或Ti所写的数据集与Tj所读数据集不相交,并且Ti 的写阶段在Tj开始其有效性检查阶段之前完成(Start(Tj) Finish(Ti) Validation(Tj))。 不能通过有效性测试的事务被回滚。 基于有效性确认的方法 三种并发控制方法比较 性能差异依赖于事务间的相互影响的高低 封锁推迟事务但避免回滚(即使当相互影响高时)。时间戳和有效性确认不推迟事务,但能导致其回滚,而这是一种更严重形式的推迟,且浪费资源。 如果相互影响低,则时间戳和有效性确认都不会导致太多的回滚,并且它们通常比封锁调度器开销小。 当回滚必要时,时间戳比有效性确认更早地捕获问题,有效性确认在考虑一个事务是否必须回滚前总是让其做完所有的内部工作。 插入与删除操作 删除 delete(Q):从数据库中删除数据项Q 。 两阶段封锁协议下,在一数据项可以删除之前,在该数据项上必须请求加排它锁。 时间戳排序协议下,必须执行类似于为write操作进行的测试。 插入 insert(Q):插入一个新的数据项Q到数据库中并赋予Q一个初值。 两阶段封锁协议下,如果Ti执行insert(Q)操作,Ti在新创建的数据项Q上被赋予排它锁。 时间戳排序协议下,如果Ti执行insert(Q)操作,R-timestamp与W-timestam
您可能关注的文档
最近下载
- 青少年人际关系与心理健康.docx VIP
- 平高集团GW4-126VI高压交流隔离开关安装使用说明书.docx VIP
- 三级养老护理员国家职业技能培训模块一项目三任务二协助老年人进行雾化吸入.pptx VIP
- 湖南省长沙2025年七年级下学期语文期末试卷含答案.pptx VIP
- 七年级语文秋季开学第一课(统编版2024):“语”你相伴,趣味无穷(快闪+15种趣味游戏).pptx VIP
- 用眼卫生公开课.pptx VIP
- 氪安全技术说明书MSDS.docx VIP
- 英文版我的暑假生活.pptx VIP
- 检验科病例讨论PPT课件.pptx VIP
- 人教版(2024新版)九年级上册化学全册教案教学设计.docx
文档评论(0)