一种基于有向图的高性能事务并发复制方法与流程

文档序号:35867024发布日期:2023-10-27 03:14阅读:24来源:国知局
一种基于有向图的高性能事务并发复制方法与流程

本发明涉及数据处理,尤其涉及一种基于有向图的高性能事务并发复制方法。使数据库主备节点之间的数据复制一致性。


背景技术:

1、当主节点执行事务时,主节点向从节点发送事务数据事件kvevent以及事务提交事件commitevent,从节点收到事务数据事件后kvevent,根据之间的先后顺序构建冲突关系,并且生成依赖关系,此时依赖关系可能会存在环形依赖。


技术实现思路

1、为了解决以上技术问题,本发明提供了一种基于有向图的高性能事务并发复制方法。对于环形依赖,从节点需要接收提交时间戳拆除重复的依赖关系,并且根据提交时间戳排序后,进行事务回放。对于有向图的多个强联通分量,可以进行并发回放处理。

2、本发明的技术方案是:

3、一种基于有向图的高性能事务并发复制方法,根据事务数据事件kvevent构建事务之间的依赖关系,根据事务提交事件commitevent消除事务的循环依赖关系,并且对于有向图的数个强联通分量实现并发回放。

4、进一步的,

5、通过有向图模拟事务之间的依赖关系;

6、通过强联通分量定义事务顶端;

7、通过并查集实现互相依赖的事务关系之间的合并;

8、通过拆分顶端事务与非顶端事务,引入并发实现事务之间互不阻塞;

9、通过拆分事务数据事件与事务提交事件,引入并发实现事件之间互不阻塞;

10、通过引入阻塞队列条件变量以及多个回放协程,实现并发的对数个可回放的强联通分量进行并发回放。

11、再进一步的,

12、从节点收到主节点发送的事务数据事件后,从节点构建range级别的冲突关系,并且根据range级别的冲突关系,生成全局的事务依赖有向图。

13、当事务出现强联通分量后,即事务之间的依赖关系成环,如果环出现在事务依赖关系的顶端,则事务回放会被卡住,对事务依赖关系进行拆分;当前事务依赖关系的顶端是一个环,则当前事务回放需优先处理顶端的强联通分量。

14、对从节点消费主节点的事务数据进行并发拆分,根据事件对应的事务是否从属于顶端联通分量,进行拆分。

15、通过并查集,可发现数个节点是否处于同一个强联通分量,并且如果存在新的节点同时联通两个强联通分量,此时对两个强联通分量进行合并。

16、当一个环接收到全部的事务数据事件kvevent以及全部的事务提交事件commitevent后,可对强联通分量内的事务节点进行排序,此时问题退化为一组数据排序;通过对数据节点按照提交时间戳排序,即可得到最终的事务回放顺序,则事务最终按照事务的提交顺序进行回放。

17、当出现数个强联通分量同时可回放时,需要构建一个阻塞队列,并通过该阻塞队列不断唤醒回放协程进行工作,对强联通分量内的事务节点进行按顺序回放;每个强联通分量分配一个回放协程,回放协程数量按照cpu核数进行分配,并且可调整数量。阻塞队列通过条件变量不断轮询数个回放协程提醒可以进行回放。

18、本发明的有益效果是

19、本发明提出在面向主从的事务一致性复制场景下,通过有向图寻找顶端的强联通分量、并查集实现有向图合并以及按照事务提交时间戳排序,实现有向图的并发处理。通过拆分顶端事务与非顶端事务,事务数据事件与事务提交事件,引入四组并发,以实现互相之间不会阻塞。通过条件变量以及阻塞队列,轮询多个回放协程,实现多个可回放强联通分量之间的并发回放效果。



技术特征:

1.一种基于有向图的高性能事务并发复制方法,其特征在于,

2.根据权利要求1所述的方法,其特征在于,

3.根据权利要求2所述的方法,其特征在于,

4.根据权利要求3所述的方法,其特征在于,

5.根据权利要求4所述的方法,其特征在于,

6.根据权利要求5所述的方法,其特征在于,

7.根据权利要求6所述的方法,其特征在于,

8.根据权利要求7所述的方法,其特征在于,

9.根据权利要求8所述的方法,其特征在于,


技术总结
本发明提供一种基于有向图的高性能事务并发复制方法,属于数据处理技术领域,本发明根据事务数据事件kvEvent构建事务之间的依赖关系,根据事务提交事件commitEvent消除事务的循环依赖关系,并且对于有向图的数个强联通分量实现并发回放。通过条件变量以及阻塞队列,轮询多个回放协程,实现多个可回放强联通分量之间的并发回放效果。

技术研发人员:陈磊,邱卓栋,吴婵,冯友旭
受保护的技术使用者:上海沄熹科技有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1