基于B+树数据库的空闲页管理方法、装置及存储介质制造方法及图纸

技术编号:36080519 阅读:16 留言:0更新日期:2022-12-24 10:54
本发明专利技术公开了基于B+树数据库的空闲页管理方法、装置及存储介质,所述基于B+树数据库的空闲页管理方法,包括:空闲页增量数据写入流程:写事务开始执行,根据写事务针对空闲页进行操作,并记录空闲页的增量页数据信息;空闲页全量数据写入流程:当所述空闲页全量数据写入流程开始执行的配置条件被触发时,获取全量空闲页数据信息进行写入,并在全量空闲页数据信息写入完成后清空相应的增量页数据信息。本发明专利技术针对B+树存储大数量且存在较大的空闲页时,写事务提交时空闲页的写入存在巨大的性能损耗的问题,提出了空闲页增量数据写入流程+空闲页全量数据写入流程的方法,解决了B+树大数据量下增删数据时的写性能难题,具有较高的创新性和使用价值。的创新性和使用价值。的创新性和使用价值。

【技术实现步骤摘要】
基于B+树数据库的空闲页管理方法、装置及存储介质


[0001]本专利技术存储
,具体的涉及基于B+树数据库的空闲页管理方法、装置及存储介质。

技术介绍

[0002]B+树数据库:以B+树数据结构来创建的数据库,是一种持久化数据库,能提供高效地写入/查询/更新/删除的能力。
[0003]空闲页:当数据库连续运行一段时间后,数据被频繁地写入/删除后,内存/文件中会产生大量不连续的空间,这些空间可用来再次分配数据,这些已释放的不连续空间叫做空闲页。
[0004]磁盘存储领域,B+树是一种支持高性能读写,并支持range查询的技术。B+树存储数据时,磁盘和内存可相互映射,方便应用程序通过读写内存来操作磁盘。此时应用程序不仅需要管理数据页信息,而且也同步需要管理空闲页信息。因为随着不断的写入及删除操作,数据页会被频繁地写入擦出再写入,当前的数据页哪些是被使用,哪些是未使用可复用的,需要精确地记录在案,这也就是空闲页管理需要完成的事情。当前的空闲页管理,是在每次写入/删除时同步将空闲页信息写入到磁盘文件中的,当系统需要存储大数据量时,空闲页可能会达到MB级别,每次写入的数据量可能仅有KB级别,而空闲页是数据量的千倍,此时写入时会有严重的性能瓶颈。
[0005]有鉴于此,特提出本专利技术专利。

技术实现思路

[0006]针对以上所述的性能问题,本专利技术提出基于B+树数据库的空闲页管理方法,此空闲页管理方法在大数据量场景下频繁写入/删除时性能更高,具体地,采用了如下技术方案:
[0007]基于B+树数据库的空闲页管理方法,包括:
[0008]空闲页增量数据写入流程:写事务开始执行,根据写事务针对空闲页进行操作,并记录空闲页的增量页数据信息;
[0009]空闲页全量数据写入流程:当所述空闲页全量数据写入流程开始执行的配置条件被触发时,获取全量空闲页数据信息进行写入,并在全量空闲页数据信息写入完成后清空相应的增量页数据信息。
[0010]作为本专利技术的可选实施方式,本专利技术的基于B+树数据库的空闲页管理方法中,所述空闲页增量数据写入流程:写事务开始执行,根据写事务针对空闲页进行操作,并记录空闲页的增量页数据信息包括:
[0011]写事务开始;
[0012]逐条执行写事务的每一条语句:如果是put操作,则分配满足当前put操作需要的页空间,如果是删除操作,查找到对应的页空间;
[0013]写事务提交:不记录全量空闲页,空闲页的增量页数据信息在执行写事务的相应流程中进行落盘。
[0014]作为本专利技术的可选实施方式,本专利技术的基于B+树数据库的空闲页管理方法中,所述逐条执行写事务的每一条语句过程中如果是put操作,则分配满足当前put操作需要的页空间包括:
[0015]从空闲页中查找,查找到可用的空闲页空间,则从空闲页中释放对应的空闲页空间;
[0016]如果空闲页中未找到,则从应用中的未使用地址开始找到可用的页空间;
[0017]记录空闲页的增量页数据并落盘,所述的增量页数据包括事务ID,空闲页ID及操作方式:移除。
[0018]作为本专利技术的可选实施方式,本专利技术的基于B+树数据库的空闲页管理方法中,所述逐条执行写事务的每一条语句过程中如果是删除操作,查找到对应的页空间包括:
[0019]遍历B+树数据库当前数据页信息,查找删除操作对象页;
[0020]若查找失败,则忽略,若查找成功,则将查找的删除操作对象页加入到空闲页中;
[0021]记录空闲页的增量页数据并落盘,所述的增量页数据包括事务ID,空闲页ID及操作方式:加入。
[0022]作为本专利技术的可选实施方式,本专利技术的基于B+树数据库的空闲页管理方法中,所述空闲页全量数据写入流程:当所述空闲页全量数据写入流程开始执行的配置条件被触发时,获取全量空闲页数据信息进行写入,并在全量空闲页数据信息写入完成后清空相应的增量页数据信息包括:
[0023]写事务开始;
[0024]执行空事务;
[0025]事务提交:记录全量空闲页及事务ID,并落盘,清空本次空闲页全量数据写入流程与上次空闲页全量数据写入流程之间记录的全部增量页数据。
[0026]作为本专利技术的可选实施方式,本专利技术的基于B+树数据库的空闲页管理方法中,所述空闲页全量数据写入流程开始执行的配置条件被触发包括:
[0027]所述的配置条件为相邻两次空闲页全量数据写入流程之间的时间间隔是否达到预设时间间隔T0,当上次空闲页全量数据写入流程执行完成后时间间隔达到T0时,则配置条件被触发,本次空闲页全量数据写入流程开始执行,其中所述的预设时间间隔T0根据数据库的写入峰值配置;
[0028]和/或,所述的配置条件为是否接收到调用指令,当接收到程序主动触发空闲页全量数据写入流程的调用指令时,则配置条件被触发,空闲页全量数据写入流程开始执行。
[0029]作为本专利技术的可选实施方式,本专利技术的基于B+树数据库的空闲页管理方法,还包括B+树数据库重启流程:
[0030]首先读取全量空闲页数据到全局空闲页列表,同时读取当前事务ID;
[0031]再读取全部的增量页数据,将增量页数据与全量空闲页数据中的同一空闲页数据进行整合,以确定B+树数据库重启后针对所述空闲页执行的事务。
[0032]作为本专利技术的可选实施方式,本专利技术的基于B+树数据库的空闲页管理方法中,所述将增量页数据与全量空闲页数据中的同一空闲页数据进行整合,以确定B+树数据库重启
后针对所述空闲页执行的事务包括:
[0033]逐一检查增量页数据中各个空闲页的增量事务ID;
[0034]如果增量事务ID不晚于当前的事务ID被记录,则忽略增量事务ID;
[0035]如果增量事务ID晚于当前的事务ID被记录,则应用当前增量页数据,若事务操作是移除,则从全局空闲页列表中移除该空闲页ID;若事务操作是加入,则将该空闲页ID加入到全局空闲页列表中。
[0036]本专利技术同时提供一种基于B+树数据库的空闲页管理装置,包括:
[0037]空闲页增量数据写入模块:写事务开始执行,根据写事务针对空闲页进行操作,并记录空闲页的增量页数据信息;
[0038]空闲页全量数据写入模块:当所述空闲页全量数据写入流程开始执行的配置条件被触发时,获取全量空闲页数据信息进行写入,并在全量空闲页数据信息写入完成后清空相应的增量页数据信息。
[0039]本专利技术还提供一种电子设备,包括处理器和存储器,所述存储器用于存储计算机可执行程序,当所述计算机程序被所述处理器执行时,所述处理器执行所述的基于B+树数据库的空闲页管理方法。
[0040]本专利技术同时还提供一种计算机可读存储介质,存储有计算机可执行程序,所述计算机可执行程序被执行时,实现所述的基于B+树数据库的空闲页管理方法。
[0041]与现有技术相比,本专利技术的有益效果:
[0042]本专利技术的基于B+树数据库的空本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于B+树数据库的空闲页管理方法,其特征在于,包括:空闲页增量数据写入流程:写事务开始执行,根据写事务针对空闲页进行操作,并记录空闲页的增量页数据信息;空闲页全量数据写入流程:当所述空闲页全量数据写入流程开始执行的配置条件被触发时,获取全量空闲页数据信息进行写入,并在全量空闲页数据信息写入完成后清空相应的增量页数据信息。2.根据权利要求1所述的基于B+树数据库的空闲页管理方法,其特征在于,所述空闲页增量数据写入流程:写事务开始执行,根据写事务针对空闲页进行操作,并记录空闲页的增量页数据信息包括:写事务开始;逐条执行写事务的每一条语句:如果是put操作,则分配满足当前put操作需要的页空间,如果是删除操作,查找到对应的页空间;写事务提交:不记录全量空闲页,空闲页的增量页数据信息在执行写事务的相应流程中进行落盘。3.根据权利要求2所述的基于B+树数据库的空闲页管理方法,其特征在于,所述逐条执行写事务的每一条语句过程中如果是put操作,则分配满足当前put需要的页空间包括:从空闲页中查找,查找到可用的空闲页空间,则从空闲页中释放对应的空闲页空间;如果空闲页中未找到,则从应用中的未使用地址开始找到可用的页空间;记录空闲页的增量页数据并落盘,所述的增量页数据包括事务ID,空闲页ID及操作方式:移除。4.根据权利要求2所述的基于B+树数据库的空闲页管理方法,其特征在于,所述逐条执行写事务的每一条语句过程中如果是删除操作,查找到对应的页空间包括:遍历B+树数据库当前数据页信息,查找删除操作对象页;若查找失败,则忽略,若查找成功,则将查找的删除操作对象页加入到空闲页中;记录空闲页的增量页数据并落盘,所述的增量页数据包括事务ID,空闲页ID及操作方式:加入。5.根据权利要求1所述的基于B+树数据库的空闲页管理方法,其特征在于,所述空闲页全量数据写入流程:当所述空闲页全量数据写入流程开始执行的配置条件被触发时,获取全量空闲页数据信息进行写入,并在全量空闲页数据信息写入完成后清空相应的增量页数据信息包括:写事务开始;执行空事务;事务提交:记录全量空闲页及事务ID,并落盘,清空本次空闲页全量数据写入流程与上次空闲页全量数据写入流程之间记录的全部增量页数据。6...

【专利技术属性】
技术研发人员:徐锐波卢文伟幸福刘方
申请(专利权)人:北京云思智学科技有限公司
类型:发明
国别省市:

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

1