数据库的数据状态确定方法、装置以及计算机设备与流程

文档序号:35466005发布日期:2023-09-16 05:25阅读:29来源:国知局
数据库的数据状态确定方法、装置以及计算机设备与流程

本公开涉及数据库,具体而言,涉及一种数据库的数据状态确定方法、装置、计算机设备以及存储介质。


背景技术:

1、数据一致性是数据库必须满足的基本特性之一,数据库作为数据管理的核心,有效的可见性判断方法是保证其一致性的重要手段,可见性判断的效率也会影响到数据库的整体性能。

2、目前,基于活跃事务列表的可见性判断方法是最为常见的可见性判断方法,其中,该活跃事务列表中可以包括事务的提交状态,应理解的是,在通过读事务读取数据库中的数据时,已提交的事务相对于读事务可见。这里,活跃事务列表广泛应用于各类商用分布式关系型数据库中,通过维护活跃事务列表,每个事务在启动时都会获取自身的活跃事务列表,当业务压力较大,事务并发程度较高时,每个事务都要维护自身的活跃事务列表,期间还涉及到加锁解锁操作,开销普遍较高,已经成为目前主流数据库的重要性能瓶颈之一。


技术实现思路

1、本公开实施例至少提供一种数据库的数据状态确定方法、装置、计算机设备以及存储介质。

2、第一方面,本公开实施例提供了一种数据库的数据状态确定方法,包括:

3、获取数据库中的第一事务,并确定所述第一事务对应的第一时间戳日志,其中,所述第一事务用于指示对数据库中的数据进行读取操作;

4、确定第二事务的第二时间戳日志,其中,所述第二事务用于指示对数据库中的数据进行数据处理操作;

5、基于所述第一时间戳日志与所述第二时间戳日志的对比结果,确定所述第二事务相对于所述第一事务的可见状态。

6、一种可选的实施方式中,所述基于所述第一时间戳日志与所述第二时间戳日志的对比结果,确定所述第二事务相对于所述第一事务的可见状态,包括:

7、读取所述第二时间戳日志的第二时间戳数值,并基于所述第二时间戳数值确定所述第二事务的处理状态;

8、在所述处理状态为目标状态的情况下,确定所述第一时间戳日志的第一时间戳数值,并在所述第一时间戳数值大于所述第二时间戳数值时,确定所述第二事务相对于所述第一事务可见,其中,所述目标状态用于指示所述第二事务已提交;

9、在所述处理状态为非目标状态的情况下,确定所述第二事务相对于所述第一事务不可见,其中,所述目标状态用于指示所述第二事务未提交。

10、一种可选的实施方式中,所述方法还包括:

11、确定预设时间戳数值;

12、在所述第二时间戳日志的第二时间戳数值命中所述预设时间戳数值的情况下,确定所述处理状态为非目标状态;

13、在所述第二时间戳日志的第二时间戳数值未命中所述预设时间戳数值的情况下,确定所述处理状态为目标状态。

14、一种可选的实施方式中,所述非目标状态包括:初始化状态、中止状态、提交中状态;

15、所述确定预设时间戳数值,包括:

16、分别为各个非目标状态设置对应的状态数值,并确定预设进制;

17、基于所述预设进制,将所述状态数值转化为对应的时间戳,得到预设时间戳。

18、一种可选的实施方式中,所述第二时间戳日志中包括:状态位、物理时间戳以及逻辑时间戳;

19、所述确定第二事务的第二时间戳日志,包括:

20、确定所述第二事务的事务类型,并基于所述事务类型确定所述状态位数值;

21、获取实时机器时间,并基于所述机器时间确定所述物理时间戳;

22、在所述物理时间戳相同的情况下,基于所述第二事务在第二事务队列中的时序,确定所述逻辑时间戳;

23、根据所述状态位数值、物理时间戳以及逻辑时间戳,确定所述第二时间戳日志。

24、一种可选的实施方式中,所述方法还包括:

25、在确定第二事务的第二时间戳日志后,基于所述第二时间戳日志,确定所述第二事务的事务类型;

26、在所述事务类型为分布式事务的情况下,确定所述第二事务的关联事务,并确定所述关联事务的第三时间戳日志;

27、基于所述第二时间戳日志以及第三时间戳日志,与所述第一时间戳日志的对比结果,确定所述第二事务相对于所述第一事务的可见状态;

28、在所述事务类型为子事务的情况下,确定所述第二事务的父事务,并确定所述父事务的第四时间戳日志;

29、基于所述第四时间戳日志与所述第一时间戳日志的对比结果,确定所述第二事务相对于所述第一事务的可见状态。

30、一种可选的实施方式中,所述确定第二事务的第二时间戳日志,还包括:

31、在重启数据库后,重新确定所述第二事务的处理状态;

32、在基于所述处理状态确定出第二事务已提交的情况下,获取预先设定的目标提交时间戳,并根据所述目标提交时间戳确定第二时间戳日志;

33、在基于所述处理状态确定出第二事务未提交的情况下,确定预设时间戳数值,并根据所述预设提交时间戳确定第二时间戳日志。

34、一种可选的实施方式中,所述方法还包括:

35、在接收到日志格式转换指令后,基于所述第一时间戳日志,确定所述第一事务的处理状态,并基于该处理状态生成第一事务的事务状态日志;以及

36、基于所述第二时间戳日志,确定所述第二事务的处理状态,并基于该处理状态生成第二事务的事务状态日志。

37、第二方面,本公开实施例还提供一种数据库的数据状态确定装置,包括:

38、获取单元,用于获取数据库中的第一事务,并确定所述第一事务对应的第一时间戳日志,其中,所述第一事务用于指示对数据库中的数据进行读取操作;

39、第一确定单元,用于确定第二事务的第二时间戳日志,其中,所述第二事务用于指示对数据库中的数据进行数据处理操作;

40、第二确定单元,用于基于所述第一时间戳日志与所述第二时间戳日志的对比结果,确定所述第二事务相对于所述第一事务的可见状态。

41、第三方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。

42、第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。

43、在本公开实施例中,首先可以获取数据库中的第一事务并确定该第一事务对应的第一时间戳日志,其中,该第一事务用于指示对数据库中的数据进行读取操作。然后,可以确定第二事务的第二时间戳日志,其中,该第二事务用于指示对数据库中的数据进行数据处理操作。接下来,可以对该第一时间戳日志与第二时间戳日志进行对比,得到对比结果,并基于该对比结果确定第二事务相对于第一事务的可见状态,从而可以基于时间戳日志来进行事务之间的可见性判断,时间戳日志的数据量远小于活跃事务列表,降低了维护成本,提高了数据库性能。

44、为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

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