当多个事务在数据库中并发执行时,数据的一致性可能受到破坏。系统有必要控制各事务之间的相互作用,这是通过并发控制机制的多种机制中的一种来实现的。
避免事务"饿死",授权加锁的条件:不存在在数据项Q上持有与M型锁冲突的锁的其他事务;不存在等待对数据项Q加锁且先于Ti申请加锁的事务。
常用的机制是各种封锁协议,时间戳排序,有效性检查,多版本机制。
封锁协议是一组阐明了事务合适对数据库中的数据项加锁解锁的规则。两阶段封锁协议仅在一个事务未曾释放任何数据项时允许该事务封锁新数据项。该协议保证可串行性,但不能避免死锁。在缺少有关数据项存取方式的信息是,两阶段封锁协议对保证可串行化来说不仅是必要的而且是充分的。
树形协议规则:1、Ti的首次加锁可以对任何数据项进行。2、此后Ti对数据项Q加锁的前提是Ti持有Q的父项上的锁。3、对数据项解锁可以随时进行。4、数据项被Ti加锁并解锁后,Ti不能再对该数据项加锁。
时间戳排序机制通过事先在每对事务之间选择一个顺序来保证可串行性。系统中的每个事务对应一个唯一的固定的时间戳。事务的时间戳决定了事务的可串行化顺序。这样,如果事务Ti的时间戳小于事务Tj时间戳,则该机制保证产生的调度等价于事务Ti出现在事务Tj之前的一个串行调度。该机制通过回滚违反该次序的事务来保证这一点。
Thomas写规则:假设事务Ti发出write(Q)操作:
1、若TS(Ti)<R-timestamp(Q),则Ti产生的Q值是先前所需要的值,但系统已假定该值不会被产生。因此,write操作被拒绝,Ti回滚。
2、若TS(Ti)<W-timestamp(Q),则Ti试图写入的Q值已过时。因此,这个write操作可悲忽略。
3、其它情况是执行write操作,将W-timestamp(Q)视为TS(Ti)。
在大部分事务是只读事务,这样事务见冲突频度较低的情形下,有效性检查机制是一个适当的并发控制机制。系统中的每个事务对应一个唯一的固定的时间戳,串行性次序是由事务的时间戳决定的。在该机制中,事务不会被延迟。不过,事务要完成必须通过有效性检查,如果事务未通过有效性检查,则盖世五回滚到初始状态。
某些情况下把多个数据项聚为一组,将它们作为聚集数据项来处理效果可能更好,这就导致了多级粒度。小数据项嵌套于大数据项之中。这种层次结果可以图形化地表示为树。封锁按从根结点到叶结点的顺序进行,解锁则按从叶结点到根结点的顺序进行。
多版本并发控制机制基于每个事务写数据项时为该数据项创建一个新版本。读操作发出时,系统选择其中的一个版本进行读取。利用时间戳,并发控制机制保证确保可串行性的方式选取要读取的版本。
多版本最常用的技术是时间戳。对于系统中的每个事务Ti,我们将一个静态的唯一的时间戳与之关联,即为TS(Ti)。对于每个数据项Q,有一个版本序列<Q1,Q2,…Qm>与之关联。
防止死锁的一种方法是使用抢占与事务回滚;另一种方法是死锁检测与恢复机制。系统处于死锁状态当且仅当等待图中包含环
转自:http://www.cnblogs.com/ceys/archive/2012/03/16/2400745.html
分享到:
相关推荐
第一讲大数据高并发架构实战案例分享-概述第一讲大数据高并发架构实战案例分享-概述第一讲大数据高并发架构实战案例分享-概述
一套开源的服务器集群分布式大数据高并发的快速开发框架,使用mongodb内存数据库,二级缓存技术。 java 版下载 https://git.oschina.net/bigcore/bigcore
闲暇时间写的,详细介绍了网站大数据和高并发解决方案,一部分是个人经验也做了实践,一部分是参考一些资料整理的,总结也是提高自己的一种方式,可以让自己的理解更清晰。
一套开源的服务器集群分布式大数据高并发的快速开发框架,使用mongodb内存数据库,二级缓存技术。
1.大数据高并发架构实战案例分享-概述 2.Piranha安装快速搭建LVS负载均衡集群 3.LVS负载均衡DR模式安装调试介绍 4.LVS负载均衡深入进阶实战 5.LVS调度策略及负载均衡原理深入 6.LVS深入及NAT集群调试 7.Nginx反向...
一套开源的服务器集群分布式大数据高并发的快速开发框架,使用mongodb内存数据库,二级缓存技术。
分布式大数据高并发的web开发框架.pdf
大数据高并发架构实战案例分享-ppt资源
大数据应用案例大数据培训视频教程大数据高并发架构实战案例.docx
大数据-算法-实时事务并发控制算法优化.pdf
5.3大数据高并发-分布式队列1
数据库的并发控制 数据库并发控制的含义 事务 并发控制的必要性 基于封锁的并发控制技术 基于时间戳的并发控制技术
5.4大数据高并发-分布式&微服务1
5.1大数据高并发-其余解决方案1
5.0大数据高并发-集群覆盖均衡1
大数据高并发实战架构(Mongodb实现)、网站大访问量、mysql索引优化、反向代理
数据库并发控制PPT 并发控制的机制和方法
高并发大数据在线学习系统中的关键技术研究.docx高并发大数据在线学习系统中的关键技术研究.docx高并发大数据在线学习系统中的关键技术研究.docx高并发大数据在线学习系统中的关键技术研究.docx高并发大数据在线学习...
大数据高并发架构实战案例分享,多节课程进行分享。
高并发、大数据企业源码