[发明专利]一种基于日志解析同步的并行执行方法和数据同步系统在审
| 申请号: | 202010500197.0 | 申请日: | 2020-06-04 |
| 公开(公告)号: | CN111858505A | 公开(公告)日: | 2020-10-30 |
| 发明(设计)人: | 付铨;孙峰;彭青松;刘启春 | 申请(专利权)人: | 武汉达梦数据库有限公司 |
| 主分类号: | G06F16/17 | 分类号: | G06F16/17;G06F16/178;G06F16/23;G06F16/27 |
| 代理公司: | 深圳市六加知识产权代理有限公司 44372 | 代理人: | 向彬 |
| 地址: | 430000 湖北省武汉市东湖新技术开*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 日志 解析 同步 并行 执行 方法 数据 系统 | ||
1.一种基于日志解析同步的并行执行方法,其特征在于,所述并行执行方法包括:
日志接收线程在获取到提交操作后,将所述提交操作所属的待执行事务分发至相对应的事务执行线程,其中,每一个事务执行线程负责一个待执行事务的入库处理;
从所述待执行事务中取出待执行操作,所述事务执行线程获取当前待执行操作的操作类型和所述当前待执行操作所涉及的对象;
根据所述当前待执行操作的操作类型构造适合于所述当前待执行操作的目标锁;
基于所述目标锁为所述当前待执行操作所涉及的对象上锁。
2.根据权利要求1所述的并行执行方法,其特征在于,所述根据所述当前待执行操作的操作类型构造适合于所述当前待执行操作的目标锁包括:
若所述当前待执行操作为DML操作,则构造适合于所述当前待执行操作的共享锁;
若所述当前待执行操作为DDL操作,则构造适合于所述当前待执行操作的排他锁。
3.根据权利要求2所述的并行执行方法,其特征在于,所述事务执行线程获取当前待执行操作的操作类型和所述当前待执行操作所涉及的对象包括:
判断当前待执行操作的操作类型;
若所述当前待执行操作为DDL操作,则判断所述DDL操作的操作类型;
若所述DDL操作为重命名操作,则获取所述重命名操作所对应的新对象名称和旧对象名称,所述新对象名称和所述旧对象名称均为所述重命名操作所涉及的对象,以便同时上锁。
4.根据权利要求3所述的并行执行方法,其特征在于,所述判断所述DDL操作的操作类型之后还包括:
当所述DDL操作为触发器操作时,则获取所述触发器操作所对应的触发器名称和触发器所归属的表名,所述触发器名称和触发器所归属的表名均为所述触发器操作所涉及的对象,以便同时上锁。
5.根据权利要求3所述的并行执行方法,其特征在于,所述判断所述DDL操作的操作类型之后还包括:
当所述DDL操作为创建同义词操作,则获取所述创建同义词操作所对应的同义词名称和所述创建同义词操作所指向的对象名称,所述同义词名称和所述创建同义词操作所指向的对象名称均为所述创建同义词操作所涉及的对象,以便同时上锁。
6.根据权利要求1~5任一项所述的并行执行方法,其特征在于,所述基于所述目标锁为所述当前待执行操作所涉及的对象上锁包括:
当所述当前待执行操作为DML操作时,判断基于所述目标锁是否能够为所述当前待执行操作成功上锁;
若可以成功上锁,则从所述待执行事务中取出下一个待执行操作,进行上锁;
若上锁失败,则等待直至完成上锁。
7.根据权利要求6所述的并行执行方法,其特征在于,所述基于所述目标锁为所述当前待执行操作所涉及的对象上锁包括:
当所述当前待执行操作为DDL操作时,判断基于所述目标锁是否能够为所述当前待执行操作成功上锁;
若上锁失败,则等待直至完成上锁;
若上锁成功,则执行所述当前待执行操作,判断所述当前待执行操作是否能够执行成功;
若执行成功,则接收日志接收线程分发的新的待执行事务。
8.根据权利要求7所述的并行执行方法,其特征在于,所述判断所述当前待执行操作是否能够执行成功之后还包括:
若执行失败,则定位所述当前待执行操作所属的事务执行线程在执行线程链表中的位置;
从后往前对所述执行线程链表中正在执行的事务进行检查;
根据检查结果选择性重新执行所述当前待执行操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉达梦数据库有限公司,未经武汉达梦数据库有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010500197.0/1.html,转载请声明来源钻瓜专利网。





