[发明专利]事务执行方法、装置、计算设备及存储介质有效
申请号: | 202111214946.4 | 申请日: | 2021-10-19 |
公开(公告)号: | CN115098537B | 公开(公告)日: | 2023-03-10 |
发明(设计)人: | 熊亮春;潘安群;雷海林 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F16/2453 | 分类号: | G06F16/2453;G06F16/242 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 孙晓丽 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 事务 执行 方法 装置 计算 设备 存储 介质 | ||
1.一种事务执行方法,其特征在于,所述方法包括:
响应于执行中断的数据定义语言DDL事务符合恢复条件,确定所述DDL事务在执行中断前处理完毕的最后一个数据块;
从所述最后一个数据块的下一个数据块开始,继续执行所述DDL事务;
响应于对所述DDL事务操作的各个数据块均处理完毕,提交所述DDL事务。
2.根据权利要求1所述的方法,其特征在于,所述确定所述DDL事务在执行中断前处理完毕的最后一个数据块包括:
获取所述DDL事务的管理数据,所述管理数据用于记录所述DDL事务处理完毕的各个数据块;
从所述管理数据中,查询得到所述最后一个数据块。
3.根据权利要求2所述的方法,其特征在于,所述管理数据为动态数组,所述动态数组中存储有所述DDL事务处理完毕的各个数据块的数据块标识;
所述从所述管理数据中,查询得到所述最后一个数据块包括:
将所述动态数组中最后一个元素内存储的数据块标识所对应的数据块,确定为所述最后一个数据块。
4.根据权利要求2或3所述的方法,其特征在于,在对任一个数据块中存储的各条数据记录处理完毕时,将所述任一个数据块的数据块标识记录在所述管理数据中。
5.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
响应于对所述DDL事务的进度查询指令,基于所述管理数据和所述DDL事务所需处理的数据块总数,获取所述DDL事务的数据进度;
向触发所述进度查询指令的设备返回所述DDL事务的数据进度。
6.根据权利要求5所述的方法,其特征在于,所述基于所述管理数据和所述DDL事务所需处理的数据块总数,获取所述DDL事务的数据进度包括:
将所述管理数据中记录的数据块数量除以所述数据块总数所得的数值,确定为所述DDL事务的数据进度。
7.根据权利要求1所述的方法,其特征在于,所述从所述最后一个数据块的下一个数据块开始,继续执行所述DDL事务包括:
对所述下一个数据块或所述下一个数据块之后的任一个数据块,读取所述数据块,处理所述数据块中存储的每条数据记录。
8.根据权利要求1或7所述的方法,其特征在于,所述从所述最后一个数据块的下一个数据块开始,继续执行所述DDL事务包括:
基于所述DDL事务的并行度,从所述最后一个数据块的下一个数据块开始,对所述DDL事务尚未处理的各个数据块进行并行处理。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
在并行处理完毕时,获取所述DDL事务的第一数据块集合和第二数据块集合,所述第一数据块集合用于记录所述DDL事务在开始执行时所需操作的数据表中的各个数据块,所述第二数据块集合用于记录所述DDL事务在并行处理完毕时所需操作的数据表中的各个数据块;
在所述第一数据块集合和所述第二数据块集合一致的情况下,提交所述DDL事务;
在所述第一数据块集合和所述第二数据块集合不一致的情况下,确定所述第二数据块集合相较于所述第一数据块集合中新增的数据块,在对所述新增的数据块处理完毕后,提交所述DDL事务。
10.根据权利要求1所述的方法,其特征在于,在所述DDL事务为在线DDL事务的情况下,所述恢复条件包括:所述DDL事务操作的数据表对应的数据字典中包含所述DDL事务操作的对象的定义,且所述DDL事务操作的数据块或所述数据块的至少一个副本可读。
11.根据权利要求1所述的方法,其特征在于,在所述DDL事务为离线DDL事务的情况下,所述恢复条件包括:所述DDL事务操作的原数据表和所述DDL事务创建的临时数据表均存在。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111214946.4/1.html,转载请声明来源钻瓜专利网。