[发明专利]并发控制方法及装置有效
申请号: | 200910160804.7 | 申请日: | 2009-07-23 |
公开(公告)号: | CN101615203A | 公开(公告)日: | 2009-12-30 |
发明(设计)人: | 印和平;常二鹏;卢勤元;丁奇鹏;陈河堆 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京康信知识产权代理有限责任公司 | 代理人: | 余 刚;吴孟秋 |
地址: | 518057广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 并发 控制 方法 装置 | ||
技术领域
本发明涉及数据库领域,具体而言,涉及一种并发控制方法及 装置。
背景技术
数据库是一个共享资源,在数据库系统中同一时刻可能存在多 个并发执行的事务。当多个用户并发地对数据库进行存取操作时, 就会造成多个事务同时存取同一数据库的情况。比如事务T1、T2 在并发执行时可能存在以下三种冲突:
1)WR(Write/Read,写-读)冲突,即T2读入刚被T1修改过 且尚未提交的数据,这样T2读入的是脏数据,也称作“脏读”;
2)RW(Read/Write,读-写)冲突,即T2修改刚被T1读入的 数据且T1尚未结束,这样T1若再次读入同一对象,则其值会发生 变化,也称作“不可重复读”;
3)WW(Write/Write,写-写)冲突,即T2覆写刚被T1修改 过的值且T1尚未结束,这样会导致数据的不一致性。
串行调度可保证数据的一致性,但不利于系统性能,因此DBMS (Database Management System,数据库管理系统)须提供事务并发 控制机制。可串行化是并发事务正确性的准则,故一个给定的并发 控制,当且仅当它是可串行化时,才是正确控制。
Strict 2PL(Strict 2-Phase Locking,严格的二阶段锁)协议保证 了并发控制的可串行性,其内容为:1)读/写数据库对象前,必须 先加读/写锁;2)事务执行完(提交或回滚),再释放其拥有的锁。
相关技术中提供了一种并发控制方法,该方法通过对被操作的 数据库记录上锁,并让其他并发事务排队等待,来防止该记录同时 被其他事务修改。
发明人发现相关技术中的并发控制方法使得所有请求对同一数 据库记录进行操作的其他并发事务均进入等待队列,直至被上锁事 务执行结束将锁释放后,其他并发事务才得以再对数据库进行操作, 导致事务控制的并发性较低,并发控制效果较差。
发明内容
本发明旨在提供一种并发控制方法和装置,能够解决相关技术 中的并发控制方法使得所有请求对同一数据库记录进行操作的其他 并发事务均进入等待队列,直至被上锁事务执行结束将锁释放后, 其他并发事务才得以再对数据库进行操作,导致事务控制的并发性 较低,系统性能较差的问题。
在本发明的实施例中,提供了一种并发控制方法,包括以下步 骤:根据锁关系表判断事务的待操作位置是否有与待授予锁相冲突 的锁,锁关系表用于保存事务与锁的关系;根据判断结果对事务授 予锁,并执行事务;当事务执行结束时,释放事务持有的锁,并将 释放的锁中无需继续等待的锁授予其他并发事务。
优选地,在上述并发控制方法中,锁关系表具体包括:事务列 表,用于保存并发执行且未提交的事务;锁哈希表,用于跟踪排队 等待的锁;锁链表,用于关联事务与锁。
优选地,在上述并发控制方法中,根据判断结果对事务授予锁, 并执行事务具体包括:若事务的待操作位置无锁,对事务授予锁, 并执行事务。
优选地,在上述并发控制方法中,根据判断结果对事务授予锁, 并执行事务具体包括:若事务的待操作位置已有锁,检查已有锁与 待授予锁是否存在冲突;根据检查结果对事务授予锁,并执行事务。
优选地,在上述并发控制方法中,根据检查结果对事务授予锁, 并执行事务具体包括:若已有锁与待授予锁不存在冲突,对事务授 予锁,并执行事务。
优选地,在上述并发控制方法中,根据检查结果对事务授予锁, 并执行事务具体包括:若已有锁与待授予锁存在冲突,设置事务排 队等待,直至重新获得待授予锁;执行事务。
优选地,在上述并发控制方法中,执行事务包括以下至少之一: 进行增加操作、进行删除操作、进行修改操作、进行读取操作。
优选地,在上述并发控制方法中,事务执行结束包括:事务完 成提交或事务完成回滚。
优选地,在上述并发控制方法中,将释放的锁中无需继续等待 的锁授予其他并发事务具体包括:对释放的锁所在锁链表中的每个 锁,检测是否有等待标志;当有等待标志,且被检测的锁与其他并 发事务的同一操作位置上其他锁不存在锁类型冲突时,将被检测的 锁授予其他并发事务,唤醒其他并发事务继续执行,锁类型包括共 享锁和排它锁。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910160804.7/2.html,转载请声明来源钻瓜专利网。