[发明专利]一种基于范围行锁的并行执行方法及设备在审
| 申请号: | 202111501972.5 | 申请日: | 2021-12-09 |
| 公开(公告)号: | CN114296886A | 公开(公告)日: | 2022-04-08 |
| 发明(设计)人: | 孙峰;余院兰;彭青松;刘启春 | 申请(专利权)人: | 武汉达梦数据库股份有限公司 |
| 主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/445;G06F16/27 |
| 代理公司: | 深圳市六加知识产权代理有限公司 44372 | 代理人: | 向彬 |
| 地址: | 430000 湖北省武汉市东湖新技术开*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 范围 并行 执行 方法 设备 | ||
1.一种基于范围行锁的并行执行方法,其特征在于,包括:
将单事务合并为多事务且设置多事务的提交LSN以及并行LSN,并将多事务注册到执行线程链表;
单事务处理步骤:执行线程提取多事务中的下一个单事务开始执行并将该单事务的提交LSN作为分隔线LSN;
通过对操作类型、并行LSN大小、分隔线LSN大小以及ROWID范围锁是否冲突的判断来进入相对应的步骤;
线程提交步骤:判断当前单事务是否为最后一个单事务,若是则执行线程提交操作,若不是则重新进入单事务处理步骤。
2.根据权利要求1所述的基于范围行锁的并行执行方法,其特征在于,所述将单事务合并为多事务且设置多事务的提交LSN以及并行LSN,并将多事务注册到执行线程链表具体包括:
目标端数据同步服务接收到源端操作后,对待执行的事务按提交操作的LSN大小顺序存入待执行链表;
执行线程从待执行链表中按事务提交LSN的顺序摘取N个单事务合并成一个多事务,并将最后一个单事务的提交LSN设置为多事务的提交LSN,然后根据多事务的提交LSN在执行线程链表中进行注册;
执行线程将多事务中的第一个单事务的提交LSN设为并行LSN,其它在该执行线程之后的执行线程准备执行的操作的LSN若小于该并行LSN,则进行并行执行。
3.根据权利要求2所述的基于范围行锁的并行执行方法,其特征在于,所述单事务处理步骤还包括:判断当前执行线程的唤醒链表,将唤醒类型为执行等待并且执行LSN小于分隔线LSN的执行线程唤醒。
4.根据权利要求3所述的基于范围行锁的并行执行方法,其特征在于,所述通过对操作类型、并行LSN大小、分隔线LSN大小以及ROWID范围锁是否冲突的判断来进入相对应的步骤具体包括:
操作类型判断步骤:根据当前单事务的下一个操作的操作类型来选择进入并行LSN判断步骤或线程提交步骤;
并行LSN判断步骤:根据当前操作的LSN以及所有排在当前执行线程之前的执行线程的并行LSN的大小来选择进入操作类型判断步骤或分隔线LSN判断步骤;
分隔线LSN判断步骤:根据当前操作的LSN以及排在当前执行线程之前的执行线程的分隔线LSN的大小来选择进入冲突检测步骤或等待唤醒;
冲突检测步骤:根据当前操作的ROWID以及当前执行线程之前的执行线程的ROWID范围锁来判断是否冲突以选择进入操作类型判断步骤或等待唤醒。
5.根据权利要求4所述的基于范围行锁的并行执行方法,其特征在于,所述操作类型判断步骤具体包括:判断当前单事务的下一个操作的操作类型,若操作类型为提交操作则进入线程提交步骤;否则进入并行LSN判断步骤。
6.根据权利要求5所述的基于范围行锁的并行执行方法,其特征在于,所述并行LSN判断步骤具体包括:判断当前操作的LSN是否小于所有排在当前执行线程之前的执行线程的并行LSN,若是则执行当前操作并提取当前操作的ROWID并入当前执行线程的ROWID范围锁,然后进入操作类型判断步骤;若否则进入分隔线LSN判断步骤。
7.根据权利要求6所述的基于范围行锁的并行执行方法,其特征在于,所述分隔线LSN判断步骤具体包括:判断当前操作的LSN是否小于所有排在当前执行线程之前的执行线程的分隔线LSN,若是则进入冲突检测步骤;若否则从后向前查找到第一个分隔线LSN小于当前操作的LSN的执行线程,并将当前执行线程添加到该查找到的执行线程的唤醒链表中,且将唤醒类型标记为执行等待。
8.根据权利要求7所述的基于范围行锁的并行执行方法,其特征在于,所述冲突检测步骤具体包括:提取当前操作的ROWID,并判断该ROWID是否落在当前执行线程之前的执行线程的ROWID范围锁内,若是即表示存在冲突,则将当前执行线程添加到存在冲突的执行线程的唤醒链表中,且将唤醒类型标记为提交等待;若否即表示不存在冲突,则执行当前操作,并提取当前操作的ROWID并入当前执行线程的ROWID范围锁,然后进入操作类型判断步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉达梦数据库股份有限公司,未经武汉达梦数据库股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111501972.5/1.html,转载请声明来源钻瓜专利网。





