基础3 封锁协议

作者: 进击的小鹿 | 来源:发表于2017-09-30 09:11 被阅读32次

在运用X锁和S锁对数据对象加锁时,还需要约定一些规则 ,例如何时申请X锁或S锁、持锁时间、何时释放等。称这些规则为封锁协议(Locking Protocol)。对封锁方式规定不同的规则,就形成了各种不同的封锁协议。不同的封锁协议,在不同的程度上为并发操作的正确调度提供一定的保证。
   一、一级封锁协议
   一级封锁协议是:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。事务结束包括正常结束(COMMIT)和非正常结束(ROLLBACK)。
   一级封锁协议可以防止丢失修改,并保证事务T是可恢复的。使用一级封锁协议可以解决丢失修改问题。
   在一级封锁协议中,如果仅仅是读数据不对其进行修改,是不需要加锁的,它不能保证可重复读和不读“脏”数据。
   二、二级封锁协议
   二级封锁协议是:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,读完后方可释放S锁。
   二级封锁协议除防止了丢失修改,还可以进一步防止读“脏”数据。但在二级封锁协议中,由于读完数据后即可释放S锁,所以它不能保证可重复读。
  三、三级封锁协议
  三级封锁协议是:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。
  三级封锁协议除防止了丢失修改和不读“脏”数据外,还进一步防止了不可重复读。
  上述三级协议的主要区别在于什么操作需要申请封锁,以及何时释放。

相关文章

  • 基础3 封锁协议

    在运用X锁和S锁对数据对象加锁时,还需要约定一些规则 ,例如何时申请X锁或S锁、持锁时间、何时释放等。称这些规则为...

  • 封锁协议

    MySQL的锁系统:shared lock和exclusive lock(共享锁和排他锁,也叫读锁和写锁,即rea...

  • IOS开发 UITableView协议

    本节学习内容: 1.UItableView协议基础 2.UITablView协议的功能 3.UITableView...

  • http协议

    1.http协议建立在tcp/ip协议基础之上 2.http协议全称超文本传输协议 3.http协议1.0,1.1...

  • 系统原理-封锁

    封锁的类型以及粒度,两段锁协议,隐式和显示锁定。 一、封锁粒度 MySQL 中提供了两种封锁粒度: 行级锁 表级锁...

  • 三级封锁协议

    锁的类型:基本的封锁类型有两种:排它锁(X锁)和共享锁(S锁)X锁,是事务T对数据A加上X锁时,只允许事务T读取和...

  • http和tcp协议

    1.TCP协议对应于传输层,而HTTP协议对应于应用层 2.Http协议是建立在TCP协议基础之上 3.Http是...

  • 区块链的底层设施及基础协议层应用

    底层设施及基础协议层,包括基础协议、加密技术和区块链硬件、涵盖底层协议的代码及基础支持硬件。 2.5.1.1 基础...

  • FTP 网络协议学习

    目录 协议基础 对比 使用踩坑 协议基础 File Transport Protocal 使用FTP协议实际上是去...

  • 网络安全编程基础 之 协议基础

    协议基础 TCP/IP 协议 TCP/IP 协议(Transmission Control Protocol/In...

网友评论

    本文标题:基础3 封锁协议

    本文链接:https://www.haomeiwen.com/subject/dwnwsxtx.html