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

技术编号:34475177 阅读:13 留言:0更新日期:2022-08-10 08:50
本发明专利技术提供了一种数据库共享内存缓冲池的处理方法、存储介质与设备。其中上述方法包括:获取对数据库的访问,并确定访问的目标关系;判断目标关系是否预先被指定为固定缓冲关系;若是,判断访问是否为目标关系被指定后的首次访问;若为首次访问,则将目标关系缓存至数据库的共享内存的缓存空间,然后启动将目标关系移入固定缓冲池的流程,其中固定缓冲池为预先在缓存空间内开辟的独立缓冲池。本发明专利技术的方法页面置换导致的多余I/O开销,可以有效提升数据库的整体性能。升数据库的整体性能。升数据库的整体性能。

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


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

技术介绍

[0002]数据库中通常会在内存中设置一个共享缓冲池区域,其在所有服务会话间共享,为所有关系表提供缓冲服务,以避免每次读取关系表时需要去磁盘中读取。在缓冲池中读取某页面称为命中缓冲池,而去磁盘中读取页面称为未命中。众所周知,对内存区域的访问远远快于对磁盘的访问,因此有必要尽可能降低未命中的概率。
[0003]然而,由于缓冲池的容量是有限的,当缓冲池耗尽时,我们不得不将一部分页面移除出缓冲池,该过程称为缓冲区置换。显然,判断哪些页面是最有可能不再被访问的页面是缓冲区置换技术的核心要点。
[0004]现有技术中存在一些缓冲区置换技术,例如LRU(Least Recently Used,最近最少使用)、LFU(Least Frequently Used,最不经常使用)、FIFO(First Input First Output,先入先出)等。这些缓冲区置换技术分别有各自的一些特点,分别具有各自所适应的场景下。其中最常见的置换算法为LRU,则能在大多数访问序列下均有不错的表现。但不可避免地,由于访问序列的难以预测性以及缓冲区容量本身所带来的限制,这些置换技术总会存在某些特定的访问序列,出现非最优的置换页面判断,导致非必要的缓冲区换出,进而降低访问的命中率。
[0005]理论上的最优置换算法,称为OPT(OPTimal replacement,最佳页面替换),这种理论上的最佳算法基于能提前确定所有访问序列的假设,因此通常不适用于实际场景。
[0006]因此,现有技术的缓冲区置换技术都无法保证所有访问序列下的最优,例如数据库用户对表A和表B两张表进行操作,其中表A远大于表B,也远大于缓冲区容量,而表B的访问频率远高于表A。此时,由于表A占用的缓冲区过多而多次触发置换,基于LRU等主流置换算法则很容易频繁的将表B换出缓冲区,然后在下次访问时再次读入,造成大量多余的I/O(Input/Output,输入/输出)开销。

技术实现思路

[0007]本专利技术的一个目的是要提供一种减少因缓冲池置换导致的多余I/O开销。
[0008]本专利技术一个进一步的目的是要使得提高数据库的整体性能。
[0009]特别地,本专利技术提供了一种数据库共享内存缓冲池的处理方法,其包括:
[0010]获取对数据库的访问,并确定访问的目标关系;
[0011]判断目标关系是否预先被指定为固定缓冲关系;
[0012]若是,判断访问是否为目标关系被指定后的首次访问;
[0013]若为首次访问,则将目标关系缓存至数据库的共享内存的缓存空间,然后启动将目标关系移入固定缓冲池的流程,其中固定缓冲池为预先在缓存空间内开辟的独立缓冲
池。
[0014]可选地,判断目标关系是否预先被指定为固定缓冲关系的步骤包括:
[0015]打开目标关系,并读取目标关系的固定缓冲池标记;
[0016]根据固定缓冲池标记确定目标关系是否为预先被指定为固定缓冲关系。
[0017]可选地,在获取对数据库的访问的步骤之前,还包括:
[0018]获取缓冲池设置指令;
[0019]解析缓冲池设置指令,以确定出需要指定的固定缓冲关系;
[0020]将固定缓冲关系的固定缓冲池标记修改为固定状态。
[0021]可选地,将目标关系移入固定缓冲池的流程包括:
[0022]获取固定缓冲池的剩余空间大小;
[0023]确定剩余空间是否足以存储目标关系;
[0024]若是,则将目标关系移入固定缓冲池,并将目标关系的固定标记设置为真。
[0025]可选地,在剩余空间不足以存储目标关系的情况下还包括:停止将目标关系移入固定缓冲池,使得目标关系存储于缓存空间的普通缓冲池中,并参与普通缓冲池的缓冲置换。
[0026]可选地,在将目标关系移入固定缓冲池的步骤之后还包括:
[0027]将目标关系的引用计数器置为大于等于1,并在共享内存的缓存空间进行缓冲置换的过程中,维持目标关系的引用计数器大于等于1。
[0028]可选地,在访问并非目标关系被指定后的首次访问的情况下,还包括:
[0029]判断目标关系是否已被移入固定缓冲池;
[0030]若否,则重新启动将目标关系移入固定缓冲池的流程。
[0031]可选地,固定缓冲池的容量大小通过配置文件进行预先配置。
[0032]根据本专利技术的另一个方面,还提供了一种机器可读存储介质,其上存储有机器可执行程序,机器可执行程序被处理器执行时实现上述任一种的数据库共享内存缓冲池的处理方法。
[0033]根据本专利技术的又一个方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的机器可执行程序,并且处理器执行机器可执行程序时实现上述任一种的数据库共享内存缓冲池的处理方法。
[0034]本专利技术的数据库共享内存缓冲池的处理方法,在数据库的共享内存的缓存空间预先开辟固定缓冲池以及普通缓冲池,其中普通缓冲池使用传统的缓冲置换算法,进行页面的普通置换。固定缓冲池用于供数据库用户指定的关系进行缓冲。固定缓冲池与普通缓冲池互相独立,在关系移入固定缓冲池后,该固定缓冲关系不再参与普通页面置换,减少了因页面置换导致的多余I/O开销。
[0035]进一步地,本专利技术的数据库共享内存缓冲池的处理方法,固定缓冲关系通过缓冲池设置指令进行设置,实现了灵活配置,在数据库用户正确进行设置的情况下,可以有效提升数据库的整体性能。
[0036]更进一步地,本专利技术的数据库共享内存缓冲池的处理方法,固定缓冲关系配置了固定缓冲池标记和固定标记,通过这两个标记可以标识固定缓冲关系的设置状态和缓冲状态,为固定缓冲关系移入固定缓冲池、移出固定缓冲池、在普通缓冲池内的等待等操作提供
了支持。
[0037]根据下文结合附图对本专利技术具体实施例的详细描述,本领域技术人员将会更加明了本专利技术的上述以及其他目的、优点和特征。
附图说明
[0038]后文将参照附图以示例性而非限制性的方式详细描述本专利技术的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
[0039]图1是根据本专利技术一个实施例的数据库共享内存缓冲池的处理方法的示意流程图;
[0040]图2根据本专利技术一个实施例的数据库共享内存缓冲池的处理方法中数据库共享内存的示意图;
[0041]图3是根据本专利技术一个实施例的数据库共享内存缓冲池的处理方法进行关系固定的流程示意图;
[0042]图4是根据本专利技术一个实施例的数据库共享内存缓冲池的处理方法取消关系固定的流程示意图;
[0043]图5是根据本专利技术一个实施例的机器可读存储介质的示意图;以及
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库共享内存缓冲池的处理方法,包括:获取对所述数据库的访问,并确定所述访问的目标关系;判断所述目标关系是否预先被指定为固定缓冲关系;若是,判断所述访问是否为所述目标关系被指定后的首次访问;若为首次访问,则将所述目标关系缓存至所述数据库的共享内存的缓存空间,然后启动将所述目标关系移入固定缓冲池的流程,其中所述固定缓冲池为预先在所述缓存空间内开辟的独立缓冲池。2.根据权利要求1所述的数据库共享内存缓冲池的处理方法,其中,所述判断所述目标关系是否预先被指定为固定缓冲关系的步骤包括:打开所述目标关系,并读取所述目标关系的固定缓冲池标记;根据所述固定缓冲池标记确定所述目标关系是否为预先被指定为固定缓冲关系。3.根据权利要求2所述的数据库共享内存缓冲池的处理方法,其中,在所述获取对所述数据库的访问的步骤之前,还包括:获取缓冲池设置指令;解析所述缓冲池设置指令,以确定出需要指定的固定缓冲关系;将所述固定缓冲关系的固定缓冲池标记修改为固定状态。4.根据权利要求1所述的数据库共享内存缓冲池的处理方法,其中,所述将所述目标关系移入固定缓冲池的流程包括:获取所述固定缓冲池的剩余空间大小;确定所述剩余空间是否足以存储所述目标关系;若是,则将所述目标关系移入所述固定缓冲池,并将所述目标关系的固定标记设置为真。5.根据权利要求4所述的数据库共享内存缓冲...

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

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

1