一种基于事务合并的并行执行方法及设备技术

技术编号:32966698 阅读:11 留言:0更新日期:2022-04-09 11:24
本发明专利技术涉及一种基于事务合并的并行执行方法及设备。其方法部分主要包括:将单事务合并为多事务且设置多事务的提交LSN、第一事务A以及并行LSN;将第一事务A设置为当前事务B;通过判断当前事务B的下一个操作以及查找并行LSN小于当前待执行操作LSN的执行线程C,来进入相对应的步骤;判断当前单事务是否为最后一个单事务,若是则执行线程提交操作,若不是则取下一个单事务设置为第一事务A并重新进入设置当前事务B步骤。本发明专利技术采用的方法可以优化事务合并以后那些无冲突数据同步操作的并行度,从而提升数据同步的性能。从而提升数据同步的性能。从而提升数据同步的性能。

【技术实现步骤摘要】
一种基于事务合并的并行执行方法及设备


[0001]本专利技术涉及数据库数据处理
,特别是涉及一种基于事务合并的并行执行方法及设备。

技术介绍

[0002]目前基于日志解析的异构数据库复制技术应用广泛。这种技术在源端捕捉数据库的日志,解析出日志中的INSERT、UPDATE、DELETE操作,然后发送到目标端,目标端对日志信息进行逆向生成,恢复成SQL语句方式,然后使用数据库通用接口,应用到目标数据库,实现数据复制。因此,在数据库实时复制过程中,目标端的执行效率是影响数据同步性能的重要因素之一。
[0003]目标端数据库上执行同步事务时,需要以事务的提交顺序为基准来执行事务操作,不然前后有关联的操作执行时就会发生错误,从而影响同步的正确性。为了追求数据同步的性能,执行同步事务时往往会采取事务合并的策略,把小事务合并为大事务,不仅可以通过合并不同事务的相同操作来减少执行的次数,还可以减少事务提交的次数,从而达到提升同步性能的目的。另外还可以通过增加执行事务的线程数,采用多线程并行的策略同时对多个合并以后的事务进行入库,进一步的提升同步的性能。但是在同时采用了事务合并和并行执行的策略以后,为了防范和解决并行执行时带来的数据冲突问题,现有的方案都是按事务提交的顺序来执行操作,但这在一定程度上反而降低了并行执行的效率。
[0004]鉴于此,如何克服现有技术所存在的缺陷,同时保证合并事务的高效执行以及数据同步的一致性,是本
待解决的难题。

技术实现思路

[0005]针对现有技术的以上缺陷或改进需求,本专利技术提供一种基于事务合并的并行执行方法及设备。为了陈述方便,本专利技术源端日志中的事务称为“单事务”,多个单事务合并以后形成的事务称为“多事务”。事务合并和多线程并行执行是数据同步提升同步性能的常用手段,本专利技术以第一执行区间(并行LSN之前的区间)为例来定制一种并行执行的策略,在按单事务提交顺序执行时,如果当前单事务操作执行受到其它并行执行事务的约束而要等待时,跳过当前单事务的执行,取下一个单事务的操作进行判断它是否满足并行执行的条件,如果满足,则执行,否则同样跳过,一直遍历到最后一个单事务,以达到提升同步性能的目的。
[0006]本专利技术实施例采用如下技术方案:
[0007]第一方面,本专利技术提供了一种基于事务合并的并行执行方法,包括:
[0008]将单事务合并为多事务且设置多事务的提交LSN、第一事务A以及并行LSN;
[0009]设置当前事务B步骤:将第一事务A设置为当前事务B;
[0010]通过判断当前事务B的下一个操作以及查找并行LSN小于当前待执行操作LSN的执行线程C,来进入相对应的步骤;
[0011]线程提交步骤:判断当前单事务是否为最后一个单事务,若是则执行线程提交操作,若不是则取下一个单事务设置为第一事务A并重新进入设置当前事务B步骤。
[0012]进一步的,还包括部署准备步骤:
[0013]在源端数据库以及目标端数据库均部署数据同步服务;
[0014]目标端数据同步服务启动后,初始化待执行链表、执行线程、唤醒链表以及执行线程链表;
[0015]目标端数据同步服务接收到源端操作后,按操作的事务ID进行分类管理,当某个事务提交以后,则将该事务按提交操作的LSN大小顺序存入待执行链表。
[0016]进一步的,所述将单事务合并为多事务且设置多事务的提交LSN、第一事务A以及并行LSN具体包括:
[0017]执行线程从待执行链表中按事务提交LSN的顺序摘取N个单事务合并成一个多事务,并将最后一个单事务的提交LSN设置为多事务的提交LSN,然后根据多事务的提交LSN在执行线程链表中进行注册;
[0018]执行线程将多事务中的下一个单事务设置为第一事务A,并将第一个单事务的提交LSN设为并行LSN。
[0019]进一步的,所述通过判断当前事务B的下一个操作以及查找并行LSN小于当前待执行操作LSN的执行线程C,来进入相对应的步骤具体包括:
[0020]第一提交操作判断步骤:根据当前事务B的下一个操作的操作类型来选择进入执行线程C查找步骤或线程提交步骤;
[0021]执行线程C查找步骤:通过查找并行LSN小于当前待执行操作LSN的执行线程C来进入第一并行执行步骤或循环判断步骤;
[0022]第一并行执行步骤:执行当前操作后跳到第一提交操作判断步骤;
[0023]循环判断步骤:对所有单事务进行循环判断以确定是否可以并行执行。
[0024]进一步的,所述第一提交操作判断步骤具体包括:
[0025]提取当前事务B的下一个操作,判断提取的操作是否为提交操作;
[0026]若是提交操作则进入线程提交步骤,若不是则进入执行线程C查找步骤。
[0027]进一步的,所述执行线程C查找步骤具体包括:
[0028]获取当前待执行操作LSN,在执行线程链表中向前查找并行LSN小于该待执行操作LSN的执行线程C;
[0029]若找到,则进入循环判断步骤,若未找到,则进入第一并行执行步骤。
[0030]进一步的,所述循环判断步骤具体包括:
[0031]回退步骤:回退当前操作位置并将当前事务B指向下一个单事务,然后进入第二提交操作判断步骤;
[0032]第二提交操作判断步骤:提取当前事务B的下一个操作并判断提取的操作是否是提交操作,若是则进入回退步骤,若不是则进入并行LSN判断步骤;
[0033]并行LSN判断步骤:判断排在当前执行线程之前的执行线程的并行LSN是否都大于当前待执行操作LSN,若是则进入第二并行执行步骤,若否则进入回退步骤;
[0034]第二并行执行步骤:执行当前操作后进入第二提交操作判断步骤。
[0035]进一步的,在所述回退步骤中将当前事务B指向下一个单事务时,若没有下一个单
事务,则将第一事务A设置为当前事务B,并将当前执行线程添加到执行线程C的唤醒链表,以等待执行线程C提交后再唤醒。
[0036]进一步的,在所述线程提交步骤中执行线程提交操作时,还将该执行线程的唤醒链表中等待的其它执行线程全部唤醒,然后将该执行线程从执行线程链表中移除。
[0037]另一方面,本专利技术提供了一种基于事务合并的并行执行设备,具体为:包括至少一个处理器和存储器,至少一个处理器和存储器之间通过数据总线连接,存储器存储能被至少一个处理器执行的指令,指令在被处理器执行后,用于完成第一方面中的基于事务合并的并行执行方法。
[0038]与现有技术相比,本专利技术的有益效果在于:
[0039]首先,两个执行线程并行执行多事务时,采用单事务的提交LSN来划分出不同的并行区间,在划分出的第一个并行区间(也即并行LSN之前的区间),两个执行线程中操作LSN落在此区间的操作可以无条件的并行,因为这些操作访问的资源并不冲突。
[0040]其次,在采用了事务合并策略以后,多个单事务合并成一个多事务,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于事务合并的并行执行方法,其特征在于,包括:将单事务合并为多事务且设置多事务的提交LSN、第一事务A以及并行LSN;设置当前事务B步骤:将第一事务A设置为当前事务B;通过判断当前事务B的下一个操作以及查找并行LSN小于当前待执行操作LSN的执行线程C,来进入相对应的步骤;线程提交步骤:判断当前单事务是否为最后一个单事务,若是则执行线程提交操作,若不是则取下一个单事务设置为第一事务A并重新进入设置当前事务B步骤。2.根据权利要求1所述的基于事务合并的并行执行方法,其特征在于,还包括部署准备步骤:在源端数据库以及目标端数据库均部署数据同步服务;目标端数据同步服务启动后,初始化待执行链表、执行线程、唤醒链表以及执行线程链表;目标端数据同步服务接收到源端操作后,按操作的事务ID进行分类管理,当某个事务提交以后,则将该事务按提交操作的LSN大小顺序存入待执行链表。3.根据权利要求2所述的基于事务合并的并行执行方法,其特征在于,所述将单事务合并为多事务且设置多事务的提交LSN、第一事务A以及并行LSN具体包括:执行线程从待执行链表中按事务提交LSN的顺序摘取N个单事务合并成一个多事务,并将最后一个单事务的提交LSN设置为多事务的提交LSN,然后根据多事务的提交LSN在执行线程链表中进行注册;执行线程将多事务中的下一个单事务设置为第一事务A,并将第一个单事务的提交LSN设为并行LSN。4.根据权利要求3所述的基于事务合并的并行执行方法,其特征在于,所述通过判断当前事务B的下一个操作以及查找并行LSN小于当前待执行操作LSN的执行线程C,来进入相对应的步骤具体包括:第一提交操作判断步骤:根据当前事务B的下一个操作的操作类型来选择进入执行线程C查找步骤或线程提交步骤;执行线程C查找步骤:通过查找并行LSN小于当前待执行操作LSN的执行线程C来进入第一并行执行步骤或循环判断步骤;第一并行执行步骤:执行当前操作后跳到第一提交操作判断步骤;循环判断步骤:对所有单事务进行循环判断以确定是否可以并行执行。5.根据权利要求4所述的基于事务...

【专利技术属性】
技术研发人员:孙峰余院兰彭青松刘启春
申请(专利权)人:武汉达梦数据库股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1