数据库的数据状态确定方法、装置以及计算机设备制造方法及图纸

技术编号:38848845 阅读:21 留言:0更新日期:2023-09-17 09:58
本公开提供了一种数据库的数据状态确定方法、装置、计算机设备以及存储介质,其中,该方法包括:获取数据库中的第一事务,并确定所述第一事务对应的第一时间戳日志,其中,所述第一事务用于指示对数据库中的数据进行读取操作;确定第二事务的第二时间戳日志,其中,所述第二事务用于指示对数据库中的数据进行数据处理操作;基于所述第一时间戳日志与所述第二时间戳日志的对比结果,确定所述第二事务相对于所述第一事务的可见状态,从而基于时间戳日志来进行事务之间的可见性判断,而时间戳日志的数据量远小于活跃事务列表,因此,本公开降低了数据维护成本,提高了数据库性能。提高了数据库性能。提高了数据库性能。

【技术实现步骤摘要】
数据库的数据状态确定方法、装置以及计算机设备


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

技术介绍

[0002]数据一致性是数据库必须满足的基本特性之一,数据库作为数据管理的核心,有效的可见性判断方法是保证其一致性的重要手段,可见性判断的效率也会影响到数据库的整体性能。
[0003]目前,基于活跃事务列表的可见性判断方法是最为常见的可见性判断方法,其中,该活跃事务列表中可以包括事务的提交状态,应理解的是,在通过读事务读取数据库中的数据时,已提交的事务相对于读事务可见。这里,活跃事务列表广泛应用于各类商用分布式关系型数据库中,通过维护活跃事务列表,每个事务在启动时都会获取自身的活跃事务列表,当业务压力较大,事务并发程度较高时,每个事务都要维护自身的活跃事务列表,期间还涉及到加锁解锁操作,开销普遍较高,已经成为目前主流数据库的重要性能瓶颈之一。

技术实现思路

[0004]本公开实施例至少提供一种数据库的数据状态确定方法、装置、计算机设备以及存储介质。
[0005]第一方面,本公开实施例提供了一种数据库的数据状态确定方法,包括:
[0006]获取数据库中的第一事务,并确定所述第一事务对应的第一时间戳日志,其中,所述第一事务用于指示对数据库中的数据进行读取操作;
[0007]确定第二事务的第二时间戳日志,其中,所述第二事务用于指示对数据库中的数据进行数据处理操作;
[0008]基于所述第一时间戳日志与所述第二时间戳日志的对比结果,确定所述第二事务相对于所述第一事务的可见状态。
[0009]一种可选的实施方式中,所述基于所述第一时间戳日志与所述第二时间戳日志的对比结果,确定所述第二事务相对于所述第一事务的可见状态,包括:
[0010]读取所述第二时间戳日志的第二时间戳数值,并基于所述第二时间戳数值确定所述第二事务的处理状态;
[0011]在所述处理状态为目标状态的情况下,确定所述第一时间戳日志的第一时间戳数值,并在所述第一时间戳数值大于所述第二时间戳数值时,确定所述第二事务相对于所述第一事务可见,其中,所述目标状态用于指示所述第二事务已提交;
[0012]在所述处理状态为非目标状态的情况下,确定所述第二事务相对于所述第一事务不可见,其中,所述目标状态用于指示所述第二事务未提交。
[0013]一种可选的实施方式中,所述方法还包括:
[0014]确定预设时间戳数值;
[0015]在所述第二时间戳日志的第二时间戳数值命中所述预设时间戳数值的情况下,确定所述处理状态为非目标状态;
[0016]在所述第二时间戳日志的第二时间戳数值未命中所述预设时间戳数值的情况下,确定所述处理状态为目标状态。
[0017]一种可选的实施方式中,所述非目标状态包括:初始化状态、中止状态、提交中状态;
[0018]所述确定预设时间戳数值,包括:
[0019]分别为各个非目标状态设置对应的状态数值,并确定预设进制;
[0020]基于所述预设进制,将所述状态数值转化为对应的时间戳,得到预设时间戳。
[0021]一种可选的实施方式中,所述第二时间戳日志中包括:状态位、物理时间戳以及逻辑时间戳;
[0022]所述确定第二事务的第二时间戳日志,包括:
[0023]确定所述第二事务的事务类型,并基于所述事务类型确定所述状态位数值;
[0024]获取实时机器时间,并基于所述机器时间确定所述物理时间戳;
[0025]在所述物理时间戳相同的情况下,基于所述第二事务在第二事务队列中的时序,确定所述逻辑时间戳;
[0026]根据所述状态位数值、物理时间戳以及逻辑时间戳,确定所述第二时间戳日志。
[0027]一种可选的实施方式中,所述方法还包括:
[0028]在确定第二事务的第二时间戳日志后,基于所述第二时间戳日志,确定所述第二事务的事务类型;
[0029]在所述事务类型为分布式事务的情况下,确定所述第二事务的关联事务,并确定所述关联事务的第三时间戳日志;
[0030]基于所述第二时间戳日志以及第三时间戳日志,与所述第一时间戳日志的对比结果,确定所述第二事务相对于所述第一事务的可见状态;
[0031]在所述事务类型为子事务的情况下,确定所述第二事务的父事务,并确定所述父事务的第四时间戳日志;
[0032]基于所述第四时间戳日志与所述第一时间戳日志的对比结果,确定所述第二事务相对于所述第一事务的可见状态。
[0033]一种可选的实施方式中,所述确定第二事务的第二时间戳日志,还包括:
[0034]在重启数据库后,重新确定所述第二事务的处理状态;
[0035]在基于所述处理状态确定出第二事务已提交的情况下,获取预先设定的目标提交时间戳,并根据所述目标提交时间戳确定第二时间戳日志;
[0036]在基于所述处理状态确定出第二事务未提交的情况下,确定预设时间戳数值,并根据所述预设提交时间戳确定第二时间戳日志。
[0037]一种可选的实施方式中,所述方法还包括:
[0038]在接收到日志格式转换指令后,基于所述第一时间戳日志,确定所述第一事务的处理状态,并基于该处理状态生成第一事务的事务状态日志;以及
[0039]基于所述第二时间戳日志,确定所述第二事务的处理状态,并基于该处理状态生成第二事务的事务状态日志。
[0040]第二方面,本公开实施例还提供一种数据库的数据状态确定装置,包括:
[0041]获取单元,用于获取数据库中的第一事务,并确定所述第一事务对应的第一时间戳日志,其中,所述第一事务用于指示对数据库中的数据进行读取操作;
[0042]第一确定单元,用于确定第二事务的第二时间戳日志,其中,所述第二事务用于指示对数据库中的数据进行数据处理操作;
[0043]第二确定单元,用于基于所述第一时间戳日志与所述第二时间戳日志的对比结果,确定所述第二事务相对于所述第一事务的可见状态。
[0044]第三方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
[0045]第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
[0046]在本公开实施例中,首先可以获取数据库中的第一事务并确定该第一事务对应的第一时间戳日志,其中,该第一事务用于指示对数据库中的数据进行读取操作。然后,可以确定第二事务的第二时间戳日志,其中,该第二事务用于指示对数据库中的数据进行数据处理操作。接下来,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库的数据状态确定方法,其特征在于,包括:获取数据库中的第一事务,并确定所述第一事务对应的第一时间戳日志,其中,所述第一事务用于指示对数据库中的数据进行读取操作;确定第二事务的第二时间戳日志,其中,所述第二事务用于指示对数据库中的数据进行数据处理操作;基于所述第一时间戳日志与所述第二时间戳日志的对比结果,确定所述第二事务相对于所述第一事务的可见状态。2.根据权利要求1所述的方法,其特征在于,所述基于所述第一时间戳日志与所述第二时间戳日志的对比结果,确定所述第二事务相对于所述第一事务的可见状态,包括:读取所述第二时间戳日志的第二时间戳数值,并基于所述第二时间戳数值确定所述第二事务的处理状态;在所述处理状态为目标状态的情况下,确定所述第一时间戳日志的第一时间戳数值,并在所述第一时间戳数值大于所述第二时间戳数值时,确定所述第二事务相对于所述第一事务可见,其中,所述目标状态用于指示所述第二事务已提交;在所述处理状态为非目标状态的情况下,确定所述第二事务相对于所述第一事务不可见,其中,所述目标状态用于指示所述第二事务未提交。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:确定预设时间戳数值;在所述第二时间戳日志的第二时间戳数值命中所述预设时间戳数值的情况下,确定所述处理状态为非目标状态;在所述第二时间戳日志的第二时间戳数值未命中所述预设时间戳数值的情况下,确定所述处理状态为目标状态。4.根据权利要求3所述的方法,其特征在于,所述非目标状态包括:初始化状态、中止状态、提交中状态;所述确定预设时间戳数值,包括:分别为各个非目标状态设置对应的状态数值,并确定预设进制;基于所述预设进制,将所述状态数值转化为对应的时间戳,得到预设时间戳。5.根据权利要求1所述的方法,其特征在于,所述第二时间戳日志中包括:状态位、物理时间戳以及逻辑时间戳;所述确定第二事务的第二时间戳日志,包括:确定所述第二事务的事务类型,并基于所述事务类型确定所述状态位数值;获取实时机器时间,并基于所述机器时间确定所述物理时间戳;在所述物理时间戳相同的情况下,基于所述第二事务在第二事务队列中的时序,确定所述逻辑时间戳;根据所述状态位数值、物理时间戳以及逻辑时间戳,确定所述第二时间戳日志。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:在确定第二事务的第二时间戳日志后,基于所述...

【专利技术属性】
技术研发人员:徐启文方沛
申请(专利权)人:金篆信科有限责任公司
类型:发明
国别省市:

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

1