CN116775713B - 基于数据访问模式的数据库主被动缓存优化方法 - Google Patents
基于数据访问模式的数据库主被动缓存优化方法 Download PDFInfo
- Publication number
- CN116775713B CN116775713B CN202311055718.6A CN202311055718A CN116775713B CN 116775713 B CN116775713 B CN 116775713B CN 202311055718 A CN202311055718 A CN 202311055718A CN 116775713 B CN116775713 B CN 116775713B
- Authority
- CN
- China
- Prior art keywords
- data blocks
- data
- access
- accessed
- data block
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000005457 optimization Methods 0.000 title claims abstract description 23
- 239000011159 matrix material Substances 0.000 claims description 130
- 238000003860 storage Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 claims description 9
- 238000005096 rolling process Methods 0.000 claims description 5
- 238000004422 calculation algorithm Methods 0.000 abstract description 22
- 230000008569 process Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于数据访问模式的数据库主被动缓存优化方法。涉及数据访问缓存的技术领域,该基于数据访问模式的数据库主被动缓存优化方法包括:获取在观测时段中的历史访问模式,其中,历史访问模式包括每次历史访问对应的数据块信息;基于历史访问模式确定各个数据块之间的关联程度,其中,关联程度指示两个数据块在同一次访问中均被访问的概率;在目标数据块被访问的情况下,将与目标数据块关联程度排序在前的预设数量的关联数据块存入缓存区。本发明解决了现有的数据访问缓存算法使得数据缓存效率很低的技术问题。
Description
技术领域
本发明涉及数据访问缓存的技术领域,具体而言,涉及一种基于数据访问模式的数据库主被动缓存优化方法。
背景技术
当前在单节点数据库中数据缓存通常使用的算法包括LRU、LRFU等常见算法,以及先进先出的队列算法FIFO等,这些算法存在以下不足:
1,时效性及命中率差
当前常见的缓存优化算法仅根据最近一次访问时间来决定替换顺序,并不能准确反映数据的热度。一个过去频繁访问现在不用的数据被访问了一次,就会被判定为热数据而留在缓存中,导致缓存效率降低;
2,未考虑数据大小
仅根据访问时间进行替换,没有考虑不同数据块的大小,这样可能导致大量低访问率数据占满缓存空间;
3,算法缺乏可调整性
采用固定的替换策略,难以根据实际场景进行调优,无法适应不同的工作负载;
4. 均是被动缓存策略
缓存均为基于当前访问的数据块进行被动缓存,没有预见性,缓存效率低。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种基于数据访问模式的数据库主被动缓存优化方法,以至少解决现有的数据访问缓存算法使得数据缓存效率很低的技术问题。
根据本发明实施例的一个方面,提供了一种基于数据访问模式的数据库主被动缓存优化方法,包括:获取在观测时段中的历史访问模式,其中,上述历史访问模式包括每次历史访问对应的数据块信息;基于上述历史访问模式确定各个数据块之间的关联程度,其中,上述关联程度指示两个数据块在同一次访问中均被访问的概率;在目标数据块被访问的情况下,将与上述目标数据块关联程度排序在前的预设数量的关联数据块存入缓存区。
优选地,基于上述历史访问模式确定各个数据块之间的关联程度,包括:基于上述历史访问模式确定每个数据块的被访问次数;按照上述被访问次数从多到少对上述数据块进行排序,形成被访问次数序列;根据数据块在上述被访问次数序列中位次差距确定数据块之间的关联程度。
优选地,基于上述历史访问模式确定各个数据块之间的关联程度,包括:确定在观测时段中观测窗口按照预设滚动步长每次截取的每个数据块的被访问次数构建的被访问向量,其中,上述观测时段的时长大于上述观测窗口的时长;根据每个数据块的被访问向量计算每个数据块的被访问频率的协方差;按照上述访问频率的协方差对上述数据块进行排序,形成被访问频率序列;根据数据块在上述被访问频率序列中位次差距确定数据块之间的关联程度。
优选地,基于上述历史访问模式确定各个数据块之间的关联程度,包括:基于上述历史访问模式中的访问请求建立数据块的关联矩阵,其中,上述关联矩阵中列表示访问请求、行表示数据块,并用不同数值标识对应访问请求是否请求访问对应数据块;根据上述关联矩阵计算得到的数据块之间的欧式距离确定数据块之间的关联程度。
优选地,建立数据块的关联矩阵之后,还包括:获取预设的数据块数量阈值和访问请求数量阈值;在上述关联矩阵的行数达到上述数据块数量阈值或列数达到上述访问请求数量阈值的情况下,基于上述关联矩阵计算数据块之间的欧式距离,得到历史距离矩阵,其中,基于上述历史距离矩阵直接确定在对应时段内数据块之间的欧氏距离;在上述关联矩阵的行数再次达到上述数据块数量阈值或列数再次达到上述访问请求数量阈值的情况下,合并当前距离矩阵与上述历史距离矩阵,得到更新后的历史距离矩阵。
优选地,合并当前距离矩阵与上述历史距离矩阵,得到更新后的历史距离矩阵,包括:在上述当前距离矩阵中对应位置未存在于上述历史距离矩阵时,将上述当前距离矩阵对应位置的数据添加在更新后的历史距离矩阵;在上述当前距离矩阵中对应位置存在于上述历史距离矩阵时,利用位于对应位置的两个数据加权平均结果更新历史距离矩阵。
优选地,基于上述历史访问模式确定各个数据块之间的关联程度,包括:基于上述历史访问模式确定每次访问请求中包括的字段和上述访问请求实际访问到的数据块;根据上述访问请求包括的全部字段对上述访问请求进行分类,并确定每类访问请求对应的实际访问到的数据块集合;在各个数据块集合中根据数据块实际被访问的次数确定数据块之间的关联程度。
优选地,在将与上述目标数据块关联程度排序在前的预设数量的关联数据块存入缓存区之后,还包括:在缓存区的存储空间达到置换阈值时,基于缓存区当前存储的各个数据块的实际被访问频率、数据量和被访问的时间,计算各个数据块的优先级数值;根据各个数据块的优先级数值确定出移除出缓存区的一个或多个数据块。
根据本发明实施例的另一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述基于数据访问模式的数据库主被动缓存优化方法。
根据本发明实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过所述计算机程序执行上述的基于数据访问模式的数据库主被动缓存优化方法。基于数据访问模式的数据库主被动缓存优化方法。
在本发明实施例中,采用基于观测时段中的历史访问模式确定各个数据块之间的关联程度,在目标数据块被访问的情况下,将与目标数据块关联程度排序在前的预设数量的关联数据块存入缓存区的方式,通过目标数据块在被访问时,主动将关联数据块,也就是可能访问的数据进行缓存,达到了基于历史访问模式和已访问的数据块预测当前访问在访问目标数据块后可能继续访问的数据的目的,从而实现了将可能被访问的数据主动缓存以提高缓存效率的技术效果,进而解决了现有的数据访问缓存算法使得数据缓存效率很低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种基于数据访问模式的数据库主被动缓存优化的流程示意图;
图2是根据本发明实施例的一种可选的基于数据访问模式的数据库主被动缓存优化装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、算法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、算法、产品或设备固有的其它步骤或单元。
根据本发明实施例的一个方面,提供了一种基于数据访问频率的数据库缓存分区算法,该基于数据访问频率的数据库缓存分区算法广泛应用于需要应答各类请求,将待应答数据存储在缓存区中以应答请求的应用场景
作为一种可选的实施方式,如图1所示,上述基于数据访问模式的数据库主被动缓存优化方法包括:
S102,获取在观测时段中的历史访问模式,其中,历史访问模式包括每次历史访问对应的数据块信息;
S104,基于历史访问模式确定各个数据块之间的关联程度,其中,关联程度指示两个数据块在同一次访问中均被访问的概率;
S106,在目标数据块被访问的情况下,将与目标数据块关联程度排序在前的预设数量的关联数据块存入缓存区。
观测时段不限于为在当前访问之前的历史时段,在观测时段中存在多次历史访问模式。观测时段的时长不限于预设或根据历史访问模式的数量确定,以通过足够数量的历史访问模式的统计更为准确的确定各个数据块之间的关联程度。
每次历史访问对应的数据块信息不限于为每次历史访问实际访问的数据块具体是哪个或哪几个数据块。
可选地,基于观测时段中的历史访问模式确定各个数据块之间的关联程度,不限于在观测时段中设置观测窗口,通过观测窗口的移动以在有限的历史访问模式的基础上,利用窗口统计提高数据块之间关联程度的准确率。
各个数据块之间的相关程度不限于为各个数据块在同一次访问中均被访问的概率。通过在确定各个数据块之间的关联程度后,在当前访问调用目标数据块的情况下,将预设数量的、与目标数据块的关联程度排序在前的关联数据块主动存入缓存区。预设数量不限于为主动的关联缓存预设的数据块阈值,按照预设数量确定与目标数据块最相关的关联数据块,并存入缓存区。
在本发明实施例中,采用基于观测时段中的历史访问模式确定各个数据块之间的关联程度,在目标数据块被访问的情况下,将与目标数据块关联程度排序在前的预设数量的关联数据块存入缓存区的方式,通过目标数据块在被访问时,主动将关联数据块,也就是可能访问的数据进行缓存,达到了基于历史访问模式和已访问的数据块预测当前访问在访问目标数据块后可能继续访问的数据的目的,从而实现了将可能被访问的数据主动缓存以提高缓存效率的技术效果,进而解决了现有的数据访问缓存算法使得数据缓存效率很低的技术问题。
作为一种可选的实施方式,基于历史访问模式确定各个数据块之间的关联程度,包括:
S104-22,基于历史访问模式确定每个数据块的被访问次数;
S104-24,按照被访问次数从多到少对数据块进行排序,形成被访问次数序列;
S104-26,根据数据块在被访问次数序列中位次差距确定数据块之间的关联程度。
根据观测时段中历史访问模式确定每个数据块的被访问次数,按照被访问次数由多到少进行排序,根据数据块在被访问次数序列中的位次差距确定数据块之间的关联程度。不限于位次差距越小关联程度越高。
例如,当前被访问的目标数据块为被访问次数序列中的第一位数据块,预设数量的阈值为 ,那么将被访问次数序列中排在目标数据块后的/>个数据块存入缓存。
作为一种可选的实施方式,基于历史访问模式确定各个数据块之间的关联程度,包括:S104-42,确定在观测时段中观测窗口按照预设滚动步长每次截取的每个数据块的被访问次数构建的被访问向量,其中,观测时段的时长大于观测窗口的时长;
S104-44,根据每个数据块的被访问向量计算每个数据块的被访问频率的协方差;
S104-46,按照访问频率的协方差对数据块进行排序,形成被访问频率序列;
S104-48,根据数据块在被访问频率序列中位次差距确定数据块之间的关联程度。
基于观测时段内的各个数据块被访问次数的基础上,不限于设置观测窗口,观测窗口按照滚动步长依次在观测时段内滚动。对于每个观测窗口,计算数据块的被访问频率,不限于基于观测窗口内被访问次数确定。对每个观测窗口对应的被访问频率计算观测时段内每个数据块的被访问频率的协方差,基于以观测窗口为单位的被访问频率的协方差对数据块进行排序,得到被访问频率序列,从而按照数据块在序列中的位次差距确定关联程度。不限于位次差距越小关联程度越高。
作为一种可选的实施方式,基于历史访问模式确定各个数据块之间的关联程度,包括:
S104-62,基于历史访问模式中的访问请求建立数据块的关联矩阵,其中,关联矩阵中列表示访问请求、行表示数据块,并用不同数值标识对应访问请求是否请求访问对应数据块;
S104-64,根据关联矩阵计算得到的数据块之间的欧式距离确定数据块之间的关联程度。
基于历史访问模式中每个访问请求所访问的数据块建立关联矩阵,利用关联矩阵计算数据块之间的欧式距离,确定数据块之间的关联程度。基于历史访问模式的基于每次访问请求所访问的数据块,以行标识数据块、以列标识访问请求,不限于利用数值表示该访问请求所访问的数据块包括该数据块,利用数值/>表示该访问请求所访问的数据块不包括该数据块。
作为一种可选的实施方式,建立数据块的关联矩阵之后,还包括:S22,获取预设的数据块数量阈值和访问请求数量阈值;
S24,在关联矩阵的行数达到数据块数量阈值或列数达到访问请求数量阈值的情况下,基于关联矩阵计算数据块之间的欧式距离,得到历史距离矩阵,其中,基于历史距离矩阵直接确定在对应时段内数据块之间的欧氏距离;
S26,在关联矩阵的行数再次达到数据块数量阈值或列数再次达到访问请求数量阈值的情况下,合并当前距离矩阵与历史距离矩阵,得到更新后的历史距离矩阵。
可选地,建立关联矩阵的过程中,或者建立关联矩阵后,为便于关联矩阵的更新,设置数据块数量阈值和访问请求数量阈值,在关联矩阵的行或列达到对应阈值的情况下,利用关联矩阵计算数据块之间的欧氏距离,得到历史距离矩阵。历史距离矩阵为对称矩阵,在得到历史距离矩阵之后,不限于将关联矩阵清空,以节省存储空间。
通过历史距离矩阵不限于直接获取数据块之间的欧氏距离,而无需对每个数据块之间的欧氏距离进行临时计算,提高数据块之间关联程度的计算效率。
在关联矩阵的行或列再次达到阈值时,再次计算数据块之间的欧氏距离,得到当前距离矩阵。合并当前距离矩阵和历史距离矩阵以更新历史距离矩阵,基于历史距离矩阵直接获取各个数据块之间的欧氏距离,从而更加快速确定与目标数据块关联程度排序在前的相关数据块。
作为一种可选的实施方式,合并当前距离矩阵与历史距离矩阵,得到更新后的历史距离矩阵,包括:
S26-2,在当前距离矩阵中对应位置未存在于历史距离矩阵时,将当前距离矩阵对应位置的数据添加在更新后的历史距离矩阵;
S26-4,在当前距离矩阵中对应位置存在于历史距离矩阵时,利用位于对应位置的两个数据加权平均结果更新历史距离矩阵。
合并两个距离矩阵的具体方式为确定当前距离矩阵中的数据所在位置是否存在于历史距离矩阵中,在数据所在位置未存在于历史距离矩阵中时,直接将该数据按照所在位置添加在历史距离矩阵中;在数据所在位置存在于历史距离矩阵中时,将两个矩阵中在相同位置的数据进行加权平均,将加权平均结果保存在历史距离矩阵中,以更新历史距离矩阵。
作为一种可选的实施方式,基于历史访问模式确定各个数据块之间的关联程度,包括:
S104-82,基于历史访问模式确定每次访问请求中包括的字段和访问请求实际访问到的数据块;
S104-84,根据访问请求包括的全部字段对访问请求进行分类,并确定每类访问请求对应的实际访问到的数据块集合;
S104-86,在各个数据块集合中根据数据块实际被访问的次数确定数据块之间的关联程度。
数据块之间的关联程度的另一种确定方式不限于将缓存区分为两级,一级缓存中存储访问请求中每个字段对应的结果集,不限于包括对应的数据块标志及数据库文件中的偏移或位置以及数据是否存在于二级缓存中的标志。二级缓存中存储被访问的实际数据。
在此基础上,基于历史访问模式,对访问请求中包括的字段和实际访问的数据块,根据访问请求中包括的全部字段对访问请求进行分类,并确定每一分类对应的实际访问的数据块集合。不限于将位于同一分类集合中的数据块作为具备关联的数据块,具体的,不限于在各个分类数据块集合中根据实际被访问次数确定关联程度。例如,在确定当前访问请求的分类后,将位于该分类中被访问次数最多的预设数量的数据块存入缓存区。
作为一种可选的实施方式,在将与目标数据块关联程度排序在前的预设数量的关联数据块存入缓存区之后,还包括:
S108,在缓存区的存储空间达到置换阈值时,基于缓存区当前存储的各个数据块的实际被访问频率、数据量和被访问的时间,计算各个数据块的优先级数值;
S110,根据各个数据块的优先级数值确定出移除出缓存区的一个或多个数据块。
在主动将关联数据块存入缓存区的情况下,利用缓存置换对缓存区进行即时的数据置换更新,避免因缓存区被当前不需要的数据块占用导致的效率低。
在缓存区当前缓存的数据量达到预设的置换阈值时,根据各个数据块的实际被访问频率、数据量和被访问时间确定每个数据块的优先级,不限于将优先级低的数据块置换出去,以留出空间给待缓存的数据。
具体的,将关联数据块存入缓存区为主动缓存,将缓存区中优先级低的数据块移出缓存区为缓存置换。主动缓存的确定方式不限于有如下几种:
第一种,记录在观测时段内访问请求所读取的数据块/>,/>,/>等 />个数据块的访问次数/>,并将数据块访问次数进行排序。假设缓存区缓存的数据块的阈值为/>,在当前访问请求读取访问次数最多的数据块/>,则将访问次数排序在数据块/>后的 /> 个数据块主动存入缓存区。在当前访问请求读取的是访问次数排序在其他位次的数据块,不限于将排序在该数据块前后的/>个数据块主动存入缓存区。
第二种,设置观测时间,窗口大小为/>,/>,滚动步长为/>,在观测时间内使用到的/>个数据块根据滚动步长为/>获取/>长度的 />个关于访问次数的观测值向量/>,其中 />是在一个时间窗口中本数据块被访问的次数。
基于每个数据块被访问次数的观测值向量计算各个数据块的访问频率的协方差 :,得到协方差矩阵。在下一次用户的访问请求访问数据块/>时,将协方差排序相邻的 />个数据块缓存至缓冲区中。
第三种,建立历史关联矩阵,对观测时段中的每次访问请求,建立访问请求和访问数据块的关联矩阵。例如,针对第一个访问请求,访问,/>,/>三个数据块,则当前确定一个/> 的关联矩阵/>。在获取到下一个访问请求时,如访问/>、/>、/>、/>四个数据块,将关联矩阵进行扩展,形成一个 />的关联矩阵/>,以此类推,最终在有 />个访问请求,涉及/>个数据块时,对于每个数据块的访问情况得到长度为/>的观测值向量/>。向量中/>和/>表示在第对应访问请求中:数据块/>是否被访问到,总体得到一个/>的关联矩阵,
。
基于欧几里得距离公式计算任意两个数据块的欧氏距离,其中 A、B 为需要计算距离的数据块观测值向量。以上述矩阵为例, A与B数据块的欧式距离为 2 ,A与C 数据块的距离为 1 , 那么表示 A与C 的关联性比A与B 的关联性更强。在缓存阈值为/>的情况下,将距离目标数据块的欧氏距离中取最小的前 的情况下,将距离目标数据块的欧氏距离中取最小的前/> 个数据块,为关联数据块,结合缓冲区剩余空间大小将/> 个关联数据块存入缓冲区中。
在此种方法基础上,为避免运算占用空间过大,设置和/>的阈值,在关联矩阵达到任意一个阈值时,进行欧几里得距离运算,得到/>的历史距离矩阵 :,此历史距离矩阵为对称矩阵,在得到结果矩阵后可以将关联矩阵清空以节省空间。
在关联矩阵的 M 与 N 再次达到阈值时,再次计算欧氏距离结果并与之前的历史距离矩阵进行合并。合并过程中在历史距离矩阵中不存在的数据块的关联数据直接添加在历史距离矩阵中;对于存在的数据块的关联数据,将历史结果值与当前结果值进行加权平均,其中 />、/>为历史结果值和当前结果值,以屏蔽某次访问请求中关联的数据块过多的影响。
第四种:在嵌入式数据库中不限于将访问请求分为两步,首先执行查询语句或接口,得到语句的结果集;然后对结果集使用游标进行遍历或挑选,以得到最终每个字段的实际访问数据,也就是在结果集中的数据并不一定会被实际访问到。
相对的,在缓冲区中设置二级缓存,在一级缓存中存储查询结果集,包括数据块的标志以及数据库文件中的偏移或位置,以及数据是否已经存在于二级缓存中的标志。在二级缓存中存储数据块的实际数据。
将观测时段内的历史访问请求进行分类,对数据表中每个字段的访问请求设置标志,并记录每个标志后续相关的查询记录以计算数据块之间的关联性。
假设在观测时段内共有 个访问请求/>,针对数据表中的所有字段进行分类,假设数据表中有/>个数据字段,则字段分类共有/>种,将全部历史访问请求对应到字段分类中,针对每种字段分类统计每个访问请求实际访问到的数据块。设置缓存阈值/>,在当前访问请求到来并确定访问请求对应的字段分类时,不限于将此类请求对应的数据块集合中,访问次数最多的前/>个数据块存入到缓冲区中。缓存置换具体不限于将缓存中优先级较低的数据移除,以将待访问的数据换入,提升缓冲区的使用效率,提升访问请求的响应速度。具体的,缓存置换考虑数据的访问频率、最后访问时间以及数据块的数据量大小这三个参数,以确定数据块的优先级,确定待置换的数据块。
设置观测时间,在观测时间内使用到的 />个数据块根据滚动步长获取/>长度的 /> 个关于访问次数的观测值向量/>,其中/>是在一个时间窗口中本数据块被访问的次数。进一步统计每个数据块的数据大小,得到长度为 />的一维向量:/> ,并在每一个数据块被访问时更新最后一次的访问时间 /> 缓存中的数据块被访问的实际数据缓存进来之后开始算。
基于访问统计数据,在缓冲区已满或达到缓存置换条件时进行优先级计算,具体计算方式为针对当前位于缓存区的 个数据块,建立优先级矩阵/> ,对每个数据块的访问数量观测值取均值得到访问密度/>,基于访问密度、数据块大小、访问时间,求出对应的优先级为/>。其中, />为系统当前时间,/>为调整系数。不限于数据块访问密度越大优先级越高,最后访问的时间越近,优先级越高,数据块的大小越小优先级越高。也就是缓冲区中访问量最少、最后访问时间最久远、数据块越大的数据块首先就行缓存置换,从而使一次置换效率最高。
可选的,不限于优先级结果进行取整,将优先级结果作为分类标准,同一类优先级的数据不限于统一进行缓存置换。在实际的应用中不限于以链表或数组等方式将同一优先级的数据块进行连接,以加快数据置换速率。置换数量最少为待进入缓存的数据块大小。
可选的、/> 等时间戳调整记录的精度,如以毫秒为单位,最后访问时间的影响将大于以秒为单位,并且相应的也可以设置调整系数/>对间间戳进行调整,根据需要或者访问方式调整整体的置换算法的各项参数的重要性。
在本申请实施例中,通过主动缓存,基于历史访问模式,包括数据块的关联关系对数据块之间的访问关联性进行预测,将关联性最高的数据块主动的装载到缓冲区中,提升数据库操作的数据命中率,提升缓冲区的使用效率。在缓存置换时考虑访问频率、数据大小、最后访问时间等因素,实现缓存置换的优先级计算方式,缓存置换基于历史数据进行参数、优先级等的动态计算调整,提升缓存区的使用效率。
需要说明的是,对于前述的各算法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
根据本发明实施例的另一个方面,还提供了一种用于实施上述基于数据访问模式的数据库主被动缓存优化方法的基于数据访问模式的数据库主被动缓存优化装置。如图2所示,该装置包括:
历史单元202,用于获取在观测时段中的历史访问模式,其中,历史访问模式包括每次历史访问对应的数据块信息;
关联单元204,用于基于历史访问模式确定各个数据块之间的关联程度,其中,关联程度指示两个数据块在同一次访问中均被访问的概率;
主动缓存单元206,用于在目标数据块被访问的情况下,将与目标数据块关联程度排序在前的预设数量的关联数据块存入缓存区。
可选地,上述关联单元202包括:基于历史访问模式确定每个数据块的被访问次数;按照被访问次数从多到少对数据块进行排序,形成被访问次数序列;根据数据块在被访问次数序列中位次差距确定数据块之间的关联程度。
可选地,上述关联单元202包括:确定在观测时段中观测窗口按照预设滚动步长每次截取的每个数据块的被访问次数构建的被访问向量,其中,观测时段的时长大于观测窗口的时长;根据每个数据块的被访问向量计算每个数据块的被访问频率的协方差;按照访问频率的协方差对数据块进行排序,形成被访问频率序列;根据数据块在被访问频率序列中位次差距确定数据块之间的关联程度。
可选地,上述关联单元202包括:基于历史访问模式中的访问请求建立数据块的关联矩阵,其中,关联矩阵中列表示访问请求、行表示数据块,并用不同数值标识对应访问请求是否请求访问对应数据块;根据关联矩阵计算得到的数据块之间的欧式距离确定数据块之间的关联程度。
可选地,上述基于数据访问频率的数据库缓存分区装置还包括关联矩阵更新单元,用于建立数据块的关联矩阵之后,获取预设的数据块数量阈值和访问请求数量阈值;在关联矩阵的行数达到数据块数量阈值或列数达到访问请求数量阈值的情况下,基于关联矩阵计算数据块之间的欧式距离,得到历史距离矩阵,其中,基于历史距离矩阵直接确定在对应时段内数据块之间的欧氏距离;在关联矩阵的行数再次达到数据块数量阈值或列数再次达到访问请求数量阈值的情况下,合并当前距离矩阵与历史距离矩阵,得到更新后的历史距离矩阵。
可选地,上述关联矩阵更新单元合并当前距离矩阵与历史距离矩阵,得到更新后的历史距离矩阵,包括:在当前距离矩阵中对应位置未存在于历史距离矩阵时,将当前距离矩阵对应位置的数据添加在更新后的历史距离矩阵;在当前距离矩阵中对应位置存在于历史距离矩阵时,利用位于对应位置的两个数据加权平均结果更新历史距离矩阵。
可选地,上述关联单元202基于历史访问模式确定各个数据块之间的关联程度,包括:基于历史访问模式确定每次访问请求中包括的字段和访问请求实际访问到的数据块;根据访问请求包括的全部字段对访问请求进行分类,并确定每类访问请求对应的实际访问到的数据块集合;在各个数据块集合中根据数据块实际被访问的次数确定数据块之间的关联程度。
可选地,上述基于数据访问频率的数据库缓存分区装置还包括缓存置换单元,用于在将与目标数据块关联程度排序在前的预设数量的关联数据块存入缓存区之后,在缓存区的存储空间达到置换阈值时,基于缓存区当前存储的各个数据块的实际被访问频率、数据量和被访问的时间,计算各个数据块的优先级数值;根据各个数据块的优先级数值确定出移除出缓存区的一个或多个数据块。
在本申请实施例中,采用基于观测时段中的历史访问模式确定各个数据块之间的关联程度,在目标数据块被访问的情况下,将与目标数据块关联程度排序在前的预设数量的关联数据块存入缓存区的方式,通过目标数据块在被访问时,主动将关联数据块,也就是可能访问的数据进行缓存,达到了基于历史访问模式和已访问的数据块预测当前访问在访问目标数据块后可能继续访问的数据的目的,从而实现了将可能被访问的数据主动缓存以提高缓存效率的技术效果,进而解决了现有的数据访问缓存算法使得数据缓存效率很低的技术问题。
根据本发明实施例的又一个方面,还提供了一种用于实施上述基于数据访问模式的数据库主被动缓存优化方法的电子设备,该电子设备可以是图1所示的终端设备或服务器。本实施例以该电子设备为终端设备为例来说明。该电子设备包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为通过计算机程序执行上述任一项算法实施例中的步骤。
可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取在观测时段中的历史访问模式,其中,历史访问模式包括每次历史访问对应的数据块信息;
S2,基于历史访问模式确定各个数据块之间的关联程度,其中,关联程度指示两个数据块在同一次访问中均被访问的概率;
S3,在目标数据块被访问的情况下,将与目标数据块关联程度排序在前的预设数量的关联数据块存入缓存区。
可选地,本领域普通技术人员可以理解,电子设备也可以是任意终端设备。其中,存储器可用于存储软件程序以及模块,如本发明实施例中的基于数据访问模式的数据库主被动缓存优化方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述基于数据访问模式的数据库主被动缓存优化方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。作为一种示例,上述存储器中可以但不限于包括上述基于数据访问模式的数据库主被动缓存优化装置中的各个单元。此外,还可以包括但不限于上述基于数据访问频率的数据库缓存分区装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置包括一个网络适配器(NetworkInterface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子设备还包括:显示器和连接总线,用于连接上述电子设备中的各个模块部件。
在其他实施例中,上述终端设备或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(P2P,Peer To Peer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述基于数据访问模式的数据库主被动缓存优化方面的各种可选实现方式中提供的算法。其中,该计算机程序被设置为运行时执行上述任一项算法实施例中的步骤。
可选地,在本实施例中,上述计算机可读的存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取在观测时段中的历史访问模式,其中,历史访问模式包括每次历史访问对应的数据块信息;
S2,基于历史访问模式确定各个数据块之间的关联程度,其中,关联程度指示两个数据块在同一次访问中均被访问的概率;
S3,在目标数据块被访问的情况下,将与目标数据块关联程度排序在前的预设数量的关联数据块存入缓存区。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种算法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述算法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (5)
1.一种基于数据访问模式的数据库主被动缓存优化方法,其特征在于,包括:
获取在观测时段中的历史访问模式,其中,所述历史访问模式包括每次历史访问对应的数据块信息;
基于所述历史访问模式确定各个数据块之间的关联程度,包括:
基于所述历史访问模式确定每个数据块的被访问次数,按照所述被访问次数从多到少对所述数据块进行排序,形成被访问次数序列,根据数据块在所述被访问次数序列中位次差距确定数据块之间的关联程度,其中,所述关联程度指示两个数据块在同一次访问中均被访问的概率;
还包括:确定在观测时段中观测窗口按照预设滚动步长每次截取的每个数据块的被访问次数构建的被访问向量,其中,所述观测时段的时长大于所述观测窗口的时长,根据每个数据块的被访问向量计算每个数据块的被访问频率的协方差,按照所述访问频率的协方差对所述数据块进行排序,形成被访问频率序列,根据数据块在所述被访问频率序列中位次差距确定数据块之间的关联程度;
还包括:基于所述历史访问模式中的访问请求建立数据块的关联矩阵,其中,所述关联矩阵中列表示访问请求、行表示数据块,并用不同数值标识对应访问请求是否请求访问对应数据块,根据所述关联矩阵计算得到的数据块之间的欧式距离确定数据块之间的关联程度;建立数据块的关联矩阵之后,获取预设的数据块数量阈值和访问请求数量阈值;在所述关联矩阵的行数达到所述数据块数量阈值或列数达到所述访问请求数量阈值的情况下,基于所述关联矩阵计算数据块之间的欧氏距离,得到历史距离矩阵,其中,基于所述历史距离矩阵直接确定在对应时段内数据块之间的欧氏距离;在所述关联矩阵的行数再次达到所述数据块数量阈值或列数再次达到所述访问请求数量阈值的情况下,合并当前距离矩阵与所述历史距离矩阵,得到更新后的历史距离矩阵,包括:在所述当前距离矩阵中对应位置未存在于所述历史距离矩阵时,将所述当前距离矩阵对应位置的数据添加在更新后的历史距离矩阵;在所述当前距离矩阵中对应位置存在于所述历史距离矩阵时,利用位于对应位置的两个数据加权平均结果更新历史距离矩阵
在目标数据块被访问的情况下,将与所述目标数据块关联程度排序在前的预设数量的关联数据块存入缓存区。
2.根据权利要求1所述的方法,其特征在于,基于所述历史访问模式确定各个数据块之间的关联程度,包括:
基于所述历史访问模式确定每次访问请求中包括的字段和所述访问请求实际访问到的数据块;
根据所述访问请求包括的全部字段对所述访问请求进行分类,并确定每类访问请求对应的实际访问到的数据块集合;
在各个数据块集合中根据数据块实际被访问的次数确定数据块之间的关联程度。
3.根据权利要求1所述的方法,其特征在于,在将与所述目标数据块关联程度排序在前的预设数量的关联数据块存入缓存区之后,还包括:
在缓存区的存储空间达到置换阈值时,基于缓存区当前存储的各个数据块的实际被访问频率、数据量和被访问的时间,计算各个数据块的优先级数值;
根据各个数据块的优先级数值确定出移除出缓存区的一个或多个数据块。
4.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行所述权利要求1至3任一项中所述的方法。
5.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至3任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311055718.6A CN116775713B (zh) | 2023-08-22 | 2023-08-22 | 基于数据访问模式的数据库主被动缓存优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311055718.6A CN116775713B (zh) | 2023-08-22 | 2023-08-22 | 基于数据访问模式的数据库主被动缓存优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116775713A CN116775713A (zh) | 2023-09-19 |
CN116775713B true CN116775713B (zh) | 2024-01-02 |
Family
ID=87991665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311055718.6A Active CN116775713B (zh) | 2023-08-22 | 2023-08-22 | 基于数据访问模式的数据库主被动缓存优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116775713B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117170590B (zh) * | 2023-11-03 | 2024-01-26 | 沈阳卓志创芯科技有限公司 | 一种基于云计算的计算机数据存储方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107480072A (zh) * | 2017-08-22 | 2017-12-15 | 中南大学 | 基于关联模式的透明计算服务端缓存优化方法及系统 |
US10509769B1 (en) * | 2014-06-12 | 2019-12-17 | EMC IP Holding Company LLC | Method to efficiently track I/O access history |
CN111190926A (zh) * | 2019-11-25 | 2020-05-22 | 腾讯云计算(北京)有限责任公司 | 资源缓存方法、装置、设备及存储介质 |
CN112905111A (zh) * | 2021-02-05 | 2021-06-04 | 三星(中国)半导体有限公司 | 数据缓存的方法和数据缓存的装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8200902B2 (en) * | 2010-06-10 | 2012-06-12 | Arm Limited | Cache device for coupling to a memory device and a method of operation of such a cache device |
-
2023
- 2023-08-22 CN CN202311055718.6A patent/CN116775713B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10509769B1 (en) * | 2014-06-12 | 2019-12-17 | EMC IP Holding Company LLC | Method to efficiently track I/O access history |
CN107480072A (zh) * | 2017-08-22 | 2017-12-15 | 中南大学 | 基于关联模式的透明计算服务端缓存优化方法及系统 |
CN111190926A (zh) * | 2019-11-25 | 2020-05-22 | 腾讯云计算(北京)有限责任公司 | 资源缓存方法、装置、设备及存储介质 |
CN112905111A (zh) * | 2021-02-05 | 2021-06-04 | 三星(中国)半导体有限公司 | 数据缓存的方法和数据缓存的装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116775713A (zh) | 2023-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10812615B2 (en) | Caching method, system, device and readable storage media for edge computing | |
CN116775713B (zh) | 基于数据访问模式的数据库主被动缓存优化方法 | |
US10057367B2 (en) | Systems and methods for data caching in a communications network | |
CN108763110B (zh) | 一种数据缓存方法及装置 | |
EP3089039B1 (en) | Cache management method and device | |
CN107592656B (zh) | 基于基站聚类的缓存方法 | |
CN109190070A (zh) | 一种数据处理方法、装置、系统及应用服务器 | |
JP2001292173A (ja) | インテリジェントネットワーク帯域幅およびシステムリソースを使用するための方法および装置 | |
CN103178989B (zh) | 访问热度统计方法及装置 | |
CN105302830B (zh) | 一种地图瓦片缓存方法及装置 | |
US7032073B2 (en) | Cache system for network and multi-tasking applications | |
US10057368B1 (en) | Method and system for incremental cache lookup and insertion | |
CN110381151A (zh) | 一种异常设备检测方法及装置 | |
CN110018969B (zh) | 数据缓存方法、装置、计算机设备和存储介质 | |
CN108334460A (zh) | 数据缓存方法及装置 | |
CN114553923A (zh) | 一种基于物联网的苹果种植环境监测系统 | |
CN112417350A (zh) | 数据存储调整方法、装置及计算机设备 | |
CN109474461B (zh) | 基于信誉泊松分布的无线传感器网络信任管理方法及系统 | |
CN105893150B (zh) | 接口调用频度控制、接口调用请求处理方法及装置 | |
CN110321298A (zh) | 一种时间间隔确定方法、装置、电子设备及介质 | |
CN110187840A (zh) | 一种数据迁移方法、装置、服务器及存储介质 | |
CN112887992B (zh) | 基于接入均衡核和置换率的密集无线网络边缘缓存方法 | |
Shi et al. | An adaptive popularity tracking algorithm for dynamic content caching for radio access networks | |
JP2001318902A (ja) | キャッシュ装置 | |
CN115361710A (zh) | 一种边缘缓存中的内容放置方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |