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

技术编号:32966697 阅读:16 留言:0更新日期:2022-04-09 11:24
本发明专利技术涉及一种基于事务合并的并行执行方法及设备。其方法包括:将单事务合并为多事务且设置多事务的提交LSN以及并行LSN,并将多事务注册到执行线程链表;单事务处理步骤:执行线程提取多事务中的下一个单事务开始执行,把该单事务的提交LSN作为当前分隔线LSN;通过对并行LSN大小、分隔线LSN大小、当前操作影响行数的判断以及操作合并执行的判断来进入相对应的步骤;线程提交的判断步骤:判断当前单事务是否为最后一个单事务,若是则执行线程提交操作;若不是则重新进入单事务处理步骤。本发明专利技术对不满足并行执行的事务,采取回滚到上一个保存点并等待前面多事务提交以后再执行的方式,避免执行时带来的数据冲突,确保数据同步的一致性。步的一致性。步的一致性。

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


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

技术介绍

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

技术实现思路

[0004]本专利技术要解决的技术问题之一是解决采取常规的事务合并以及多线程并行执行的策略所带来的数据冲突,进而影响数据同步一致性的问题。
[0005]本专利技术采用如下技术方案:
[0006]第一方面,本专利技术提供了一种基于事务合并的并行执行方法,方法包括:
[0007]将单事务合并为多事务且设置多事务的提交LSN以及并行LSN,并将多事务注册到执行线程链表;
[0008]单事务处理步骤:执行线程提取多事务中的下一个单事务开始执行,把该单事务的提交LSN作为当前分隔线LSN;
[0009]通过对并行LSN大小、分隔线LSN大小、当前操作影响行数的判断以及操作合并执行的判断来进入相对应的步骤;
[0010]线程提交的判断步骤:判断当前单事务是否为最后一个单事务,若是则执行线程提交操作;若不是则重新进入单事务处理步骤。
[0011]优选的,还包括部署准备步骤:
[0012]在源端数据库以及目标端数据库均部署数据同步服务;
[0013]目标端数据同步服务启动后,初始化待执行链表、执行线程、唤醒链表以及执行线程链表;
[0014]目标端数据同步服务接收到源端操作后,按操作的事务ID进行分类管理,当某个
事务提交以后,把该事务按提交操作的LSN大小顺序存入待执行链表。
[0015]优选的,所述单事务处理步骤还包括:判断当前执行线程的唤醒链表,将唤醒类型为执行等待并且执行LSN小于分隔线LSN的执行线程唤醒。
[0016]优选的,所述通过对并行LSN大小、分隔线LSN大小、当前操作影响行数的判断以及操作合并执行的判断来进入相对应的步骤:
[0017]并行LSN判断步骤:根据当前操作的LSN以及排在当前执行线程之前的执行线程的并行LSN的大小来选择进入操作类型判断步骤或分隔线LSN判断步骤;
[0018]分隔线LSN判断步骤:根据当前操作的LSN以及排在当前执行线程之前的执行线程的分隔线LSN的大小来选择是否生成保存点或等待唤醒;
[0019]操作合并执行的判断:根据当前单事务中的操作顺序提取操作准备执行,根据当前操作是否满足合并执行的条件来选择是否合并执行;
[0020]当前操作影响行数的判断:根据当前执行操作的影响行数以及预期的影响行数进行比对来选择进入继续执行当前单事务中的操作或执行部分回滚操作。
[0021]优选的,所述并行LSN判断步骤具体包括:判断当前操作的LSN是否小于所有排在当前执行线程之前的执行线程的并行LSN,若是则执行当前操作,若否则进入分隔线LSN判断步骤。
[0022]优选的,所述分隔线LSN判断步骤具体包括:判断当前操作的LSN是否小于所有排在当前执行线程之前的执行线程的分隔线LSN,若是则进入冲突检测步骤;若否则从后向前查找到第一个分隔线LSN小于当前操作的LSN的执行线程,并将当前执行线程添加到该查找到的执行线程的唤醒链表中,且将唤醒类型标记为执行等待。
[0023]优选的,所述操作合并执行的判断步骤具体包括:判断按当前单事务操作顺序提取的准备执行LSN是否小于这个并行LSN,若是则进行合并执行,否则,生成一个保存点SAVEPOINT再执行,然后进入当前操作影响行数的判断步骤。
[0024]优选的,所述当前操作影响行数的判断步骤具体包括:判断操作的影响行数是否与预期的一致,若一致则进入操作合并执行的判断步骤,若不一致则执行回滚操作,回滚到上一个保存点SAVEPOINT,然后把当前执行线程添加到执行线程链表的上一个执行线程的唤醒链表上,唤醒类型设置为提交等待,然后挂起等待被唤醒。
[0025]优选的,所述线程提交的判断步骤具体包括:判断当前单事务是否为最后一个单事务,若是,执行提交并把唤醒链表中等待的执行线程全部唤醒,然后把执行线程从执行线程链表中移除;否则重新进入单事务处理步骤。
[0026]第二方面,本专利技术还提供了一种基于事务合并的并行执行设备,用于实现第一方面所述一种基于事务合并的并行执行方法,所述设备包括:
[0027]至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储能被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成第一方面所述一种基于事务合并的并行执行方法。
[0028]本专利技术针对现有技术存在的上述问题,对单事务合并以后形成的多事务之间高效并行执行制定一种可行性的方案,通过对单事务提交的LSN划分执行区间,并制定并行执行的条件,对执行区间内符合并行执行条件的的操作进行合并执行,并对不符合条件的操作采取回滚策略等待前面多事务提交以后再执行。通过回滚策略可以有效的避免并行执行带
来的数据冲突,进而避免了数据丢失或操作被搁置,确保了在操作执行过程中数据同步的一致性。
附图说明
[0029]为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0030]图1是本专利技术实施例提供的一种基于事务合并的并行执行的方法流程示意图;
[0031]图2是本专利技术实施例提供的一种基于事务合并的并行执行的方法流程示意图;
[0032]图3是本专利技术实施例提供的一种基于事务合并的并行执行的方法流程示意图;
[0033]图4是本专利技术实施例提供的一种基于事务合并的并行执行的方法流程示意图;
[0034]图5是本专利技术实施例提供的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于事务合并的并行执行方法,其特征在于,包括:将单事务合并为多事务且设置多事务的提交LSN以及并行LSN,并将多事务注册到执行线程链表;单事务处理步骤:执行线程提取多事务中的下一个单事务开始执行,把该单事务的提交LSN作为当前分隔线LSN;通过对并行LSN大小、分隔线LSN大小、当前操作影响行数的判断以及操作合并执行的判断来进入相对应的步骤;线程提交的判断步骤:判断当前单事务是否为最后一个单事务,若是则执行线程提交操作;若不是则重新进入单事务处理步骤。2.根据权利要求1所述的基于事务合并的并行执行方法,其特征在于,还包括部署准备步骤:在源端数据库以及目标端数据库均部署数据同步服务;目标端数据同步服务启动后,初始化待执行链表、执行线程、唤醒链表以及执行线程链表;目标端数据同步服务接收到源端操作后,按操作的事务ID进行分类管理,当某个事务提交以后,把该事务按提交操作的LSN大小顺序存入待执行链表。3.根据权利要求2所述的基于事务合并的并行执行方法,其特征在于,所述单事务处理步骤还包括:判断当前执行线程的唤醒链表,将唤醒类型为执行等待并且执行LSN小于分隔线LSN的执行线程唤醒。4.根据权利要求3所述的基于事务合并的并行执行方法,其特征在于,所述通过对并行LSN大小、分隔线LSN大小、当前操作影响行数的判断以及操作合并执行的判断来进入相对应的步骤:并行LSN判断步骤:根据当前操作的LSN以及排在当前执行线程之前的执行线程的并行LSN的大小来选择进入操作类型判断步骤或分隔线LSN判断步骤;分隔线LSN判断步骤:根据当前操作的LSN以及排在当前执行线程之前的执行线程的分隔线LSN的大小来选择是否生成保存点或等待唤醒;操作合并执行的判断:根据当前单事务中的操作顺序提取操作准备执行,根据当前操作是否满足合并执行的条件来选择是否合并执行;当前操作影响行数的判断:根据当前执行操作的影响行数以及预期的影响行数进行比对来选择进入继续执行当前单事务中的操作或执行部分回滚操作。5.根据权利要求4所述的基于事务合并的并行执行方法,其特...

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

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

1