[发明专利]一种改进的内存数据库封锁方法无效
| 申请号: | 201010176179.8 | 申请日: | 2010-05-13 |
| 公开(公告)号: | CN101853279A | 公开(公告)日: | 2010-10-06 |
| 发明(设计)人: | 金城;周游弋;薛向阳 | 申请(专利权)人: | 复旦大学 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 上海正旦专利代理有限公司 31200 | 代理人: | 陆飞;盛志范 |
| 地址: | 20043*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 改进 内存 数据库 封锁 方法 | ||
技术领域
本发明属于计算机内存数据库技术领域,具体涉及一种基于传统封锁方式的改进的内存数据库封锁方法。
背景技术
在数据库系统中,事务可以一个个地串行执行,即每个时刻只有一个事务运行,其他事务必须等到这个事务结束之后方能运行。为了充分利用系统资源,发挥数据库共享资源的特点,应该允许多个事务并行地执行。当多个用户并发地存取数据库时就会产生多个事务同时存取同一个数据的情况。若对并发操作不加控制,就可能会存取和不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制。对于内存数据库系统而言,数据加锁开销与处理开销相当,而且由于内存的存取速度比磁盘块的多,事务的执行时间相对磁盘数据库则大大缩短;相应的,锁的占有时间也就大大缩短,故细粒度锁的基本优点与必要性也随之丧失。因此,在内存数据库中一般采用较大粒度锁,如元组级或关系级,这无疑降低了并发机制的复杂度,减轻了系统负担,从而使系统总体性能提高[1]。目前在内存数据库系统中普遍采用的是“单写多读”并发控制策略,利用内存数据库事务执行时间短的特点,通过牺牲一定并发读来提高事务执行效率。这种方式在应对大量并发的短小事务时效率并不十分理想,本文通过引入粗粒度意向锁和事务自有锁粒度变换两种方式来改进这种并发控制方式,提高内存数据库在应对高并发短小事务时的整体性能。
发明内容
本发明的目的在于提出一种改进的内存数据库封锁方法,要解决的问题是,在传统内存数据库封锁机制中,对于数据交集不大的短小事务之间的并发读支持过低,大量的实际浪费在读事务等待写事务提交的过程中,降低了内存数据库的事务吞吐率。
本发明提出的改进的内存数据库封锁方法,是利用粗粒度意向锁和锁粒度转换改进传统的封锁方式,提高内存数据库的事务事项效率。
本发明的基本内容如下:
A,允许事务在内存数据库上加两种粗粒度意向锁标记,一种是数据库级读意向锁标记,表示事务对数据库中的关系表有读请求意向;另一种是数据库级写意向锁标记,表示事务对数据库中的关系表有写请求意向;
B,事务的封锁粒度根据数据库级意向锁标记自行转变,利用数据交集不重合的特殊条件对不同的关系表加不同种类的锁标记;
c,允许多个读事务与数据交集不重叠的单个写事务并行操作。
本发明除了数据库级读写锁和表级读写锁两种粒度的锁,还引入另外一种粗粒度意向锁——数据库级读写意向锁,该锁用于表示事务在数据库级别上的操作意向(读取或者写入),可以作为其他事务操作数据库上锁之前的重要参考,事务可以根据需要在操作时加不同类型的锁。在此基础上,为了进一步提高并发度,引入了锁粒度动态变换的机制,即数据库级锁和表级锁可以根据事务对关系共享程度的需求进行锁粒度的动态智能转换。因为数据库级锁比表级锁开销小,因此当不需要较细的锁粒度时使用数据库级锁。如果一个或者多个事务在访问数据库时被其他事务的锁阻塞,数据库级锁会被分解为表级锁,并且再次尝试加锁。当不需要细粒度锁时,表级锁被转化为数据库级锁。过程可以由图1的流程图来表示。以读事务为例,当事务需要读取某些数据记录时,系统会提前分析事务中涉及到的数据表,首先对数据库请求数据库级读意向锁,然后检查数据库是否存在全局的写意向锁,如果存在,则说明有写事务正在更新数据库的某一部分并且尚未结束,此时系统会检查读事务相关的数据表是否被写事务加锁,如果写事务正在更新相关表,那么读事务不得不等待写事务完成;如果相关表没有被写事务加锁,则读事务可以并发的上读锁读取数据。写事务请求加锁的过程基本与此类似。区别是写事务之间是绝对互斥的。不存在两个写事务同时向数据库写入的情况。
附图说明
图1是封锁步骤流程图。
图2是与传统封锁机制的比较说明图(考察吞吐量和平均反应时间)。
图3是与传统封锁机制的比较说明图(考察事务更新率和平均反应时间)。
具体实施方式
参照图1的封锁步骤流程示意图,按照以下步骤操作:
1.读事务封锁过程如下:
8)分析事务中需要使用的关系表集合TS,可通过事务代码中涉及到的数据库名和关系表名之间获得。
9)在没有申请过数据库级读意向锁的情况,对于内存数据库加读意向锁标记。
10)检查内存数据库上是否有数据库级写意向锁标记。
11)若3)中检查到有数据库级写意向锁标记,则检查关系表集合TS中的关系表是否有写锁标记。
12)若4)中检查到TS中有关系表具有写锁标记,则本次事务操作被阻塞,等待其他事务通知其恢复执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于复旦大学,未经复旦大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010176179.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数据库审计方法和设备
- 下一篇:一种自适应功能模组的系统、方法及移动终端





