[发明专利]事务执行方法、装置、计算设备及存储介质有效
申请号: | 202111214946.4 | 申请日: | 2021-10-19 |
公开(公告)号: | CN115098537B | 公开(公告)日: | 2023-03-10 |
发明(设计)人: | 熊亮春;潘安群;雷海林 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F16/2453 | 分类号: | G06F16/2453;G06F16/242 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 孙晓丽 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 事务 执行 方法 装置 计算 设备 存储 介质 | ||
本申请公开了一种事务执行方法、装置、计算设备及存储介质,属于数据库技术领域。本申请通过以数据块作为处理DDL事务的最小单元,使得在DDL事务执行中断时,能够方便地定位到执行中断前处理完毕的最后一个数据块,从而无需整体回滚该DDL事务,而是从下一个数据块开始继续执行该DDL事务,也避免了从头开始重做DDL事务的冗余工作量,提高了DDL语句所对应的DDL事务的成功率,且能够适用于各类业务场景下DDL事务的推进,如在智慧交通场景下新增停车位的描述信息属于一种DDL事务,该方法能够显著提升此类DDL事务的成功率,提高了数据库的资源利用率。
技术领域
本申请涉及数据库技术领域,特别涉及一种事务执行方法、装置、计算设备及存储介质。
背景技术
随着数据库技术的发展,SQL(Structured Query Language,结构化查询语言)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。在SQL命令中涉及一类DDL(Data Definition Language,数据定义语言)语句,DDL语句是用于修改数据库中的对象(如表、索引、列、触发器等)的定义的语句。
目前,在对数据库中的某个对象执行DDL语句时,通常需要对该对象加锁,以阻塞在该DDL语句执行期间其他业务事务对该对象中数据的修改,这样是为了保证DDL语句所操作的对象中所存储数据的一致性。如果在DDL语句执行期间,由于某种故障导致DDL语句的执行线程崩溃,那么数据库系统需要对该DDL语句进行重做,针对该DDL语句操作的对象所存储的数据量较大(例如存储了海量数据的表)的情况,数据库系统重做该DDL语句的代价较高,换言之,DDL语句的成功率较低,数据库资源利用率较低。
发明内容
本申请实施例提供了一种事务执行方法、装置、计算设备及存储介质,能够提高DDL事务的成功率、提高数据库的资源利用率。该技术方案如下:
一方面,提供了一种事务执行方法,该方法包括:
响应于执行中断的数据定义语言DDL事务符合恢复条件,确定所述DDL事务在执行中断前处理完毕的最后一个数据块;
从所述最后一个数据块的下一个数据块开始,继续执行所述DDL事务;
响应于对所述DDL事务操作的各个数据块均处理完毕,提交所述DDL事务。
一方面,提供了一种事务执行装置,该装置包括:
确定模块,用于响应于执行中断的数据定义语言DDL事务符合恢复条件,确定所述DDL事务在执行中断前处理完毕的最后一个数据块;
执行模块,用于从所述最后一个数据块的下一个数据块开始,继续执行所述DDL事务;
提交模块,用于响应于对所述DDL事务操作的各个数据块均处理完毕,提交所述DDL事务。
在一种可能实施方式中,所述确定模块包括:
获取单元,用于获取所述DDL事务的管理数据,所述管理数据用于记录所述DDL事务处理完毕的各个数据块;
查询单元,用于从所述管理数据中,查询得到所述最后一个数据块。
在一种可能实施方式中,所述管理数据为动态数组,所述动态数组中存储有所述DDL事务处理完毕的各个数据块的数据块标识;
所述查询单元用于:
将所述动态数组中最后一个元素内存储的数据块标识所对应的数据块,确定为所述最后一个数据块。
在一种可能实施方式中,在对任一个数据块中存储的各条数据记录处理完毕时,将所述任一个数据块的数据块标识记录在所述管理数据中。
在一种可能实施方式中,所述装置还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111214946.4/2.html,转载请声明来源钻瓜专利网。