[发明专利]一种数据加锁及解锁的方法及装置在审
申请号: | 201510686560.1 | 申请日: | 2015-10-21 |
公开(公告)号: | CN106610865A | 公开(公告)日: | 2017-05-03 |
发明(设计)人: | 刘化伟;刘照星 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50 |
代理公司: | 北京国昊天诚知识产权代理有限公司11315 | 代理人: | 许志勇 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 加锁 解锁 方法 装置 | ||
技术领域
本申请涉及信息技术领域,尤其涉及一种数据加锁及解锁的方法及装置。
背景技术
随着信息化社会的发展,人们的工作和生活会产生大量的数据信息,而简单原始的数据管理方式(如,人工管理,文件系统),并不能满足人们的方便快捷的管理大量数据的需求,于是如何充分有效地管理和利用各类信息资源,成为人们在信息化社会中首要解决的问题。其中,数据库技术便是现在人们通用的解决如何管理大量数据的方法,这也使得数据库技术成为管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。
现有数据库技术中,其特点之一便是数据共享性高,由于数据库系统中存储管理的数据是面向整体使用用户的,所以数据可以被多个用户或应用程序共享使用。而当数据被调用后,该段数据可能会被修改,若一个数据同时被多个用户调用,则会出现返回的数据不一致,导致该数据出现错误的情况。现有技术中一般使用内存锁或者行锁来保证数据库系统中数据的一致性,减少数据库系统中出现脏数据的问题。
但是,在使用内存锁锁定资源时,当对该资源的处理完毕后,需要手动解除该内存锁,由于内存锁的释放必须在数据库事务提交之前,否则会形成死锁而无法正常释放,而释放内存锁与提交事务之间存在时间差,这就使得其他的线程有可能在该资源的内存锁解除后、事务提交之前抢占该资源。相当于该资源同时被两个不同的线程抢占了,而当两个线程返回不同的结果时,该资源就会出现错误,从而导致数据库系统出现脏数据、数据一致性低的问题。
在使用行锁时,行锁会锁定数据库系统中某一个表中的某一个数据,当多个线程抢夺同一个数据时,只有一个线程可以锁定该数据,其他线程只能等待该数据的行锁解除,而该行锁的解除只有等到该线程所在的事务提交后才会解除。这就使得,若出现一个需要长时间处理的事务,其中的线程采用行锁对某个数据加锁时,其他需要调用该数据的线程只能一直等待,而不能进行其他操作,直到锁定该数据的行锁解除,从而导致数据库事务的执行效率低的问题。
发明内容
本申请实施例提供一种数据加锁及解锁的方法及装置,用以解决现有技术中使用内存锁导致数据库系统出现脏数据,数据一致性低,使用行锁导致数据库事务的执行效率低的问题。
本申请实施例提供的一种数据加锁及解锁的方法,包括:
确定数据库事务需要调用的数据集;
采用内存锁和行锁对所述数据集进行加锁;
当所述数据库事务执行完毕后,判断所述内存锁是否释放;
若是,则允许提交所述数据库事务,并在提交所述数据库事务时释放所述行锁;
若否,则不允许提交所述数据库事务。
本申请实施例提供的一种数据加锁及解锁的装置,包括:
确定模块,用于确定数据库事务需要调用的数据集;
加锁模块,用于采用内存锁和行锁对所述数据集进行加锁;
判断提交模块,用于当所述数据库事务执行完毕后,判断所述内存锁是否释放,若是,则允许提交所述数据库事务,并在提交所述数据库事务时释放所述行锁,若否,则不允许提交所述数据库事务。
本申请实施例提供一种数据加锁及解锁的方法及装置,该方法通过同时采用内存锁和行锁对数据库事务需要调用的数据集进行加锁,使得其他事务或线 程在对所述已加锁的数据集调用时,会因为内存锁的机制,直接返回调用失败的结果,而不会长时间等待,所以其他需要调用该数据集的线程可以继续执行其他操作,从而提高了数据库事务的执行效率。并且,在本申请实施例中该数据库事务处理完毕后,需要先确认用户手动释放内存锁后,才允许该数据库事务提交。而在该内存锁释放之后,该数据库事务调用的数据集仍然被行锁锁定,在行锁的机制中,只有在该数据库事务提交时该行锁才会自动释放,因此其他事务或线程不会在该数据库事务提交前调用到该数据集,只能在该数据库事务提交后(同时行锁自动释放后)调用到该数据集,所以避免了数据库系统中因为单独使用内存锁而导致数据库系统中数据一致性低的问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的数据加锁及解锁的过程;
图2为本申请实施例提供的数据加锁及解锁的装置示意图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510686560.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:虚拟机可信迁移方法及装置
- 下一篇:一种片上网络任务调度方法及装置
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置