CN114461590A - 一种基于关联规则的数据库文件页预取方法及装置 - Google Patents
一种基于关联规则的数据库文件页预取方法及装置 Download PDFInfo
- Publication number
- CN114461590A CN114461590A CN202111575915.1A CN202111575915A CN114461590A CN 114461590 A CN114461590 A CN 114461590A CN 202111575915 A CN202111575915 A CN 202111575915A CN 114461590 A CN114461590 A CN 114461590A
- Authority
- CN
- China
- Prior art keywords
- file
- pages
- page
- file page
- storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种基于关联规则的数据库文件页预取方法及装置,该方法包括:获取当前读取的第一文件页及预取文件页数量要求;基于第一文件页,按照预设文件页间的关联规则确定磁盘中对应的第二文件页;基于预取文件页数量要求与预设存储阈值的关系,确定第二文件页的存储方式;基于存储方式,从第二文件页中提取满足预取文件页数量要求的第三文件页加载至内存。从而通过利用数据库中存在很多关联规则,能够反映出数据的访问趋势,通过关联规则预取文件页,能够提升数据库预取准确率,减少数据库等待时间,提高数据库响应速度,通过灵活确定预取文件页在内存中的存储方式,以消耗最小的内存、cpu和磁盘资源,取得最大的数据库性能提升。
Description
技术领域
本发明涉及数据库技术领域,具体涉及一种基于关联规则的数据库文件页预取方法及装置。
背景技术
在数据库系统中,文件页(简称page)是磁盘存储和管理的最小单位。数据库在接收sql请求后访问数据的过程为:
1、计算数据在磁盘中的文件页。
2、从磁盘加载文件页到内存。
3、从内存读取数据。
在此过程中,计算数据位置和内存读取数据的耗时可以忽略不计,最为耗时的步骤是从磁盘加载数据到内存中。在数据库在处理sql请求的过程中,处理内存数据和磁盘IO是可以并行的;如果能够在处理内存数据的同时,读取出下一步需要加载的文件页(page),就能够减少等待磁盘IO的时间,提升数据库响应速度,进而提升数据库的事务处理能力。
现有的预取方法主要是基于程序局部性原理的线性预取,即当程序访问到一个page时,预取与该文件页连续的多个page到内存中。主要是按照块号顺序(顺序或降序),预取和当前访问page块号连续的多个page;该方法在全表扫描时效果会特别好,因为扫描时会按顺序读取多个连续的page。但是该方法无法预测出非连续关联的page,并且对内存、cpu和磁盘资源的消耗较大,影响数据库的响应速度。
发明内容
有鉴于此,本发明实施例提供了一种基于关联规则的数据库文件页预取方法及装置,以克服现有技术中基于程序局部性原理的线性预取的文件页的方法,对内存、cpu和磁盘资源的消耗较大,影响数据库响应速度的问题。
本发明实施例提供了一种基于关联规则的数据库文件页预取方法,包括:
获取当前读取的第一文件页及预取文件页数量要求;
基于所述第一文件页,按照预设文件页间的关联规则确定磁盘中对应的第二文件页;
基于所述预取文件页数量要求与预设存储阈值的关系,确定所述第二文件页的存储方式;
基于所述存储方式,从所述第二文件页中提取满足所述预取文件页数量要求的第三文件页加载至内存。
可选地,所述基于所述预取文件页数量要求与预设存储阈值的关系,确定所述第二文件页的存储方式,包括:
判断所述预取文件页数量要求是否小于所述预设存储阈值;
在所述预取文件页数量要求小于所述预设存储阈值时,将所述存储方式确定为数组存储。
可选地,在所述预取文件页数量要求不小于所述预设存储阈值,判断所述预取文件页数量要求是否超过所述预设存储阈值的预定范围,所述预设存储阈值的预定范围大于所述预设存储阈值;
在所述预取文件页数量要求不超过所述预设存储阈值的预定范围时,将所述存储方式确定为LRU链表存储。
可选地,在所述预取文件页数量要求超过所述预设存储阈值的预定范围时,将所述存储方式确定为双向LRU链表存储。
可选地,在所述存储方式为数组存储时,所述基于所述存储方式,从所述第二文件页中提取满足所述预取文件页数量要求的第三文件页加载至内存,包括:
基于预设文件页间的关联规则,计算第二文件页与所述第一文件页之间的关联强度值;
采用最大堆算法从所述第二文件页中依次提取出关联强度值最强的满足所述预取文件页数量要求的第三文件页;
将第三文件页按照提取顺序进行数组存储,并加载至内存;
在所述存储方式为LRU链表存储时,所述基于所述存储方式,从所述第二文件页中提取满足所述预取文件页数量要求的第三文件页加载至内存,包括:
基于预设文件页间的关联规则,计算第二文件页与所述第一文件页之间的关联强度值;
采用LRU算法从所述第二文件页中依次提取出关联强度值最强的满足所述预取文件页数量要求的第三文件页;
将第三文件页按照提取顺序进行LRU链表存储,并加载至内存;
在所述存储方式为双向LRU链表存储时,所述基于所述存储方式,从所述第二文件页中提取满足所述预取文件页数量要求的第三文件页加载至内存,包括:
基于预设文件页间的关联规则,计算第二文件页与所述第一文件页之间的关联强度值;
采用LRU算法从所述第二文件页中依次提取出关联强度值最强的满足所述预取文件页数量要求的第三文件页;
将第三文件页按照提取顺序进行双向LRU链表存储,并加载至内存。
可选地,所述方法还包括:
在监测到满足预设文件页间的关联规则的第四文件页存在变更操作时,基于变更操作的操作类型,对所述内存中加载的第三文件页进行更新所述第四文件为在磁盘中存储的文件页。
可选地,所述预设文件页间的关联规则包括:用户自定义的固有关联预取规则、基于文件页历史访问顺序的时间共生关联预取规则以及基于文件页在内存文件缓冲池中存在空间共生关系的空间共生关联预取规则中的任意一种。
本发明实施例还提供了一种基于关联规则的数据库文件页预取装置,包括:
获取模块,用于获取当前读取的第一文件页及预取文件页数量要求;
第一处理模块,用于基于所述第一文件页,按照预设文件页间的关联规则确定磁盘中对应的第二文件页;
第二处理模块,用于基于所述预取文件页数量要求与预设存储阈值的关系,确定所述第二文件页的存储方式;
第三处理模块,用于基于所述存储方式,从所述第二文件页中提取满足所述预取文件页数量要求的第三文件页加载至内存。
本发明实施例还提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行本发明实施例提供方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行本发明实施例提供的方法。
本发明技术方案,具有如下优点:
本发明实施例提供了一种基于关联规则的数据库文件页预取方法及装置,通过获取当前读取的第一文件页及预取文件页数量要求;基于第一文件页,按照预设文件页间的关联规则确定磁盘中对应的第二文件页;基于预取文件页数量要求与预设存储阈值的关系,确定第二文件页的存储方式;基于存储方式,从第二文件页中提取满足预取文件页数量要求的第三文件页加载至内存。从而通过利用数据库中存在很多关联规则,能够反映出数据的访问趋势,通过关联规则预取文件页,能够提升数据库预取准确率,减少数据库等待时间,提高数据库响应速度,并且通过需要预取文件页的数量和内存所能承受的预设存储阈值的关系,灵活确定预取文件页在内存中的存储方式,以达到消耗最小的内存、cpu和磁盘资源,取得最大的数据库性能提升,使得可通过对预取文件页数量、存储方式等参数进行调优,使得预取对数据库性能的提升与预取对内存和磁盘的消耗达到一个最佳平衡。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中的基于关联规则的数据库文件页预取方法的流程图;
图2为本发明实施例中的基于访问记录的共生关联提取文件页的示意图;
图3为本发明实施例中预取文件页的不同存储方式随预取文件页数量增多的变化过程示意图;
图4为本发明实施例中的基于关联规则的数据库文件页预取工作过程示意图;
图5为本发明实施例中的基于关联规则的数据库文件页预取装置的结构示意图;
图6为本发明实施例中的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
在数据库系统中,文件页(page)是磁盘存储和管理的最小单位。数据库在接收sql请求后访问数据的过程为:
1、计算数据在磁盘中的文件页。
2、从磁盘加载文件页到内存。
3、从内存读取数据。
在此过程中,计算数据位置和内存读取数据的耗时可以忽略不计,最为耗时的步骤是从磁盘加载数据到内存中。在数据库在处理sql请求的过程中,处理内存数据和磁盘IO是可以并行的;如果能够在处理内存数据的同时,读取出下一步需要加载的文件页(page),就能够减少等待磁盘IO的时间,提升数据库响应速度,进而提升数据库的事务处理能力。
现有的预取方法主要是基于程序局部性原理的线性预取,即当程序访问到一个page时,预取与该文件页连续的多个page到内存中。主要是按照块号顺序(顺序或降序),预取和当前访问page块号连续的多个page;该方法在全表扫描时效果会特别好,因为扫描时会按顺序读取多个连续的page。但是该方法无法预测出非连续关联的page,并且对内存、cpu和磁盘资源的消耗较大,影响数据库的响应速度。
而在实际应用中,page之间的非连续关联规则也十分重要,比如外键关联,触发器关联,时间和空间共生关联等。在数据库系统中,对预取page预测越准确,则数据库的响应速度越快。所以本发明提出一种基于关联规则的数据库文件页预取方法及装置。如图1所示,该方法具体包括如下步骤:
步骤S101:获取当前读取的第一文件页及预取文件页数量要求。
其中,第一文件页为用户在数据库中命中的实际进行读取的文件页。该预取文件页数量要求为需要从磁盘中提前缓存至内存中以供用户进行读取的文件页的数量,预取文件页数量要求可根据数据库对用户读取响应速率的性能要求紧灵活的而设置,如数据库期望提高响应速度时,可以增加预取文件页的数量,反之,则可以减少预设文件页的数量,在实际应用中,该预取文件页数量要求例如可以是16个或32个等,本发明并不以此为限。
步骤S102:基于第一文件页,按照预设文件页间的关联规则确定磁盘中对应的第二文件页。
其中,第二文件页为与用户读取的文件页具有预设文件页间的关联规则的文件页,第二文件页的数量可能为一个或多个,预设文件页间的关联规则包括:用户自定义的固有关联预取规则、基于文件页历史访问顺序的时间共生关联预取规则以及基于文件页在内存文件缓冲池中存在空间共生关系的空间共生关联预取规则中的任意一种。
其中,固有关联预取规则:在数据库中,存在很多用户定义的联系,比如外键约束,触发器联系等等,此类关联为page的固有联系,可直接依据该规则提取相应的文件页;时间共生关联预取规则:如图2所示,记录每一个会话中访问page的块号即文件页序号的访问顺序,生成一个page访问序列,共生关联即在一个固定长度的滑动窗口在序列滑动过程中,两个page同时存在于一个滑动窗口时,则认为两个page有时间共生关系,在滑动窗口滑动过程中,出现的共生次数越多,则共生关系越强,如图2中标记的page2和page8;空间共生关系的空间共生关联预取规则:通过一个后台进程,定期对内存page缓冲池进行采样,同时在缓冲池中的page即存在空间共生关联,被采样到次数越多,则共生关联越强。采样频率不能过高,需要与数据库的吞吐量等数据进行参数调整。
步骤S103:基于预取文件页数量要求与预设存储阈值的关系,确定第二文件页的存储方式。
其中,预设存储阈值为根据实际内存的大小以及对内存消耗影响综合确定的文件页加载阈值,示例性地,假设内存为16G,则期望保持预取文件页占用内存比例不大于1/16,则最多允许1G的文件页,则可以基于每个文件页占用的字节数,计算文件页加载阈值。
步骤S104:基于存储方式,从第二文件页中提取满足预取文件页数量要求的第三文件页加载至内存。
其中,第三文件页为所有第二文件页构成文件页集合的子集。具体地,为了避免文件页加载过多存储占用过多的内存同时兼顾数据库的响应速度,通过根据预取文件的数量来灵活确定其在内存中的存储方式。
通过执行上述步骤,本发明实施例提供的基于关联规则的数据库文件页预取方法,通过利用数据库中存在很多关联规则,能够反映出数据的访问趋势,通过关联规则预取文件页,能够提升数据库预取准确率,减少数据库等待时间,提高数据库响应速度,并且通过需要预取文件页的数量和内存所能承受的预设存储阈值的关系,灵活确定预取文件页在内存中的存储方式,以达到消耗最小的内存、cpu和磁盘资源,取得最大的数据库性能提升,使得可通过对预取文件页数量、存储方式等参数进行调优,使得预取对数据库性能的提升与预取对内存和磁盘的消耗达到一个最佳平衡。
具体地,在一实施例中,上述的步骤S103具体包括如下步骤:
步骤S301:判断预取文件页数量要求是否小于预设存储阈值。
步骤S302:在预取文件页数量要求小于预设存储阈值时,将存储方式确定为数组存储。
具体地,由于数组存储方式具有占用内存大但是响应速度较快的特点,因此,在预取文件数量不多的情况下,将预取文件页采用数组形式进行存储。
步骤S303:在预取文件页数量要求不小于预设存储阈值,判断预取文件页数量要求是否超过预设存储阈值的预定范围。
其中,预设存储阈值的预定范围大于预设存储阈值。示例性地,预设存储阈值的预定范围为10倍的预设存储阈值。
具体地,因此,在预取文件数量增大到一定程度即超过预设存储阈值,但超过还不太多的情况下,数组的存储方式将造成内存消耗过多而影响数据库性能,因此数组的存储方式将不再适用,此时执行步骤S304。
步骤S304:在预取文件页数量要求不超过预设存储阈值的预定范围时,将存储方式确定为LRU链表存储。
具体地,由于LRU链表存储占用内存较少,且对数据库响应速度影响不大,因此,将预取文件页采用LRU链表进行存储。
步骤S305:在预取文件页数量要求超过预设存储阈值的预定范围时,将存储方式确定为双向LRU链表存储。
具体地,如果预取文件数量持续增大到超过预设存储阈值的预定范围时,则说明该预取文件数量将严重影响数据库性能,从而优先保障数据库性能不出现明显下降的情况下,再去提高数据库响应速度,因此,将预取文件页采用LRU链表进行存储。具体存储方式随预取文件页数量的增多而变化的过程如图3所示,其中图3中的Page关联矩阵对应上述数组存储方式,一级LRU缓存即为上述LRU链表存储方式,2级LRU缓存对应上述双向LRU链表存储方式。
具体地,在一实施例中,在存储方式为数组存储时,上述步骤S104具体包括如下步骤:
步骤S401:基于预设文件页间的关联规则,计算第二文件页与第一文件页之间的关联强度值。
示例性地,假设预设文件页间的关联规则为外键约束,则可以直接根据外键约束的内容依次确定对应文件页关联强度值,在约束内容中与第一文件页越紧密的文件页对应的关联强度值越高等,仅以此为例,本发明并不以此为限。
步骤S402:采用最大堆算法从第二文件页中依次提取出关联强度值最强的满足预取文件页数量要求的第三文件页。
具体地,最大堆算法为以空间换时间的算法,其具体实现过程可参见现有技术的相关描述,在此不再进行赘述。
步骤S403:将第三文件页按照提取顺序进行数组存储,并加载至内存。
具体地,假设上述预取文件页数量要求用BUF_READ_AHEAD_NUM表示,预设存储阈值用MATRIX_STORGE_THRESHOLD表示,则有当page块号小于MATRIX_STORGE_THRESHOLD时,采用矩阵(数组)进行存储,每次预取时采用最大堆计算出需要预取的关联性最强的BUF_READ_AHEAD_NUM个page。
具体地,在一实施例中,在存储方式为LRU链表存储时,上述步骤S104具体包括如下步骤:
步骤S501:基于预设文件页间的关联规则,计算第二文件页与第一文件页之间的关联强度值。详细内容参见上述步骤S401的相关描述,在此不再进行赘述。
步骤S502:采用LRU算法从第二文件页中依次提取出关联强度值最强的满足预取文件页数量要求的第三文件页。
具体地,LRU是Least Recently Used的缩写,即最近最少使用页面置换算法,是为虚拟页式存储管理服务的,是根据页面调入内存后的使用情况进行决策。其具体实现过程可参见现有技术的相关描述,在此不再进行赘述。
步骤S503:将第三文件页按照提取顺序进行LRU链表存储,并加载至内存。
具体地,当page块号大于MATRIX_STORGE_THRESHOLD时,采用固定尺寸的LRU链表进行存储,即存储每个page关联规则中关联强度最强的前BUF_READ_AHEAD_NUM个page;同时采用LRU算法来计算page的关联强度,即最近最少关联算法淘汰关联弱的page。
具体地,在一实施例中,在存储方式为双向LRU链表存储时,上述步骤S104具体包括如下步骤:
步骤S601:基于预设文件页间的关联规则,计算第二文件页与第一文件页之间的关联强度值。详细内容参见上述步骤S401的相关描述,在此不再进行赘述。
步骤S602:采用LRU算法从第二文件页中依次提取出关联强度值最强的满足预取文件页数量要求的第三文件页。详细内容参见上述步骤S502的相关描述,在此不再进行赘述。
步骤S603:将第三文件页按照提取顺序进行双向LRU链表存储,并加载至内存。
具体地,当page块号大于10倍MATRIX_STORGE_THRESHOLD时,采用LRU算法淘汰多余的page,即上述LRU链表的基础上再加一级LRU缓存来维护需要存储的page链表,即只存储固定数量的page,并且只保留最近多访问的page以供数据库请求预取page。以解决page太多导致存储占用过多的问题。关于双向LRU链表的详细内容参见现有技术的相关描述,在此不再进行赘述。
具体地,在一实施例中,上述的方法还包括如下步骤:
步骤S105:在监测到满足预设文件页间的关联规则的第四文件页存在变更操作时,基于变更操作的操作类型,对内存中加载的第三文件页进行更新。
其中,第四文件为在磁盘中存储的文件页。变更操作包括:将满足预设文件页间的关联规则的文件页删除和新增其他满足预设文件页间的关联规则文件页。
如果将满足预设文件页间的关联规则的文件页删除,此时,在内存中将删除的文件页从内存中预取的文件页中删除,并依次调整该文件页后续文件页的顺序,并采用上述步骤类似的方式在内存中最后一个空余的文件页的位置补入其他顺位的文件页,以保持内存中预取文件页数量满足文件页预取数量要求。或者,新增其他满足预设文件页间的关联规则文件页。
如果新增其他满足预设文件页间的关联规则文件页,则通过上述步骤比较新增文件页与内存中预取的其余文件页的关联强度值进行比较,对内存中已有的文件页进行更新。此外,需要说明的是,在数据库中,page的元组删除,更新等情况经常发生,此类变化导致对page的关联计算成本过大,故在本发明实施例中不予处理。
下面将结合具体应用示例,如图4所示,对本发明实施例提供的基于关联规则的数据库文件页预取方法的实现过程进行介绍。
当客户端读取一个数据库page时:
1.如果这个page不在缓冲池中,则从磁盘中读取到page;
2.判断是否需要使用现有顺序预取方法进行page预取,如果需要则顺序预取;
3.判断是否需要使用本发明实施例提供的方法基于特有的关联的page预取,如果需要,则进行关联预取;
4.否则不预取。
关于page预取实施方式:
1.buf_reader中保留顺序预取步骤,顺序预取体现了程序的时间和空间局部性原理,并且以及被证明具有实际效益,故予以保留;
2.buf_reader中调用关联预取方法,与顺序预取并列执行
3.关联预取方法中去掉顺序预取关系;由于顺序预取中顺序关系发生频率过高,故不计入关联关系,以减少关联关系存储空间。
关于关联规则提取和维护实施:
1.固有关联:固有关联为用户自定义的固有联系,主要有外键关联,触发器关联等,此类关联需要在数据新增、删除和修改时调整联系。
2.时间共生关联:如附图2所示,时间共生关系需要根据历史会话的page访问顺序记录进行提取。本发明会定期保存近期一段时间内的会话访问page顺序序列,并且进行共生关联提取,该周期不能过长,需要根据数据库的增删改频率来调整该参数;对于增删改频率高的数据库,时间共生关系提取周期短,反之,周期要长;时间共生关系维护需要在单独的进程中进行维护;
3.空间共生关联:一段时间内同时存在内存中page具有空间共生关系,内存采样则为时间点采样,故需要多次进行采样才能统计出时间段内的空间共生关系。但是如果在内存爆满时,空间共生关系就无法提醒其关联价值了,故当内存中占用比例高于一个阈值时,应该停止采样。
4.page删除/新增时的关联矩阵调整:page删除或新增时,清除该page的所有关联关系。
预取的page存储实施如附图3所示,主要分为三个部分:
1.当page数目比较小时,可以采用数组进行存储,即数组表示关联矩阵;矩阵的每一项为对应两个page的关联强度;
2.当page数目大于MATRIX_STORGE_THRESHOLD时,采样固定长度的LRU链表来存储关联page的关联强度,即每次更新关联关系时,优先删除最近最少关联的page;因为LRU不能直接体现出关联强度,故在更新关联矩阵时可以根据关联强度的逆序进行更新插入;
3.当page块号大于10倍MATRIX_STORGE_THRESHOLD时,采样固定长度的LRU链表来维护需要存储的page链表,即只存储固定数量的page,并且只保留最近多访问的page以供数据库请求预取page。
本发明实施例所提供的技术方案相对现有技术主要有如下优点:
第一点是相对于现有顺序预取方法,本发明的方法通过关联规则进行预取,能够提高page预取的准确率,进而能够提升数据库响应速度。
第二点是本发明可以通过参数调优,以达到消耗最小的内存、cpu和磁盘资源,取得最大的数据库性能提升,通过对预取page数量、存储方式等参数进行调优,使得预取对数据库性能的提升与预取对内存和磁盘的消耗达到一个最优解。
通过执行上述步骤,本发明实施例提供的基于关联规则的数据库文件页预取方法,通过利用数据库中存在很多关联规则,能够反映出数据的访问趋势,通过关联规则预取文件页,能够提升数据库预取准确率,减少数据库等待时间,提高数据库响应速度,并且通过需要预取文件页的数量和内存所能承受的预设存储阈值的关系,灵活确定预取文件页在内存中的存储方式,以达到消耗最小的内存、cpu和磁盘资源,取得最大的数据库性能提升,使得可通过对预取文件页数量、存储方式等参数进行调优,使得预取对数据库性能的提升与预取对内存和磁盘的消耗达到一个最佳平衡。
本发明实施例还提供了一种基于关联规则的数据库文件页预取装置,如图5所示,该基于关联规则的数据库文件页预取装置包括:
获取模块101,用于获取当前读取的第一文件页及预取文件页数量要求。详细内容参见上述方法实施例中步骤S101的相关描述,在此不再进行赘述。
第一处理模块102,用于基于第一文件页,按照预设文件页间的关联规则确定磁盘中对应的第二文件页。详细内容参见上述方法实施例中步骤S102的相关描述,在此不再进行赘述。
第二处理模块103,用于基于预取文件页数量要求与预设存储阈值的关系,确定第二文件页的存储方式。详细内容参见上述方法实施例中步骤S103的相关描述,在此不再进行赘述。
第三处理模块104,用于基于存储方式,从第二文件页中提取满足预取文件页数量要求的第三文件页加载至内存。详细内容参见上述方法实施例中步骤S103的相关描述,在此不再进行赘述。
通过上述各个组成部分的协同合作,本发明实施例提供的基于关联规则的数据库文件页预取装置,通过利用数据库中存在很多关联规则,能够反映出数据的访问趋势,通过关联规则预取文件页,能够提升数据库预取准确率,减少数据库等待时间,提高数据库响应速度,并且通过需要预取文件页的数量和内存所能承受的预设存储阈值的关系,灵活确定预取文件页在内存中的存储方式,以达到消耗最小的内存、cpu和磁盘资源,取得最大的数据库性能提升,使得可通过对预取文件页数量、存储方式等参数进行调优,使得预取对数据库性能的提升与预取对内存和磁盘的消耗达到一个最佳平衡。
上述各个模块的更进一步的功能描述与上述对应方法实施例相同,在此不再赘述。
根据本发明实施例还提供了一种电子设备,如图6所示,该电子设备可以包括处理器901和存储器902,其中处理器901和存储器902可以通过总线或者其他方式连接,图6中以通过总线连接为例。
处理器901可以为中央处理器(Central Processing Unit,CPU)。处理器901还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器902作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明方法实施例中的方法所对应的程序指令/模块。处理器901通过运行存储在存储器902中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的方法。
存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需要的应用程序;存储数据区可存储处理器901所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至处理器901。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器902中,当被处理器901执行时,执行上述方法实施例中的方法。
上述电子设备具体细节可以对应参阅上述方法实施例中对应的相关描述和效果进行理解,此处不再赘述。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,实现的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种基于关联规则的数据库文件页预取方法,其特征在于,包括:
获取当前读取的第一文件页及预取文件页数量要求;
基于所述第一文件页,按照预设文件页间的关联规则确定磁盘中对应的第二文件页;
基于所述预取文件页数量要求与预设存储阈值的关系,确定所述第二文件页的存储方式;
基于所述存储方式,从所述第二文件页中提取满足所述预取文件页数量要求的第三文件页加载至内存。
2.根据权利要求1所述的方法,其特征在于,所述基于所述预取文件页数量要求与预设存储阈值的关系,确定所述第二文件页的存储方式,包括:
判断所述预取文件页数量要求是否小于所述预设存储阈值;
在所述预取文件页数量要求小于所述预设存储阈值时,将所述存储方式确定为数组存储。
3.根据权利要求2所述的方法,其特征在于,
在所述预取文件页数量要求不小于所述预设存储阈值,判断所述预取文件页数量要求是否超过所述预设存储阈值的预定范围,所述预设存储阈值的预定范围大于所述预设存储阈值;
在所述预取文件页数量要求不超过所述预设存储阈值的预定范围时,将所述存储方式确定为LRU链表存储。
4.根据权利要求3所述的方法,其特征在于,
在所述预取文件页数量要求超过所述预设存储阈值的预定范围时,将所述存储方式确定为双向LRU链表存储。
5.根据权利要求4所述的方法,其特征在于,在所述存储方式为数组存储时,所述基于所述存储方式,从所述第二文件页中提取满足所述预取文件页数量要求的第三文件页加载至内存,包括:
基于预设文件页间的关联规则,计算第二文件页与所述第一文件页之间的关联强度值;
采用最大堆算法从所述第二文件页中依次提取出关联强度值最强的满足所述预取文件页数量要求的第三文件页;
将第三文件页按照提取顺序进行数组存储,并加载至内存;
在所述存储方式为LRU链表存储时,所述基于所述存储方式,从所述第二文件页中提取满足所述预取文件页数量要求的第三文件页加载至内存,包括:
基于预设文件页间的关联规则,计算第二文件页与所述第一文件页之间的关联强度值;
采用LRU算法从所述第二文件页中依次提取出关联强度值最强的满足所述预取文件页数量要求的第三文件页;
将第三文件页按照提取顺序进行LRU链表存储,并加载至内存;
在所述存储方式为双向LRU链表存储时,所述基于所述存储方式,从所述第二文件页中提取满足所述预取文件页数量要求的第三文件页加载至内存,包括:
基于预设文件页间的关联规则,计算第二文件页与所述第一文件页之间的关联强度值;
采用LRU算法从所述第二文件页中依次提取出关联强度值最强的满足所述预取文件页数量要求的第三文件页;
将第三文件页按照提取顺序进行双向LRU链表存储,并加载至内存。
6.根据权利要求1所述的方法,其特征在于,还包括:
在监测到满足预设文件页间的关联规则的第四文件页存在变更操作时,基于变更操作的操作类型,对所述内存中加载的第三文件页进行更新所述第四文件为在磁盘中存储的文件页。
7.根据权利要求1所述的方法,其特征在于,所述预设文件页间的关联规则包括:用户自定义的固有关联预取规则、基于文件页历史访问顺序的时间共生关联预取规则以及基于文件页在内存文件缓冲池中存在空间共生关系的空间共生关联预取规则中的任意一种。
8.一种基于关联规则的数据库文件页预取装置,其特征在于,包括:
获取模块,用于获取当前读取的第一文件页及预取文件页数量要求;
第一处理模块,用于基于所述第一文件页,按照预设文件页间的关联规则确定磁盘中对应的第二文件页;
第二处理模块,用于基于所述预取文件页数量要求与预设存储阈值的关系,确定所述第二文件页的存储方式;
第三处理模块,用于基于所述存储方式,从所述第二文件页中提取满足所述预取文件页数量要求的第三文件页加载至内存。
9.一种电子设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令执行权利要求1-7任一项所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111575915.1A CN114461590A (zh) | 2021-12-21 | 2021-12-21 | 一种基于关联规则的数据库文件页预取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111575915.1A CN114461590A (zh) | 2021-12-21 | 2021-12-21 | 一种基于关联规则的数据库文件页预取方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114461590A true CN114461590A (zh) | 2022-05-10 |
Family
ID=81405960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111575915.1A Pending CN114461590A (zh) | 2021-12-21 | 2021-12-21 | 一种基于关联规则的数据库文件页预取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114461590A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11966338B2 (en) | 2022-07-19 | 2024-04-23 | International Business Machines Corporation | Prefetching management in database system based on number of pages being prefetched |
-
2021
- 2021-12-21 CN CN202111575915.1A patent/CN114461590A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11966338B2 (en) | 2022-07-19 | 2024-04-23 | International Business Machines Corporation | Prefetching management in database system based on number of pages being prefetched |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7386675B2 (en) | Systems and methods for using excitement values to predict future access to resources | |
EP3229142B1 (en) | Read cache management method and device based on solid state drive | |
CN108710639B (zh) | 一种基于Ceph的海量小文件存取优化方法 | |
US8601216B2 (en) | Method and system for removing cache blocks | |
CN108920387B (zh) | 降低读延迟的方法、装置、计算机设备及存储介质 | |
US6782454B1 (en) | System and method for pre-fetching for pointer linked data structures | |
US10853250B2 (en) | Storage management method, electronic device and computer program product | |
CN104657286A (zh) | 一种分级存储方法及装置 | |
US6959363B2 (en) | Cache memory operation | |
CN114490445A (zh) | 支持积极预取的快速高速缓存跟踪 | |
US20230315627A1 (en) | Cache line compression prediction and adaptive compression | |
WO2022143692A1 (zh) | 数据预取的方法、装置和设备 | |
CN111708720A (zh) | 一种数据缓存方法、装置、设备及介质 | |
CN117235088B (zh) | 一种存储系统的缓存更新方法、装置、设备、介质及平台 | |
CN114461590A (zh) | 一种基于关联规则的数据库文件页预取方法及装置 | |
CN113094392A (zh) | 数据缓存的方法和装置 | |
CN113726341A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN111913913B (zh) | 访问请求的处理方法和装置 | |
CN101853218A (zh) | 用于磁盘阵列的读取方法和系统 | |
CN115080459A (zh) | 缓存管理方法及装置、计算机可读存储介质 | |
CN113435601A (zh) | 数据预取方法、装置以及存储设备 | |
US20230297382A1 (en) | Cache line compression prediction and adaptive compression | |
CN116027982A (zh) | 数据处理方法、设备及可读存储介质 | |
CN113253922B (zh) | 缓存管理方法、装置、电子设备和计算机可读存储介质 | |
CN114461948A (zh) | Web缓存设置优化方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |