[发明专利]事务并发控制方法、装置、终端设备及介质有效
| 申请号: | 201911353223.5 | 申请日: | 2019-12-25 |
| 公开(公告)号: | CN111090663B | 公开(公告)日: | 2023-07-07 |
| 发明(设计)人: | 王健星;朱鸿斌;夏之春 | 申请(专利权)人: | 上海金仕达软件科技股份有限公司 |
| 主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F16/21 |
| 代理公司: | 深圳中一联合知识产权代理有限公司 44414 | 代理人: | 符亚飞 |
| 地址: | 200120 上海市浦*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 事务 并发 控制 方法 装置 终端设备 介质 | ||
本申请适用于数据库技术领域,尤其涉及一种事务并发控制方法、装置、终端设备及介质。该方法通过获取针对目标对象的写事务,并对记录区中目标对象对应的存储区域进行相应操作;获取针对目标对象的读事务的目标版本信息,据此从日志区中获取与目标版本信息对应的历史版本数据,历史版本数据为目标对象在记录区产生的不同版本的历史数据。本申请在记录区和日志区两个区域中分别进行针对同一目标对象的写事务与读事务,可以使得写事务与读事务并发进行,在记录区进行写事务不会影响读事务对日志区数据的读取,同时,日志区中存储有在记录区出现过了历史版本数据,不影响读事务对历史版本数据的读取,避免了脏读和幻读,可以实现数据的重复读。
技术领域
本申请属于数据库技术领域,尤其涉及一种事务并发控制方法、装置、终端设备及介质。
背景技术
原始的内存数据库数据访问中,采用读写锁的形式,每次读数据时,都会检查是否有写锁,若有,就会等待写结束;同时写进程写数据时,都会把所有的读进程阻塞,优先把数据写完,造成读进程一段时间不能提供服务。而目前的内存数据库已经支持多进程并发的一写多读模式,即一个进程进行读写,其它进程只读,在实现读写进程同时进行的过程中,会出现脏读的问题,为了避免出现脏读,一般内存数据库中采用的事务隔离级别为Readcommitted即一个事务要等另一个事务提交后才能读取数据,但一个事务有可能读到至少两种不同的结果,存在幻读的问题。
发明内容
本申请实施例提供了一种事务并发控制方法、装置、终端设备及介质,可以解决现有的内存数据库并发读写时存在幻读的问题。
第一方面,本申请实施例提供了一种事务并发控制方法,所述事务并发控制方法包括:
获取针对目标对象的写事务;
根据所述写事务,对记录区中所述目标对象对应的存储区域进行相应操作;
获取针对所述目标对象的读事务;
根据所述读事务,获取所述目标对象的目标版本信息;
根据所述目标对象的目标版本信息,从日志区中获取与所述目标对象的目标版本信息对应的历史版本数据,其中,所述历史版本数据为所述目标对象在所述记录区产生的不同版本的历史数据。
第二方面,本申请实施例提供了一种事务并发控制装置,所述事务并发控制装置包括:
写事务获取模块,用于获取针对目标对象的写事务;
操作模块,用于根据所述写事务,对记录区中所述目标对象对应的存储区域进行相应操作;
读事务获取模块,用于获取针对所述目标对象的读事务;
版本信息获取模块,用于根据所述读事务,获取所述目标对象的目标版本信息;
版本数据获取模块,用于根据所述目标对象的目标版本信息,从日志区中获取与所述目标对象的目标版本信息对应的历史版本数据,其中,所述历史版本数据为所述目标对象在所述记录区产生的不同版本的历史数据。
第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的事务并发控制方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的事务并发控制方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面所述的事务并发控制方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海金仕达软件科技股份有限公司,未经上海金仕达软件科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911353223.5/2.html,转载请声明来源钻瓜专利网。





