一种事务处理方法、装置、电子设备及存储介质制造方法及图纸

技术编号:36088295 阅读:11 留言:0更新日期:2022-12-24 11:04
本公开提供一种事务处理方法、装置、电子设备及存储介质,根据主数据库的事务记录日志信息,确定当前执行事务的第一写集合,所述第一写集合中包括多种类型键的键值,用于唯一表征所述当前执行事务以及所述当前执行事务中各语句;确定处于可执行状态的待执行事务,并根据所述主数据库的事务记录日志信息,确定所述待执行事务的第二写集合,所述第二写集合中包括多种类型键的键值,用于唯一表征所述待执行事务以及所述待执行事务中各语句;根据第一写集合中各类型键的键值和第二写集合中各类型键的键值,判断所述待执行事务包括的各语句与所述当前执行事务是否冲突,并在确定有任一语句与所述当前执行事务不冲突时,则前置执行所述任一语句。所述任一语句。所述任一语句。

【技术实现步骤摘要】
一种事务处理方法、装置、电子设备及存储介质


[0001]本公开涉及数据处理
,具体而言,涉及一种事务处理方法、装置、电子设备及存储介质。

技术介绍

[0002]数据库MySQL、数据传输服务(Data Transmission Service,DTS)等实例间的数据复制,影响其同步性能的核心问题就是事务的并发分析,既需要能够协调事务之间的冲突,又要可以提升回放事务的并发度。
[0003]相关技术中,主要是在主节点上可以基于写集合(WriteSet)和逻辑时钟的方法,将事务更新数据和事务并发相关信息记录在二进制日志(Binlog)中,进而从节点根据主节点的Binlog来并发回放事务,实现与主节点数据一致的目的,但是该方法,从节点并不能感知WriteSet的存在,从节点仅依赖Binlog的事务并发相关信息,来并发回放各事务,对于有冲突的事务,需等有冲突的事务执行完才开始执行该事务,而通常一个事务整个执行过程可能耗时较长,限制了事务并发度,降低了处理效率。

技术实现思路

[0004]本公开实施例至少提供一种事务处理方法、装置、电子设备及存储介质。
[0005]第一方面,本公开实施例提供了一种事务处理方法,包括:
[0006]根据主数据库的事务记录日志信息,确定当前执行事务的第一写集合,其中,所述第一写集合中包括多种类型键的键值,用于唯一表征所述当前执行事务以及所述当前执行事务中各语句;
[0007]确定处于可执行状态的待执行事务,并根据所述主数据库的事务记录日志信息,确定所述待执行事务的第二写集合,其中,所述第二写集合中包括多种类型键的键值,用于唯一表征所述待执行事务以及所述待执行事务中各语句;
[0008]根据所述第一写集合中各类型键的键值和所述第二写集合中各类型键的键值,判断所述待执行事务包括的各语句与所述当前执行事务是否冲突,并在确定有任一语句与所述当前执行事务不冲突时,则前置执行所述任一语句。
[0009]一种可选的实施方式中,将所述第一写集合或所述第二写集合作为目标写集合,将所述当前执行事务或所述待执行事务作为目标事务,则根据主数据库的事务记录日志信息,确定所述目标事务的目标写集合,包括:
[0010]根据所述主数据库的事务记录日志信息,确定所述目标事务的目标写集合包括的全局键、表键、以及,各语句的主键和/或唯一键;
[0011]其中,所述全局键表征所述目标事务全局的锁、所述表键表征所述目标事务对应的至少一张表的表级锁;所述主键和所述唯一键表征语句锁;并且锁优先级为所述全局键大于所述表键,所述表键大于所述主键和所述唯一键。
[0012]一种可选的实施方式中,根据所述主数据库的事务记录日志信息,确定所述目标
事务的目标写集合包括的全局键、表键、以及,各语句的主键和/或唯一键,包括:
[0013]若存在预设的目标情况,则确定所述目标事务的目标写集合包括的全局键或表键;若不存在所述目标情况,则确定所述目标事务的所述目标写集合包括的各语句的所述主键和/或唯一键;
[0014]其中,所述目标情况包括:若所述目标事务包括数据库定义语言DDL语句或为所述事务记录日志信息包括的事务记录日志文件中的第一个事务,则确定所述目标事务的目标写集合包括所述全局键;若所述目标事务中无主键表、或包括以下至少一种目标类型表,则确定所述目标事务的所述目标写集合至少包括所述表键,其中,所述目标类型表为:有唯一索引语句的表、外键约束的父表。
[0015]一种可选的实施方式中,根据所述第一写集合中各类型键的键值和所述第二写集合中各类型键的键值,判断所述待执行事务包括的各语句与所述当前执行事务是否冲突,包括:
[0016]分别将所述待执行事务包括的各语句对应的第二写集合,与所述当前执行事务的所述第一写集合进行比较;
[0017]根据锁优先级,依次判断所述待执行事务的全局键、表键、以及所述主键或所述唯一键与所述第一写集合是否有交集,在确定有交集情况下,确定对应语句与所述当前执行事务存在冲突,在确定均不存在交集情况下,确定对应语句与所述当前执行事务不冲突。
[0018]一种可选的实施方式中,所述根据锁优先级,依次判断所述待执行事务的全局键、表键、以及所述主键或所述唯一键与所述第一写集合是否有交集,在确定有交集情况下,确定对应语句与所述当前执行事务存在冲突,在确定均不存在交集情况下,确定对应语句与所述当前执行事务不冲突,包括:
[0019]根据锁优先级,若所述待执行事务的所述全局键与所述第一写集合存在交集,则确定所述待执行事务包括的所有语句均与所述当前执行事务冲突;
[0020]若所述待执行事务的所述全局键与所述第一写集合不存在交集,并所述待执行事务的所述表键与所述第一写集合存在交集,则所述待执行事务的存在交集的表键下的所有语句均与所述当前执行事务冲突;
[0021]若所述待执行事务的所述全局键、所述表键与所述第一写集合均不存在交集,并所述待执行事务的所述唯一键或所述主键与所述第一写集合存在交集,则确定存在交集的所述唯一键或所述主键对应的语句与所述当前执行事务冲突。
[0022]一种可选的实施方式中,根据主数据库的事务记录日志信息,确定当前执行事务的第一写集合之前,还包括:
[0023]响应于有任一事务执行完成后,根据主数据库的事务记录日志信息的逻辑时钟,确定所述当前执行事务,其中,所述当前执行事务至少包括执行完成的所述任一事务对应的下一个执行顺序的事务。
[0024]一种可选的实施方式中,确定处于可执行状态的待执行事务,包括:
[0025]根据主数据库的事务记录日志信息的逻辑时钟,将所述当前执行事务对应的下一个执行顺序的事务,确定为处于可执行状态的待执行事务。
[0026]第二方面,本公开实施例还提供一种事务处理装置,包括:
[0027]第一确定模块,用于根据主数据库的事务记录日志信息,确定当前执行事务的第
一写集合,其中,所述第一写集合中包括多种类型键的键值,用于唯一表征所述当前执行事务以及所述当前执行事务中各语句;
[0028]第二确定模块,用于确定处于可执行状态的待执行事务,并根据所述主数据库的事务记录日志信息,确定所述待执行事务的第二写集合,其中,所述第二写集合中包括多种类型键的键值,用于唯一表征所述待执行事务以及所述待执行事务中各语句;
[0029]执行模块,用于根据所述第一写集合中各类型键的键值和所述第二写集合中各类型键的键值,判断所述待执行事务包括的各语句与所述当前执行事务是否冲突,并在确定有任一语句与所述当前执行事务不冲突时,则前置执行所述任一语句。
[0030]第三方面,本公开可选实现方式还提供一种电子设备,包括处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种事务处理方法,其特征在于,包括:根据主数据库的事务记录日志信息,确定当前执行事务的第一写集合,其中,所述第一写集合中包括多种类型键的键值,用于唯一表征所述当前执行事务以及所述当前执行事务中各语句;确定处于可执行状态的待执行事务,并根据所述主数据库的事务记录日志信息,确定所述待执行事务的第二写集合,其中,所述第二写集合中包括多种类型键的键值,用于唯一表征所述待执行事务以及所述待执行事务中各语句;根据所述第一写集合中各类型键的键值和所述第二写集合中各类型键的键值,判断所述待执行事务包括的各语句与所述当前执行事务是否冲突,并在确定有任一语句与所述当前执行事务不冲突时,则前置执行所述任一语句。2.根据权利要求1所述的方法,其特征在于,将所述第一写集合或所述第二写集合作为目标写集合,将所述当前执行事务或所述待执行事务作为目标事务,则根据主数据库的事务记录日志信息,确定所述目标事务的目标写集合,包括:根据所述主数据库的事务记录日志信息,确定所述目标事务的目标写集合包括的全局键、表键、以及,各语句的主键和/或唯一键;其中,所述全局键表征所述目标事务全局的锁、所述表键表征所述目标事务对应的至少一张表的表级锁;所述主键和所述唯一键表征语句锁;并且锁优先级为所述全局键大于所述表键,所述表键大于所述主键和所述唯一键。3.根据权利要求2所述的方法,其特征在于,根据所述主数据库的事务记录日志信息,确定所述目标事务的目标写集合包括的全局键、表键、以及,各语句的主键和/或唯一键,包括:若存在预设的目标情况,则确定所述目标事务的目标写集合包括的全局键或表键;若不存在所述目标情况,则确定所述目标事务的所述目标写集合包括的各语句的所述主键和/或唯一键;其中,所述目标情况包括:若所述目标事务包括数据库定义语言DDL语句或为所述事务记录日志信息包括的事务记录日志文件中的第一个事务,则确定所述目标事务的目标写集合包括所述全局键;若所述目标事务中无主键表、或包括以下至少一种目标类型表,则确定所述目标事务的所述目标写集合至少包括所述表键,其中,所述目标类型表为:有唯一索引语句的表、外键约束的父表。4.根据权利要求2或3所述的方法,其特征在于,根据所述第一写集合中各类型键的键值和所述第二写集合中各类型键的键值,判断所述待执行事务包括的各语句与所述当前执行事务是否冲突,包括:分别将所述待执行事务包括的各语句对应的第二写集合,与所述当前执行事务的所述第一写集合进行比较;根据锁优先级,依次判断所述待执行事务的全局键、表键、以及所述主键或所述唯一键与所述第一写集合是否有交集,在确定有交集情况下,确定对应语句与所述当前执行事务存在冲突,在确定均不存在交集情况下,确定对应语句与所述当前执行事务不冲突。5.根据权利要求4所述的方法,其特征在于,所述根据锁优先级,依次...

【专利技术属性】
技术研发人员:邓云
申请(专利权)人:北京火山引擎科技有限公司
类型:发明
国别省市:

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

1