事务处理方法及装置与流程

文档序号:34864030发布日期:2023-07-23 15:58阅读:34来源:国知局
事务处理方法及装置与流程

本说明书涉及计算机,特别涉及一种事务处理方法。本说明书同时涉及一种事务处理装置,一种计算设备,以及一种计算机可读存储介质。


背景技术:

1、随着计算机技术的发展,大数据时代逐渐到来。在数据库领域,随之而来的则是事务并发问题。现有技术中,为应对oracle数据库快速产生的redo数据,尤其是并发产生的事务多、事务大的情况,通常是将从redo日志文件中解析出的未提交事务数据缓存在内存中,直接解析到事务控制语句(commit/rollback)后,再次遍历内存中对应事务的所有数据,合并处理后向下流转。

2、但是这种处理方式需要为同步进程配置较大的物理内存来缓存未提交的事务数据,每次事务控制都需要对缓存文件进行扫描,性能开销较大,读写效率低。因此,亟需一种有效的方法以解决上述问题。


技术实现思路

1、有鉴于此,本说明书实施例提供了一种事务处理方法。本说明书同时涉及一种事务处理装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。

2、根据本说明书实施例的第一方面,提供了一种事务处理方法,应用于数据库管理端,数据库管理端用于管理关系数据库,包括:

3、基于所述关系数据库的数据库日志确定目标事务;

4、在所述关系数据库中确定与所述目标事务对应的数据文件,以及在内存空间中确定与所述目标事务对应的内存对象;

5、建立所述目标事务、所述内存对象和所述数据文件之间的映射关系,并基于所述映射关系将所述数据文件中的数据存储至所述内存对象包含的内存块;其中,存储数据的内存块构成存储链路;

6、基于所述存储链路在所述内存对象包含的内存块中读取所述目标事务对应的目标数据,用于执行所述目标事务。

7、可选地,所述基于所述关系数据库的数据库日志确定目标事务,包括:

8、响应于数据处理请求,读取所述关系数据库的数据库日志中存储的日志记录,根据读取结果确定目标日志记录;

9、对所述目标日志记录进行解析,根据解析结果确定目标事务。

10、可选地,所述在内存空间中确定与所述目标事务对应的内存对象,包括:

11、确定所述数据文件的数据量;

12、根据所述数据量在所述内存空间中申请至少一个内存块,由至少一个内存块组成所述目标事务对应的内存对象。

13、可选地,所述基于所述映射关系将所述数据文件中的数据存储至所述内存对象包含的内存块,包括:

14、在所述内存对象中确定第i内存块,基于所述映射关系将所述数据文件中未被存储的数据存储至所述第i内存块,其中,i从1开始取值且为正整数;

15、在第i内存块处于写满状态且所述数据文件中包含未被存储的数据的情况下,i按序自增,并执行所述基于所述映射关系将所述数据文件中未被存储的数据存储至所述第i内存块的步骤;

16、直至所述数据文件中不包含未被存储的数据,执行所述基于所述存储链路在所述内存对象包含的内存块中读取所述目标事务对应的目标数据,用于执行所述目标事务的步骤。

17、可选地,所述存储链路中内存块对应的节点之间具有链接存储关系,存储数据的内存块的索引信息包含标记索引项,状态索引项,数据索引项,前关联索引项和后关联索引项;

18、其中,所述存储链路中的两个相邻内存块通过所述前关联索引项和所述后关联索引项进行链接。

19、可选地,所述基于所述存储链路在所述内存对象包含的内存块中读取所述目标事务对应的目标数据,包括:

20、基于所述存储链路确定内存块排列顺序;

21、按照所述内存块排列顺序在所述内存对象包含的内存块中读取所述目标事务对应的目标数据。

22、可选地,所述基于所述存储链路在所述内存对象包含的内存块中读取所述目标事务对应的目标数据,用于执行所述目标事务步骤执行之后,还包括:

23、在所述目标事务执行完成的情况下,释放所述内存对象中的内存块。

24、可选地,所述基于所述存储链路在所述内存对象包含的内存块中读取所述目标事务对应的目标数据,包括:

25、对所述目标事务对应的事务记录表中包含的事务记录进行合并,根据合并结果确定目标事务记录表;

26、基于所述存储链路在所述内存对象包含的内存块中读取所述目标事务记录表对应的目标数据。

27、可选地,所述基于所述存储链路在所述内存对象包含的内存块中读取所述目标事务对应的目标数据,包括:

28、在所述目标事务的事务记录表中确定第j事务记录;

29、判断所述第j事务记录是否为回撤记录;

30、若是,基于所述第j事务记录对所述事务记录表进行更新,将更新后的事务记录表作为所述事务记录表,j按序自增,并执行所述在所述目标事务的事务记录表中确定第j事务记录的步骤;

31、若否,基于所述存储链路在所述内存对象包含的内存块中确定所述第j事务记录对应的第j数据,j按序自增,并执行所述在所述目标事务的事务记录表中确定第j事务记录的步骤;

32、直至j自增至k,将确定的数据作为所述目标数据,其中,j从1开始取值直至为k且为正整数,k为所述事务记录表中事务记录的数量。

33、可选地,在所述事务记录为回撤记录的情况下,在所述存储链路中确定所述回撤记录对应的终止内存块,并对所述终止内存块中数据记录索引的记录数值进行更新;

34、在更新后的记录数值小于等于零的情况下,基于所述存储链路确定与所述终止内存块对应的前序内存块,并释放所述终止内存块;

35、根据释放结果和所述前序内存块更新所述存储链路,并基于更新后的存储链路在所述内存对象包含的内存块中读取所述目标事务对应的目标数据。

36、根据本说明书实施例的第二方面,提供了一种事务处理装置,应用于数据库管理端,数据库管理端用于管理关系数据库,包括:

37、第一确定模块,被配置为基于所述关系数据库的数据库日志确定目标事务;

38、第二确定模块,被配置为在所述关系数据库中确定与所述目标事务对应的数据文件,以及在内存空间中确定与所述目标事务对应的内存对象;

39、存储模块,被配置为建立所述目标事务、所述内存对象和所述数据文件之间的映射关系,并基于所述映射关系将所述数据文件中的数据存储至所述内存对象包含的内存块;其中,存储数据的内存块构成存储链路;

40、读取模块,被配置为基于所述存储链路在所述内存对象包含的内存块中读取所述目标事务对应的目标数据,用于执行所述目标事务。

41、根据本说明书实施例的第三方面,提供了一种计算设备,包括:

42、存储器和处理器;

43、所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该指令被处理器执行时实现所述事务处理方法的步骤。

44、根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述事务处理方法的步骤。

45、本说明书提供的事务处理方法,应用于数据库管理端,数据库管理端用于管理关系数据库,其中事务处理方法包括:基于关系数据库的数据库日志确定目标事务;在关系数据库中确定与目标事务对应的数据文件,以及在内存空间中确定与目标事务对应的内存对象;建立目标事务、内存对象和数据文件之间的映射关系,并基于映射关系将数据文件中的数据存储至内存对象包含的内存块;其中,存储数据的内存块构成存储链路;基于存储链路在内存对象包含的内存块中读取目标事务对应的目标数据,用于执行目标事务。

46、本说明书一实施例通过建立目标事务、内存对象和数据文件之间的映射关系,并基于映射关系将数据文件中的数据有序存储至内存对象包含的内存块,实现了数据的有序写入,避免随机写入带来的性能开销;在进行数据读取时,基于存储链路在内存对象包含的内存块中读取目标事务对应的目标数据,实现了数据的有序读取,减少读取的文件字节数,提高数据读取效率。从而在读写混合时,提高读写效率,降低性能开销。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1