数据库的共享内存缓冲池处理方法、存储介质与设备技术

技术编号:34290826 阅读:62 留言:0更新日期:2022-07-27 09:25
本发明专利技术提供了一种数据库的共享内存缓冲池处理方法、存储介质与设备。上述方法包括:获取缓冲池设置指令;根据缓冲池设置指令确定被指定的B树索引以及被指定的B树索引的待固定节点;将B树索引的固定缓冲池标记设置为固定状态;在接收到对被指定的B树索引的访问后,执行将待固定节点的节点页面移入固定缓冲池的流程,其中固定缓冲池为预先在数据库的内存缓存空间内开辟的独立于普通缓冲池的缓冲池。本发明专利技术的方案,避免了B树索引的页面控制结构并发更新带来的开销上升,实现了高并发场景下数据库索引查询的性能大幅度的提升。据库索引查询的性能大幅度的提升。据库索引查询的性能大幅度的提升。

【技术实现步骤摘要】
数据库的共享内存缓冲池处理方法、存储介质与设备


[0001]本专利技术涉及数据库技术,特别是涉及一种B树索引数据库的共享内存缓冲池处理方法、存储介质与设备。

技术介绍

[0002]B树索引是数据库中最常使用的一种索引,其可以支持在可排序数据上的处理等值和范围查询,并大大增加使用此索引的查询速度。B树索引通过排序数据并构建一棵B树来使得查找数据、顺序访问、插入数据、删除数据的动作都能在对数时间内完成。
[0003]B树概括来说是一个一般化的自平衡的n叉查找树。与自平衡二叉查找树不同,B树为系统大块数据的读写操作做了优化,B树减少定位记录时所经历的中间过程,从而加开存取速度。
[0004]在B树中,内部(非叶子)节点可以拥有可变数量的子节点,数量范围预先定义好。当数据被插入或从一个节点中移除,它的子节点数量发生变化,为了维持在预先设置的数量范围内,内部节点可能被合并或分离。因为子节点数量有一定的允许范围,所以B树不需要像其他自平衡查找树那样频繁的重新保持平衡。一个B树通过约束所有叶子节点在相同的深度保持平衡,整个树的深度会在数据被添加至树的过程中缓慢增长。
[0005]此外,原始的B树存在一些变体,如B+树和B*树,在广义上也可以认为属于B树一类的方案,也常被用作数据库索引使用。
[0006]B树构建索引的查找结构确实能大大加快数据库查找数据的速度。B树结构可以保证整个过程中读入的节点数足够少,并保证I/O(输入/输出)开销很小.然而,B树中所有的搜索操作均是由其根节点出发,逐层级前往存储键值的节点,这意味着对根节点的访问操作可能成为系统的瓶颈。
[0007]数据库对一个页面访问时,需要更新页面控制结构,主要是对引用计数器的更新,引用计数器记录了页面当前是否存在引用者以及最近是否存在引用者,用于进行缓冲区置换的判断。这部分开销通常是来说占比是较小的,但是随着并发量地提升,对页面控制结构的并发更新带来的开销也急剧上升,并成为不可忽视的一部分。因此对于B树索引,根节点或者底层节点页面的控制结构更新也会带来较大的开销。然而对这些页面控制结构不进行更新,则会带来其他干扰,例如影响内存缓冲区置换。

技术实现思路

[0008]本专利技术的一个目的是要提供一种避免B树索引的页面控制结构并发更新带来的开销上升。
[0009]本专利技术一个进一步的目的是要使得提高数据库的整体性能。
[0010]特别地,本专利技术提供了一种B树索引数据库的共享内存缓冲池处理方法,该方法包括:
[0011]获取缓冲池设置指令;
[0012]根据缓冲池设置指令确定被指定的B树索引以及被指定的B树索引的待固定节点;
[0013]将B树索引的固定缓冲池标记设置为固定状态;
[0014]在接收到对被指定的B树索引的访问后,执行将待固定节点的节点页面移入固定缓冲池的流程,其中固定缓冲池为预先在数据库的内存缓存空间内开辟的独立于普通缓冲池的缓冲池。
[0015]可选地,根据缓冲池设置指令确定被指定的B树索引以及被指定的B树索引的待固定节点的步骤包括:
[0016]对缓冲池设置指令进行解析;
[0017]根据解析结果中的B树索引信息确定被指定的B树索引;
[0018]将被指定的B树索引的根节点以及深度小于设定值的子节点作为待固定节点。
[0019]可选地,将待固定节点的节点页面移入固定缓冲池的流程包括:
[0020]将节点页面缓存至普通缓冲池;
[0021]获取固定缓冲池的剩余空间大小;
[0022]判断剩余空间是否足以存储节点页面;
[0023]若是,则将节点页面移入固定缓冲池。
[0024]可选地,在将节点页面移入固定缓冲池的步骤之后,还包括:
[0025]将节点页面的固定标记设置为固定状态;
[0026]停止对节点页面的引用计数器进行更新。
[0027]可选地,在剩余空间不足以存储节点页面的情况下还包括:将节点页面存储于普通缓冲池,并维持对节点页面的引用计数器进行更新。
[0028]可选地,在将节点页面存储于普通缓冲池的步骤之后还包括:在固定缓冲池出现解除固定事件后,重新执行判断剩余空间是否足以存储节点页面的步骤。
[0029]可选地,在执行将待固定节点的节点页面移入固定缓冲池的流程的步骤之后还包括:
[0030]获取对被指定的B树索引的访问,确定访问目标页面;
[0031]判断访问目标页面的固定标记是否为固定状态;
[0032]若是,忽略对访问目标页面的引用计数器的处理,并从固定缓冲池读取访问目标页面;
[0033]若否,更新访问目标页面的引用计数器,并从普通缓冲池读取访问目标页面。
[0034]可选地,上述B树索引数据库的共享内存缓冲池处理方法还包括:
[0035]获取解除固定指令;
[0036]根据解除固定指令待解除固定的B树索引;
[0037]执行对待解除固定的B树索引移出固定缓冲池的流程,以释放固定缓冲池的空间。
[0038]根据本专利技术的另一个方面,还提供了一种机器可读存储介质,其上存储有机器可执行程序,机器可执行程序被处理器执行时实现上述任一种的B树索引数据库的共享内存缓冲池处理方法。
[0039]根据本专利技术的又一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的机器可执行程序,并且处理器执行机器可执行程序时实现上述任一种的B树索引数据库的共享内存缓冲池处理方法。
[0040]本专利技术的B树索引数据库的共享内存缓冲池处理方法,将被指定的B树索引中的待固定节点的节点页面(一般为根节点以及深度较小的子节点),固定在内存缓存空间内开辟的独立于普通缓冲池的固定缓冲池内。固定缓冲池与普通缓冲池互相独立,在节点页面移入固定缓冲池后,该节点页面不再参与普通页面置换,从而避免了B树索引的页面控制结构并发更新带来的开销上升,实现了高并发场景下数据库索引查询的性能大幅度的提升。
[0041]进一步地,本专利技术的B树索引数据库的共享内存缓冲池处理方法,B树索引的节点页面通过缓冲池设置指令进行设置,实现了灵活配置,在数据库用户正确进行设置的情况下,可以有效提升数据库的整体性能。
[0042]更进一步地,本专利技术的B树索引数据库的共享内存缓冲池处理方法,对B树索引的节点页面移入固定缓冲池的流程进行了优化,利用B树索引的固定缓冲池标记以及节点页面的固定标记对B树索引及其节点页面的固定缓存状态进行了标记,便于进行节点页面的缓存操作、访问请求的响应等操作。
[0043]根据下文结合附图对本专利技术具体实施例的详细描述,本领域技术人员将会更加明了本专利技术的上述以及其他目的、优点和特征。
附图说明
[0044]后文将参照附图以示例性而非限制性的方式详细描述本专利技术的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种B树索引数据库的共享内存缓冲池处理方法,包括:获取缓冲池设置指令;根据所述缓冲池设置指令确定被指定的B树索引以及所述被指定的B树索引的待固定节点;将所述B树索引的固定缓冲池标记设置为固定状态;在接收到对所述被指定的B树索引的访问后,执行将所述待固定节点的节点页面移入固定缓冲池的流程,其中所述固定缓冲池为预先在所述数据库的内存缓存空间内开辟的独立于普通缓冲池的缓冲池。2.根据权利要求1所述的B树索引数据库的共享内存缓冲池处理方法,其中,所述根据所述缓冲池设置指令确定被指定的B树索引以及所述被指定的B树索引的待固定节点的步骤包括:对所述缓冲池设置指令进行解析;根据解析结果中的B树索引信息确定所述被指定的B树索引;将所述被指定的B树索引的根节点以及深度小于设定值的子节点作为所述待固定节点。3.根据权利要求1所述的B树索引数据库的共享内存缓冲池处理方法,其中,所述将所述待固定节点的节点页面移入固定缓冲池的流程包括:将所述节点页面缓存至所述普通缓冲池;获取所述固定缓冲池的剩余空间大小;判断所述剩余空间是否足以存储所述节点页面;若是,则将所述节点页面移入所述固定缓冲池。4.根据权利要求3所述的B树索引数据库的共享内存缓冲池处理方法,其中,在将所述节点页面移入所述固定缓冲池的步骤之后,还包括:将所述节点页面的固定标记设置为固定状态;停止对所述节点页面的引用计数器进行更新。5.根据权利要求3所述的B树索引数据库的共享内存缓冲池处理方法,其中,在所述剩余空间不足以存储所述节点页面的情况下还包括:将所述...

【专利技术属性】
技术研发人员:冷建全孙文奇
申请(专利权)人:北京人大金仓信息技术股份有限公司
类型:发明
国别省市:

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

1