混合乐观锁和悲观锁的数据库事务并发控制方法技术

技术编号:25988891 阅读:45 留言:0更新日期:2020-10-20 18:56
本发明专利技术公开了一种混合乐观锁和悲观锁的数据库事务并发控制方法,属一种数据库读写控制方法,该方法为在存储范围中的每个分片中集成锁,且全局使用一张锁表,在锁表中记录所有分片的锁情况;在读取存储范围分片的数据对象前,首先在锁表中查询该分片的数据对象是否已被其他读写事务锁定,如已被锁定,则当前读取操作被阻塞,然后重复当前读取操作,且如当前读取操作被阻塞的时间超过给定时限,此时悲观锁失效,乐观锁介入,继续读取当前分片的单行数据;通过在数据库事务并发控制方法将悲观锁与乐观锁两种语义混合在一起,当两者并存时,不仅保留了悲观锁防止读写操作冲突的优点,还通过切换乐观锁最大限度地提高事务并发度,从而提高性能。

【技术实现步骤摘要】
混合乐观锁和悲观锁的数据库事务并发控制方法
本专利技术涉及一种数据库读写控制方法,更具体的说,本专利技术主要涉及一种混合乐观锁和悲观锁的数据库事务并发控制方法。
技术介绍
数据库应用中为防止数据读写发生冲突,多使用悲观锁与乐观锁语义来对数据库中的数据读写进行控制,一般数据库本身锁的机制都是基于悲观锁的机制实现的,从而可完全保证数据的独占性和正确性,因为每次请求都会先对数据进行加锁,然后进行数据操作,最后再解锁,而加锁释放锁的过程会造成消耗,所以性能不高。乐观锁是一种并发类型的锁,其本身不对数据进行加锁通而是通过业务实现锁的功能,不对数据进行加锁就意味着允许多个请求同时访问数据,同时也省掉了对数据加锁和解锁的过程。可有效提升性能,但由于冲突判断在数据提交后才集中进行处理,因此在大批量数据处理请求提交时容易出现卡顿,并且悲观锁和乐观锁是互斥的两种并发控制技术,非此即彼。采用了悲观锁实现的数据库不能同时使用乐观锁机制,反之亦然。然而悲观锁在并发冲突低概率的大多数应用场景中,并发性和性能都不如乐观锁。而乐观锁则反之,在并发冲突高概率的应用场景中,性能低本文档来自技高网...

【技术保护点】
1.一种混合乐观锁和悲观锁的数据库事务并发控制方法,其特征在于所述方法包括如下步骤:/n在存储范围中的每个分片中集成锁,且全局使用一张锁表,在所述锁表中记录所有分片的锁情况;/n在读取存储范围分片的数据对象前,首先在锁表中查询该分片的数据对象是否已被其他读写事务锁定,如未被锁定,则读取操作继续,在事务提交时不在进行冲突检查;如已被锁定,则当前读取操作被阻塞,然后重复当前读取操作,且如当前读取操作被阻塞的时间超过给定时限,此时悲观锁失效,乐观锁介入,继续读取当前分片的数据对象;/n所述乐观锁为允许多个任务同时对同一对象进行读写操作,在数据提交时再验证数据是否存在冲突。/n

【技术特征摘要】
1.一种混合乐观锁和悲观锁的数据库事务并发控制方法,其特征在于所述方法包括如下步骤:
在存储范围中的每个分片中集成锁,且全局使用一张锁表,在所述锁表中记录所有分片的锁情况;
在读取存储范围分片的数据对象前,首先在锁表中查询该分片的数据对象是否已被其他读写事务锁定,如未被锁定,则读取操作继续,在事务提交时不在进行冲突检查;如已被锁定,则当前读取操作被阻塞,然后重复当前读取操作,且如当前读取操作被阻塞的时间超过给定时限,此时悲观锁失效,乐观锁介入,继续读取当前分片的数据对象;
所述乐观锁为允许多个任务同时对同一对象进行读写操作,在数据提交时再验证数据是否存在冲突。


2.根据权利要求1所述的混合乐观锁和悲观锁的数据库事务并发控制方法,其特征在于:所述存储范围包括数据库的全部数据或部分数据。


3.根据权利要求1所述的混合乐观锁和悲观锁的数据库事务并发控制方法,其特征在于:所述数据对象包括单行数据与数据范围,所述单行数据通...

【专利技术属性】
技术研发人员:刘明陈国武何枋玲
申请(专利权)人:贵州易鲸捷信息技术有限公司
类型:发明
国别省市:贵州;52

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1