【技术实现步骤摘要】
一种基于事务合并的并行执行方法及设备
[0001]本专利技术实施例涉及数据库数据处理
,尤其涉及一种基于事务合并的并行执行方法及设备。
技术介绍
[0002]目前基于日志解析的异构数据库复制技术应用广泛。这种技术在源端捕数据库的日志,解析出日志中的INSERT、UPDATE、DELETE操作,然后发送到目标端,目标端对日志信息进行逆向生成,恢复成SQL语句方式,然后使用数据库通用接口,应用到目标数据库,实现数据复制。因此,在数据库实时复制过程中,目标端的执行效率是影响数据同步性能的重要因素。目标端数据库上执行同步事务时,需要以事务的提交顺序为基准来执行事务操作,不然前后有关联的操作执行时就会发生错误,从而影响同步的正确性。为了追求数据同步的性能,执行同步事务时往往会采取事务合并的策略,把小事务合并为大事务,不仅可以通过合并不同事务的相同操作来减少执行的次数,还可以减少事务提交的次数,从而达到提升同步性能的目的。另外还可以通过增加执行事务的线程数,采用多线程并行的策略同时对多个合并以后的事务进行入库,进一步的提升同步的性 ...
【技术保护点】
【技术特征摘要】
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所述的基于事务合并的并行执行方法,其特...
【专利技术属性】
技术研发人员:孙峰,余院兰,彭青松,刘启春,
申请(专利权)人:武汉达梦数据库股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。