在运用X锁和S锁对数据对象加锁时,还需要约定一些规则 ,例如何时申请X锁或S锁、持锁时间、何时释放等。称这些规则为封锁协议(Locking Protocol)。对封锁方式规定不同的规则,就形成了各种不同的封锁协议。不同的封锁协议,在不同的程度上为并发操作的正确调度提供一定的保证。
一、一级封锁协议
一级封锁协议是:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。事务结束包括正常结束(COMMIT)和非正常结束(ROLLBACK)。
一级封锁协议可以防止丢失修改,并保证事务T是可恢复的。使用一级封锁协议可以解决丢失修改问题。
在一级封锁协议中,如果仅仅是读数据不对其进行修改,是不需要加锁的,它不能保证可重复读和不读“脏”数据。
二、二级封锁协议
二级封锁协议是:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,读完后方可释放S锁。
二级封锁协议除防止了丢失修改,还可以进一步防止读“脏”数据。但在二级封锁协议中,由于读完数据后即可释放S锁,所以它不能保证可重复读。
三、三级封锁协议
三级封锁协议是:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。
三级封锁协议除防止了丢失修改和不读“脏”数据外,还进一步防止了不可重复读。
上述三级协议的主要区别在于什么操作需要申请封锁,以及何时释放。
参考资料:
http://zhidao.baidu.com/question/29901226
http://e-learning.zjgsu.edu.cn/moodle/mod/resource/view.php?inpopup=true&id=596
http://202.207.137.111/sjkwz/htm/8.3.htm
http://course.cug.edu.cn/cug/database/netclass/CHAPT8/8.3/8.3.htm
分享到:
相关推荐
通过具体的例子实现。通过三级封锁机制实现并发操作导致的数据不一致(丢失更新问题、读过时的数据、读“脏”数据)。
二级封锁施工方案.doc
封锁协议PPT学习教案.pptx
既有线封锁施工三会.docx
一种智能无线报警施封锁及施封锁开闭锁方法与流程.docx
组策略USB端口封锁。组策略USB端口封锁。组策略USB端口封锁。
封锁键盘鼠标的源程序,希望可以帮助大家解决问题!!!
自己开发的USB软件,密码BaoSight ,用于封锁电脑的USB和注册表。防止病毒浸入机房网络。
免费_打破超星封锁——PDG转PDF方法
拓展游戏穿越封锁线.pdf
突破公司封锁上QQ,可以上QQ聊天,淘宝什么的都可以。
行业分类-电子-一种电子铅封锁
既有线封锁施工三会-施工人身安全方案.pdf
动物疫区隔离和封锁.pptx
封锁
冲过封锁线(大班体育).docx
IP封锁程序实例源代码 需要的自己下
基于CPLD的IGBT驱动信号封锁保护电路的设计,徐华中,郑慧勤,介绍了一种基于复杂可编程逻辑器件(CPLD)的绝缘栅双极晶体管(IGBT)驱动信号封锁保护电路的设计,该电路以ALTERA公司MAX II系列CPLD芯
冲破电信MAC封锁方法