CN117992367B - 一种可变缓存替换管理方法及系统 - Google Patents
一种可变缓存替换管理方法及系统 Download PDFInfo
- Publication number
- CN117992367B CN117992367B CN202410398995.5A CN202410398995A CN117992367B CN 117992367 B CN117992367 B CN 117992367B CN 202410398995 A CN202410398995 A CN 202410398995A CN 117992367 B CN117992367 B CN 117992367B
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- queue
- elimination
- space
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 52
- 230000008030 elimination Effects 0.000 claims abstract description 99
- 238000003379 elimination reaction Methods 0.000 claims abstract description 99
- 238000005070 sampling Methods 0.000 claims abstract description 83
- 230000007246 mechanism Effects 0.000 claims abstract description 43
- 238000012423 maintenance Methods 0.000 claims abstract description 31
- 238000000034 method Methods 0.000 claims abstract description 26
- 238000004422 calculation algorithm Methods 0.000 claims description 30
- 230000001960 triggered effect Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 claims description 7
- 238000012216 screening Methods 0.000 claims description 5
- 230000008859 change Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000001174 ascending effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000002238 attenuated effect Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000000137 annealing Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010801 machine learning 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
- 239000013307 optical fiber Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供一种可变缓存替换管理方法及系统,方法包括基于时间缓存队列对缓存数据进行维护管理,若时间缓存队列中的缓存数据被再次访问,转移至频率缓存队列维护管理;判断主体缓存空间队列的缓存大小是否大于预设缓存空间;若是,则触发数据淘汰机制,将备选池中最佳淘汰数据淘汰进相应的跟随空间;若备选池中数据量不足,则触发数据采样机制进行数据采样得到采样数据,计算采样数据的排序值,判断采样数据是否加入备选池;若跟随空间中数据被再次访问,则调整两缓存空间在主体缓存空间的分布情况。本发明调节时间缓存队列以及频率缓存队列占主体缓存空间队列的大小,调节整个缓存空间倾向以适应数据访问类型变化,以适应实际场合的应用。
Description
技术领域
本发明涉及数据缓存技术领域,特别涉及一种可变缓存替换管理方法及系统。
背景技术
随着移动通信的迅速发展,对数据的访问请求类型越来越复杂。通过对访问请求行为习惯的分析,发现被访问的数据呈现出一定的规律性,也就是被频繁访问的数据只占少部分,如果缓存中存放的都是访问频率较高的数据,就可以减少对其他存储介质的访问,数据访问速度会有所提高。
计算机缓存机制就是利用当访问相同数据时,从磁盘中访问相比从内存中访问时间花费多近三个数量级。
缓存替换策略,实际上就是在有限的缓存空间内,为了更好地获得更高的缓存命中率、更好的利用有限的缓存空间,尽可能存储将来大概率可能被访问到的数据,剔除将来大概率可能不被访问到的数据。
缓存替换策略对于展现数据活力,完成缓存空间的更新,充分利用缓存空间提高缓存命中率,提高计算机的快速响应有重要意义。
现有缓存替换策略可以划分为最优策略缓存替换方法和传统缓存替换算法。最优策略缓存替换方法是根据大量过去历史访问行为信息,采用机器学习方法预测出未来可能会被访问的数据,然后把数据缓存进入缓存空间;或者需要根据未来访问序列选择最佳的替换对象,使接下来一段时间内,被访问的数据记录总是被缓存命中;这些需要预先知道历史访问行为规律或者未来访问序列的最优缓存替换方法,在实际场合中难以适用。传统缓存替换算法是利用数据访问规律所反映的“时间”或者“频率”这两个特性来设计的算法,如FIFO、LRU和LFU算法等,这些算法简单、易实现以及应用广泛等特点。仅仅单一考虑“时间”或者“频率”指标难以全面反映数据访问模式的特征,由于数据访问模式是不断变化的,需要捕捉数据访问模式的变化且根据变化缓存结构能自适应做出调整。因此为应对动态的数据访问模式,综合考虑共同使用“时间”和“频率”两个指标,设计一种可根据访问模式变化自动调整缓存空间结构的可变缓存替换管理方法。
综上,现有技术当中,最优策略缓存替换方法需要预先知道历史访问行为规律或者未来访问序列的最优缓存替换方法,在实际场合中难以适用,传统缓存替换算法则仅仅单一考虑“时间”或者“频率”指标难以全面反映数据访问模式的特征,由于数据访问模式是不断变化的,需要捕捉数据访问模式的变化且根据变化缓存结构能自适应做出调整。
发明内容
基于此,本发明的目的是提供一种可变缓存替换管理方法及系统,以至少解决上述现有技术当中的不足。
第一方面,本发明一种可变缓存替换管理方法,所述方法包括:
划分主体缓存空间队列得到时间缓存队列以及频率缓存队列;
基于所述时间缓存队列对新加入的缓存数据进行维护管理,若所述时间缓存队列中的所述缓存数据被再次访问,则将所述缓存数据转移至所述频率缓存队列进行维护管理;
判断所述主体缓存空间队列的缓存大小是否大于预设缓存空间的缓存大小;
若是,则触发数据淘汰机制,并从淘汰备选池中筛选出最佳淘汰数据,并将所述最佳淘汰数据淘汰进相应的跟随空间;
若所述淘汰备选池中数据不足,则触发数据采样机制;
基于所述数据采样机制进行数据采样得到采样数据,计算所述采样数据的排序值,并基于所述排序值判断所述采样数据是否加入所述淘汰备选池;
若所述跟随空间中的数据被再次访问,则调整所述时间缓存队列以及所述频率缓存队列在所述主体缓存空间队列的分布情况。
与现有技术相比,本发明的有益效果是:通过将空间缓存队列划分为时间缓存队列以及频率缓存队列,避免了传统缓存替换算法的单一内容,通过淘汰备选池可以淘汰末尾数据,这种以池中局部最优代替主体缓存空间全体最优,可以节省淘汰数据记录时所需资源,而通过调节时间缓存队列以及频率缓存队列占主体缓存空间队列的值的大小,可以调节整个缓存空间倾向以适应数据访问类型变化,以适应实际场合的应用。
进一步的,所述时间缓存队列占所述主体缓存空间队列的值为,/>;
所述频率缓存空间队列占所述主体缓存空间队列的值为,/>;
其中,。
进一步的,所述基于所述时间缓存队列对新加入的缓存数据进行维护管理,若所述时间缓存队列中的所述缓存数据被再次访问,则将所述缓存数据转移至所述频率缓存队列进行维护管理的步骤包括:
所述时间缓存队列基于LRU算法逻辑对所述缓存数据进行维护管理;
若所述时间缓存队列中的所述缓存数据被再次访问则转移至所述频率缓存队列,所述频率缓存队列基于LFU算法逻辑对缓存数据进行维护管理。
进一步的,所述并将所述最佳淘汰数据淘汰进相应的跟随空间的步骤之后,所述方法包括:
判断淘汰备选池中的所述最佳淘汰数据是否来自于时间缓存队列或频率缓存队列;
若所述最佳淘汰数据来自所述时间缓存队列,则将所述最佳淘汰数据淘汰至时间缓存队列跟随空间;
若所述最佳淘汰数据来自所述频率缓存队列,则将所述最佳淘汰数据淘汰至频率缓存队列跟随空间。
进一步的,所述若所述淘汰备选池中数据不足,则触发数据采样机制的步骤包括:
当所述数据淘汰机制被触发,则从所述主体缓存空间队列采样数据记录进入淘汰备选池的数据采样机制被触发。
进一步的,所述基于所述数据采样机制进行数据采样得到采样数据的步骤包括:
若所述采样数据来自所述时间缓存队列,则基于LRU算法逻辑对所述采样数据进行维护管理;
若所述采样数据来自所述频率缓存队列,则基于LFU算法逻辑对所述采样数据进行维护管理。
进一步的,所述计算所述采样数据的排序值的步骤之后,所述方法包括:
采用排序函数在所述淘汰备选池中对所述排序值进行排序。
第二方面,本发明还提供一种可变缓存替换管理系统,所述系统包括:
划分模块,用于划分主体缓存空间队列得到时间缓存队列以及频率缓存队列;
维护管理模块,用于基于所述时间缓存队列对新加入的缓存数据进行维护管理,若所述时间缓存队列中的所述缓存数据被再次访问,则将所述缓存数据转移至所述频率缓存队列进行维护管理;
判断模块,用于判断所述主体缓存空间队列的缓存大小是否大于预设缓存空间的缓存大小;
第一触发模块,用于若所述主体缓存空间队列的缓存大小大于预设缓存空间的缓存大小,则触发数据淘汰机制,并从淘汰备选池中筛选出最佳淘汰数据,并将所述最佳淘汰数据淘汰进相应的跟随空间;
第二触发模块,用于判断若所述淘汰备选池中数据不足,则触发数据采样机制;
采样计算模块,用于基于所述数据采样机制进行数据采样得到采样数据,计算所述采样数据的排序值,并基于所述排序值判断所述采样数据是否加入所述淘汰备选池;
调整模块,用于若所述跟随空间中的数据被再次访问,则调整所述时间缓存队列以及所述频率缓存队列在所述主体缓存空间队列的分布情况。
第三方面,本发明还提供一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的可变缓存替换管理方法。
第四方面,本发明还提供一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的可变缓存替换管理方法。
附图说明
图1为本发明第一实施例中的可变缓存替换管理方法的流程图;
图2为本发明第一实施例中的可变缓存替换策略结构原理图;
图3为本发明第一实施例中的数据采样和淘汰备选池示意图;
图4为本发明第一实施例中的数据记录被访问频次与热度值增长概率关系图;
图5为本发明第一实施例中的时间缓存队列以及频率缓存队列占比调节示意图;
图6为本发明第二实施例中的可变缓存替换管理系统的结构框图;
图7为本发明第三实施例中的计算机设备的结构框图。
主要元件符号说明:
11、划分模块;12、维护管理模块;13、判断模块;14、第一触发模块;15、第二触发模块;16、采样计算模块;17、调整模块;
10、存储器;20、处理器;30、计算机程序。
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的若干实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
需要说明的是,当元件被称为“固设于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
实施例一
请参阅图1至图3,所示为本发明第一实施例中的可变缓存替换管理方法,所述方法包括步骤S1至步骤S7:
S1,划分主体缓存空间队列得到时间缓存队列以及频率缓存队列;
需要说明的是,时间缓存队列是以数据记录每次被访问的时刻为参数,将前后两次被访问的时刻相减可得“时间”,“时间”是数据记录的隐藏参数,是当缓存空间不足时淘汰数据记录时的指标参数,新加入时间缓存队列的数据记录将会初始化其“时间”参数;当时间缓存队列部分缓存队列空间不足时将会触发淘汰机制,将会从时间缓存队列中采样数据记录参考其“时间”并判断是否符合加入淘汰备选池的条件,然后从备选池中淘汰数据记录;
频率缓存队列部分是以数据记录每次被访问的时刻和热度为参数,更新前后两次被访问的时间间隔和热度,“时间”和“热度”是数据记录的隐藏参数且是当缓存空间不足时淘汰数据记录时的指标参数,新加入频率缓存队列的数据记录将会初始化其“时间”和“热度”参数;当频率缓存队列空间不足时将会触发淘汰机制,将会从频率缓存队列中采样数据记录参考其“时间”和“热度”然后判断是否符合加入淘汰备选池的条件,然后能从备选池中淘汰数据记录;
其中,时间缓存队列和频率缓存队列长度之和作为主体缓存空间队列的大小,时间缓存队列用于存放被访问次数较少的数据记录。
需要解释的是,时间缓存队列占主体缓存空间队列的值为,/>,频率缓存空间队列占主体缓存空间队列的值为/>,/>,其中,/>。
值得说明的是,在本实施例中,时间缓存队列是用于以时间为核心的LRU算法逻辑进行管理维护,频率缓存队列是以频率为核心的LFU算法逻辑进行管理维护。
S2,基于所述时间缓存队列对新加入的缓存数据进行维护管理,若所述时间缓存队列中的所述缓存数据被再次访问,则将所述缓存数据转移至所述频率缓存队列进行维护管理;
具体的,所述步骤S2包括步骤S21至步骤S22:
S21,所述时间缓存队列基于LRU算法逻辑对所述缓存数据进行维护管理;
S22,若所述时间缓存队列中的所述缓存数据被再次访问则转移至所述频率缓存队列,所述频率缓存队列基于LFU算法逻辑对缓存数据进行维护管理;
可以理解的是,新加入的缓存数据首先进入时间缓存队列中进行维护管理,若在时间缓存队列中的缓存数据再次被访问则转移至频率缓存队列中,并在频率缓存队列中进行维护管理,也就是在时间缓存队列中维护访问次数较少的缓存数据,频率缓存队列中访问次数较多的缓存数据。
需要解释的是,新加入缓存的数据先按时间缓存队列规则维护,将此时刻的时间戳记为此数据记录的“时间”参数作为隐藏数据信息;若时间缓存队列中的数据记录再次被访问则转移进入频率缓存队列部分,更新此时刻的时间戳再加上初始保护热度值作为新的隐藏数据信息。加入缓存空间的数据记录除了其原本的数据信息以外,还需要记录此时刻的时间作为隐藏信息,在各模块的规则中使用。时间缓存队列部分的隐藏信息只有时间这一个维度信息,而频率缓存队列部分的隐藏信息有时间和热度两个维度的信息,新加入频率缓存队列的数据记录会给一个可调初始保护热度,防止其短时间内热度被衰减为零。
S3,判断所述主体缓存空间队列的缓存大小是否大于预设缓存空间的缓存大小;
需要解释的是,在本实施例中,主体缓存空间队列的大小通过表示,预设缓存空间的缓存大小由/>表示,值得说明的是,主体缓存空间队列的大小具体为实施缓存空间大小。
S4,若是,则触发数据淘汰机制,并从淘汰备选池中筛选出最佳淘汰数据,并将所述最佳淘汰数据淘汰进相应的跟随空间;
具体的,所述步骤S4包括步骤S41至步骤S43:
S41,判断淘汰备选池中的所述最佳淘汰数据是否来自于时间缓存队列或频率缓存队列;
S42,若所述最佳淘汰数据来自所述时间缓存队列,则将所述最佳淘汰数据淘汰至时间缓存队列跟随空间;
S43,若所述最佳淘汰数据来自所述频率缓存队列,则将所述最佳淘汰数据淘汰至频率缓存队列跟随空间;
可以理解的是,从淘汰备选池中筛选出最佳淘汰数据记录并淘汰进相应的跟随空间,若淘汰备选池数据记录不足则触发数据采样机制以及更新计算采样数据记录的排序值并判断是否符合加入淘汰备选池的条件,若淘汰数据记录来自时间缓存队列,则淘汰进时间缓存队列跟随空间;若淘汰数据记录来自频率缓存队列,则淘汰进频率缓存队列跟随空间;
S5,若所述淘汰备选池中数据不足,则触发数据采样机制;
具体的,所述步骤S5包括步骤S51:
S51,当所述数据淘汰机制被触发,则从所述主体缓存空间队列采样数据记录进入淘汰备选池的数据采样机制被触发。
需要解释的是,当主体缓存空间队列的大小大于预设缓存空间的缓存大小成立时,则触发数据淘汰机制,此时从主体缓存空间采样数据进入淘汰备选池的数据采样机制也被触发。
需要解释的是,淘汰机制将触发数据采样,从主体缓存空间采样数据记录进入淘汰备选池。假设此时缓存空间A已满,如果此时和/>值大小都不为0或1,此时有新数据加入缓存空间,则从时间缓存队列中采样数据到时间缓存淘汰池;如果此时/>值为1,此时有新数据加入缓存空间,则从时间缓存队列中采样数据到时间缓存淘汰池;如果此时/>值大小为1,此时有新数据加入缓存空间,则从频率缓存队列中采样数据到频率缓存淘汰池。
S6,基于所述数据采样机制进行数据采样得到采样数据,计算所述采样数据的排序值,并基于所述排序值判断所述采样数据是否加入所述淘汰备选池;
具体的,所述步骤S6包括步骤S61至步骤S63:
S61,若所述采样数据来自所述时间缓存队列,则基于LRU算法逻辑对所述采样数据进行维护管理;
S62,若所述采样数据来自所述频率缓存队列,则基于LFU算法逻辑对所述采样数据进行维护管理;
S63,采用排序函数在所述淘汰备选池中对所述排序值进行排序;
需要解释的是,更新计算采样数据记录的排序值并判断是否符合加入淘汰备选池的条件;若采样数据来自时间缓存队列将按照时间缓存队列相应规则维护管理,若采样数据来自频率缓存队列将按照频率缓存队列相应规则维护管理;频率缓存队列中的隐藏信息不仅包括时间戳还包括热度数据信息,所以在维护管理/>时频率缓存队列比时间缓存队列多了热度方面的规则。
在时间缓存队列中的相应维护管理规则,需要释放缓存空间时,只需要将时间缓存队列淘汰备选池中末尾数据记录从缓存空间和淘汰备选池同时剔除即可,淘汰备选池中的数据记录是按照/>大小升序排列的,当在时间缓存队列中/>计算表达式为:
;
用当前时刻now减去该数据记录在上次被访问的时刻之间的时间间隔得出;
在频率缓存队列中的相应维护管理规则,当在频率缓存队列中的计算表达式为:
;
用最大热度值减去该数据记录此时刻的热度值/>计算得出。因为淘汰备选池是按/>升序排列,每次淘汰的是池中末尾的数据记录,但是池中末尾数据记录的热度值却是最大的不应被淘汰,所以用/>减去该数据记录此时刻的热度值,实现淘汰备选池中数据记录/>值升序与降序转换。公式中的/>是已知的人为可调的参数。
淘汰备选池的数据来源于缓存空间,只需采样数据记录并计算它们的值,当淘汰备选池不满时需要采样数据记录的/>值大于池中首条数据记录的值,才将该数据记录按/>值大小升序插入到池中适当位置,若淘汰备选池为空则将池中的首条数据记录的/>值视为0;当淘汰备选池已满且采样数据记录的值大于池中首条数据记录的/>值,则用采样数据记录替换池中首条数据记录,此时相当于提高了进入淘汰备选池的门槛,使进入淘汰备选池中数据记录更优质。
更新频率缓存队列中的数据记录的热度值。当一条数据记录被访问时,对其更新包括:热度值衰减以及热度值提升;
其中,热度值衰减:先前访问的数据记录距离当前时间越长,那么这条数据记录的访问相应地也就会衰减越多。假设缓存中某条数据记录上次被访问的时刻是,此时/>再次被访问到,则前后两次时间间隔的表达式为:
;
假设数据记录上次被访问时的热度值为,经过时间间隔/>数据记录应该被衰减的热度值大小为/>,计算表达式为:
;
是可调的衰减时间参数,可用于调节热度值退却程度快慢。此时数据记录衰减完成应剩余热值/>,计算表达式为:
;
热度值提升:为了保护新加入缓存的数据记录有一定的热度,所以给定初始热度值,可以确保新加缓存的数据热度不会立即衰减为0。有研究表明,数据记录的访问规律与幂律分布高度相似的表达式为:
;
即数据记录的被访问频率与其重复度排名的常数次幂成反比关系;为按重复度排名后,排序为/>的数据记录被访问的概率;/>为常数;使用公式近似式/>。如果某条数据被访问,是否需要增加其热度值,取决于/>与/>大小情况,/>是一个随机数,/>如公式,式中,/>是控制热度增长快慢的可调参数,把事件/>成立发生的概率记为/>,数据记录被访问频次与事件成立概率大小之间的关系如图4,如果/>成立发生,则将热度值更新为/>,表达式为:
;
由可知/>的大小取决于分母中的/>,如果此部分越大,则/>越小;又因为/>是0到1之间的随机数,可把/>发生的概率视作常量,则/>,即把抽象为服从参数为/>的均匀分布,即/>越大/>越大,/>越小/>越小。/>就是成立的门槛,热度值/>或者越大,/>成立就变得越艰难。经过热度值衰减和热度值提升操作,访问数据记录的热度值更新已完成,最终的热度值为,作为下次被访问时用于热度衰减的起始热度值。
可以理解的是,计算采样数据排序值并判断是否能加入淘汰备选池,其中,/>用于采样数据在淘汰备选池中排序,若采样数据来自时间缓存队列则基于LRU算法逻辑对采样数据进行维护管理,若采样数据来自时间缓存队列则基于LFU算法逻辑对采样数据进行维护管理。
另外,需要解释的是,淘汰备选池用于存放预淘汰数据,淘汰备选池大小可调且很小,淘汰备选池中按照数据大小升序排列,其值越大代表相较淘汰备选池中其它数据最应被淘汰,淘汰备选池是从主体缓存空间队列中采样一定数据的数据并按照相应规则判断可加入与否,在需要淘汰时只需要淘汰末尾一条数据即可,这种以淘汰备选池中局部最优代替主体缓存空间队列最优,可以节省淘汰数据记录时所需资源。
S7,若所述跟随空间中的数据被再次访问,则调整所述时间缓存队列以及所述频率缓存队列在所述主体缓存空间队列的分布情况;
可以理解的是,请参阅图5,当数据记录首次被涉及时,将会先进入由时间缓存队列以及频率缓存队列组成的主体缓存空间中的时间缓存队列,若果时间缓存队列中的缓存空间已达上限,则需要淘汰数据记录进入时间缓存队列跟随空间,而当时间缓存队列跟随空间中的数据记录被再次涉及,需要将此条数据记录迁移至时间缓存队列,因为时间缓存队列跟随空间中的数据记录是最近一段时间内从时间缓存队列中所淘汰的,而此时又被涉及说明此数据记录原来不应该被淘汰,为惩罚此行为需要把时间缓存队列的长度加1且频率缓存队列部分的长度减1,而且这种增加时间缓存队列在主体缓存空间队列占比的倾斜方法,可以更适应下一时刻的数据访问需求,如果时间缓存队列中数据记录再次被涉及,那么此条数据记录将会被迁移至频率缓存队列部分;如果频率缓存队列缓存空间已达上限,则需要淘汰数据进入频率缓存队列跟随空间,若频率缓存队列跟随空间中的数据记录再次被涉及,需要将此条数据记录迁移至频率缓存队列部分,因为频率缓存队列跟随空间中的数据记录是最近一段时间内从频率缓存队列中所淘汰的,而此时又被涉及说明此数据记录原来不应该被淘汰,为惩罚此行为,需要把频率缓存队列长度加1,时间缓存队列长度减1,而且这种增加频率缓存队列在主体缓存空间队列占比的倾斜方式可以更适应下一时刻的数据访问需求。
如图5所示,若相应的跟随空间中的数据记录再次被访问,则触发和/>大小自动调节机制。时间缓存队列跟随空间和频率缓存队列跟随空间大小可根据实际情况手动调节,若时间缓存队列跟随空间和频率缓存队列跟随空间不足按照最简单的FIFO规则维护即可。时间缓存队列跟随空间用于存放从时间缓存队列中淘汰的数据记录,如果时间缓存队列跟随空间中数据记录再次被访问到,需要将此条数据记录迁移至时间缓存队列部分,此数据记录是前不久因时间缓存队列空余空间不足而淘汰的,此时又被再次访问到说明此数据记录原来不应该被淘汰,因此需要把时间缓存队列部分长度加1且频率缓存队列长度减1。以上调节方式使得缓存空间更加偏向于时间缓存队列,从而更好地应对后面的数据访问需求。同理频率缓存队列跟随空间部分调节机制与时间缓存队跟随空间部分相似,结果就是增加缓存中频率缓存队列部分的占比,减小缓存中时间缓存队列部分的占比,使得缓存能更好地应对偏向于频率缓存队列类型的数据访问模式。
需要解释的是,若时间缓存队列以及频率缓存队列相应的跟随空间中的数据记录被再次访问到,则触发调节时间缓存队列以及频率缓存队列占主体缓存空间队列的占比大小,也就是触发以及/>的大小自动调节机制。
可以理解的是,时间缓存队列为低频缓存队列,频率缓存队列为高频缓存队列,高频缓存队列用于存放被访问到次数较多的数据,低频缓存队列用于存放被访问到次数较少的数据,二者遵循不同的缓存替换更新规则,可以保证主体缓存空间队列最差也只不过退化成时间缓存队列或者频率缓存队列,但是可以享受到数据访问类型发生变化时,自动调节倾向于更适合的缓存替换方向。而通过调节时间缓存队列以及频率缓存队列的大小,并使用淘汰备选池淘汰数据,还可以在频率缓存队列中融入热度机制,从而能够更准确的衡量数据被访问的活跃程度,并从缓存数据中淘汰出最适宜的数据。
综上,本发明上述实施例当中的可变缓存替换管理方法,通过将空间缓存队列划分为时间缓存队列以及频率缓存队列,避免了传统缓存替换算法的单一内容,通过淘汰备选池可以淘汰末尾数据,这种以池中局部最优代替主体缓存空间全体最优,可以节省淘汰数据记录时所需资源,而通过调节时间缓存队列以及频率缓存队列占主体缓存空间队列的值的大小,可以调节整个缓存空间倾向以适应数据访问类型变化,以适应实际场合的应用。
实施例二
请参阅图6,所示为本发明第二实施例中的可变缓存替换管理系统,所述系统包括:
划分模块11,用于划分主体缓存空间队列得到时间缓存队列以及频率缓存队列;
维护管理模块12,用于基于所述时间缓存队列对新加入的缓存数据进行维护管理,若所述时间缓存队列中的所述缓存数据被再次访问,则将所述缓存数据转移至所述频率缓存队列进行维护管理;
判断模块13,用于判断所述主体缓存空间队列的缓存大小是否大于预设缓存空间的缓存大小;
第一触发模块14,用于若所述主体缓存空间队列的缓存大小大于预设缓存空间的缓存大小,则触发数据淘汰机制,并从淘汰备选池中筛选出最佳淘汰数据,并将所述最佳淘汰数据淘汰进相应的跟随空间;
第二触发模块15,用于判断若所述淘汰备选池中数据不足,则触发数据采样机制;
采样计算模块16,用于基于所述数据采样机制进行数据采样得到采样数据,计算所述采样数据的排序值,并基于所述排序值判断所述采样数据是否加入所述淘汰备选池;
调整模块17,用于若所述跟随空间中的数据被再次访问,则调整所述时间缓存队列以及所述频率缓存队列在所述主体缓存空间队列的分布情况。
在一些可选实施例中,所述维护管理模块12包括:
第一维护管理单元,用于所述时间缓存队列基于LRU算法逻辑对所述缓存数据进行维护管理;
第二维护管理单元,用于若所述时间缓存队列中的所述缓存数据被再次访问则转移至所述频率缓存队列,所述频率缓存队列基于LFU算法逻辑对缓存数据进行维护管理。
在一些可选实施例中,所述第一触发模块14:
判断单元,用于判断淘汰备选池中的所述最佳淘汰数据是否来自于时间缓存队列或频率缓存队列;
第一淘汰单元,用于若所述最佳淘汰数据来自所述时间缓存队列,则将所述最佳淘汰数据淘汰至时间缓存队列跟随空间;
第二淘汰单元,用于若所述最佳淘汰数据来自所述频率缓存队列,则将所述最佳淘汰数据淘汰至频率缓存队列跟随空间。
在一些可选实施例中,所述第二触发模块15:
触发单元,用于当所述数据淘汰机制被触发,则从所述主体缓存空间队列采样数据记录进入淘汰备选池的数据采样机制被触发。
在一些可选实施例中,所述采样计算模块16:
第三维护管理单元,用于若所述采样数据来自所述时间缓存队列,则基于LRU算法逻辑对所述采样数据进行维护管理;
第四维护管理单元,用于若所述采样数据来自所述频率缓存队列,则基于LFU算法逻辑对所述采样数据进行维护管理;
排序单元,用于采用排序函数在所述淘汰备选池中对所述排序值进行排序。
上述各模块、单元被执行时所实现的功能或操作步骤与上述方法实施例大体相同,在此不再赘述。
本发明实施例所提供的可变缓存替换管理系统,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,系统实施例部分未提及之处,可参考前述方法实施例中相应内容。
实施例三
请参阅图7,所示为本发明第三实施例中的计算机设备,包括存储器10、处理器20以及存储在所述存储器10上并可在所述处理器20上运行的计算机程序30,所述处理器20执行所述计算机程序30时实现上述的可变缓存替换管理方法。
其中,存储器10至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器10在一些实施例中可以是计算机设备的内部存储单元,例如该计算机设备的硬盘。存储器10在另一些实施例中也可以是外部存储装置,例如插接式硬盘,智能存储卡(Smart MediaCard, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。进一步地,存储器10还可以既包括计算机设备的内部存储单元也包括外部存储装置。存储器10不仅可以用于存储安装于计算机设备的应用软件及各类数据,还可以用于暂时地存储已经输出或者将要输出的数据。
其中,处理器20在一些实施例中可以是电子控制单元 (Electronic ControlUnit,简称ECU,又称行车电脑)、中央处理器(Central Processing Unit, CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器10中存储的程序代码或处理数据,例如执行访问限制程序等。
需要指出的是,图7示出的结构并不构成对计算机设备的限定,在其它实施例当中,该计算机设备可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本发明实施例还提出一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述的可变缓存替换管理方法。
本领域技术人员可以理解,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或它们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种可变缓存替换管理方法,其特征在于,所述方法包括:
划分主体缓存空间队列得到时间缓存队列以及频率缓存队列;
基于所述时间缓存队列对新加入的缓存数据进行维护管理,若所述时间缓存队列中的所述缓存数据被再次访问,则将所述缓存数据转移至所述频率缓存队列进行维护管理;
所述基于所述时间缓存队列对新加入的缓存数据进行维护管理,若所述时间缓存队列中的所述缓存数据被再次访问,则将所述缓存数据转移至所述频率缓存队列进行维护管理的步骤包括:
所述时间缓存队列基于LRU算法逻辑对所述缓存数据进行维护管理;
若所述时间缓存队列中的所述缓存数据被再次访问则转移至所述频率缓存队列,所述频率缓存队列基于LFU算法逻辑对缓存数据进行维护管理;
判断所述主体缓存空间队列的缓存大小是否大于预设缓存空间的缓存大小;
若是,则触发数据淘汰机制,并从淘汰备选池中筛选出最佳淘汰数据,并将所述最佳淘汰数据淘汰进相应的跟随空间;
若所述淘汰备选池中数据不足,则触发数据采样机制;
基于所述数据采样机制进行数据采样得到采样数据,计算所述采样数据的排序值,并基于所述排序值判断所述采样数据是否加入所述淘汰备选池,其中,当所述淘汰备选池不满时,所述采样数据的排序值大于所述淘汰备选池中首条数据的排序值,则将所述采样数据插入到所述淘汰备选池中;
所述基于所述数据采样机制进行数据采样得到采样数据的步骤包括:
若所述采样数据来自所述时间缓存队列,则基于LRU算法逻辑对所述采样数据进行维护管理;
若所述采样数据来自所述频率缓存队列,则基于LFU算法逻辑对所述采样数据进行维护管理;
若所述跟随空间中的数据被再次访问,则调整所述时间缓存队列以及所述频率缓存队列在所述主体缓存空间队列的分布情况。
2.根据权利要求1所述的可变缓存替换管理方法,其特征在于,所述时间缓存队列占所述主体缓存空间队列的值为,/>;
所述频率缓存空间队列占所述主体缓存空间队列的值为,/>;
其中,。
3.根据权利要求1所述的可变缓存替换管理方法,其特征在于,所述并将所述最佳淘汰数据淘汰进相应的跟随空间的步骤之后,所述方法包括:
判断淘汰备选池中的所述最佳淘汰数据是否来自于时间缓存队列或频率缓存队列;
若所述最佳淘汰数据来自所述时间缓存队列,则将所述最佳淘汰数据淘汰至时间缓存队列跟随空间;
若所述最佳淘汰数据来自所述频率缓存队列,则将所述最佳淘汰数据淘汰至频率缓存队列跟随空间。
4.根据权利要求1所述的可变缓存替换管理方法,其特征在于,所述若所述淘汰备选池中数据不足,则触发数据采样机制的步骤包括:
当所述数据淘汰机制被触发,则从所述主体缓存空间队列采样数据记录进入淘汰备选池的数据采样机制被触发。
5.根据权利要求1所述的可变缓存替换管理方法,其特征在于,所述计算所述采样数据的排序值的步骤之后,所述方法包括:
采用排序函数在所述淘汰备选池中对所述排序值进行排序。
6.一种可变缓存替换管理系统,其特征在于,所述系统包括:
划分模块,用于划分主体缓存空间队列得到时间缓存队列以及频率缓存队列;
维护管理模块,用于基于所述时间缓存队列对新加入的缓存数据进行维护管理,若所述时间缓存队列中的所述缓存数据被再次访问,则将所述缓存数据转移至所述频率缓存队列进行维护管理;
所述维护管理模块包括:
第一维护管理单元,用于所述时间缓存队列基于LRU算法逻辑对所述缓存数据进行维护管理;
第二维护管理单元,用于若所述时间缓存队列中的所述缓存数据被再次访问则转移至所述频率缓存队列,所述频率缓存队列基于LFU算法逻辑对缓存数据进行维护管理;
判断模块,用于判断所述主体缓存空间队列的缓存大小是否大于预设缓存空间的缓存大小;
第一触发模块,用于若所述主体缓存空间队列的缓存大小大于预设缓存空间的缓存大小,则触发数据淘汰机制,并从淘汰备选池中筛选出最佳淘汰数据,并将所述最佳淘汰数据淘汰进相应的跟随空间;
第二触发模块,用于判断若所述淘汰备选池中数据不足,则触发数据采样机制;
采样计算模块,用于基于所述数据采样机制进行数据采样得到采样数据,计算所述采样数据的排序值,并基于所述排序值判断所述采样数据是否加入所述淘汰备选池,其中,当所述淘汰备选池不满时,所述采样数据的排序值大于所述淘汰备选池中首条数据的排序值,则将所述采样数据插入到所述淘汰备选池中;
所述采样计算模块包括:
第三维护管理单元,用于若所述采样数据来自所述时间缓存队列,则基于LRU算法逻辑对所述采样数据进行维护管理;
第四维护管理单元,用于若所述采样数据来自所述频率缓存队列,则基于LFU算法逻辑对所述采样数据进行维护管理;
调整模块,用于若所述跟随空间中的数据被再次访问,则调整所述时间缓存队列以及所述频率缓存队列在所述主体缓存空间队列的分布情况。
7.一种可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至5任一所述的可变缓存替换管理方法。
8.一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一所述的可变缓存替换管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410398995.5A CN117992367B (zh) | 2024-04-03 | 2024-04-03 | 一种可变缓存替换管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410398995.5A CN117992367B (zh) | 2024-04-03 | 2024-04-03 | 一种可变缓存替换管理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117992367A CN117992367A (zh) | 2024-05-07 |
CN117992367B true CN117992367B (zh) | 2024-06-07 |
Family
ID=90896405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410398995.5A Active CN117992367B (zh) | 2024-04-03 | 2024-04-03 | 一种可变缓存替换管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117992367B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105512053A (zh) * | 2015-12-07 | 2016-04-20 | 中南大学 | 移动透明计算系统服务器端多用户访问的镜像缓存方法 |
CN108763110A (zh) * | 2018-03-22 | 2018-11-06 | 新华三技术有限公司 | 一种数据缓存方法及装置 |
CN110908612A (zh) * | 2019-11-27 | 2020-03-24 | 腾讯科技(深圳)有限公司 | 缓存管理方法、装置、设备及存储介质 |
CN111367833A (zh) * | 2020-03-31 | 2020-07-03 | 中国建设银行股份有限公司 | 数据缓存方法、装置、计算机设备以及可读存储介质 |
CN112363986A (zh) * | 2021-01-15 | 2021-02-12 | 北京东方通软件有限公司 | 一种针对文件缓存的时间优化方法 |
CN112817968A (zh) * | 2021-01-14 | 2021-05-18 | 肖玉连 | 一种基于区块链的数据存入和搜索方法及系统 |
WO2021190468A1 (zh) * | 2020-03-23 | 2021-09-30 | 阿里巴巴集团控股有限公司 | 一种基于键值缓存系统的内存管理方法及装置 |
CN115080459A (zh) * | 2021-03-12 | 2022-09-20 | 华为云计算技术有限公司 | 缓存管理方法及装置、计算机可读存储介质 |
CN115237825A (zh) * | 2022-05-31 | 2022-10-25 | 杭州祺鲸科技有限公司 | 一种基于机器学习的智能缓存替换方法 |
CN116541430A (zh) * | 2023-07-06 | 2023-08-04 | 江苏网进科技股份有限公司 | 一种数据自适应缓存方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9779029B2 (en) * | 2012-11-06 | 2017-10-03 | Facebook, Inc. | Cache replacement policy for data with strong temporal locality |
US20200310985A1 (en) * | 2019-03-27 | 2020-10-01 | University Of Rochester | Lease cache memory devices and methods |
-
2024
- 2024-04-03 CN CN202410398995.5A patent/CN117992367B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105512053A (zh) * | 2015-12-07 | 2016-04-20 | 中南大学 | 移动透明计算系统服务器端多用户访问的镜像缓存方法 |
CN108763110A (zh) * | 2018-03-22 | 2018-11-06 | 新华三技术有限公司 | 一种数据缓存方法及装置 |
CN110908612A (zh) * | 2019-11-27 | 2020-03-24 | 腾讯科技(深圳)有限公司 | 缓存管理方法、装置、设备及存储介质 |
WO2021190468A1 (zh) * | 2020-03-23 | 2021-09-30 | 阿里巴巴集团控股有限公司 | 一种基于键值缓存系统的内存管理方法及装置 |
CN111367833A (zh) * | 2020-03-31 | 2020-07-03 | 中国建设银行股份有限公司 | 数据缓存方法、装置、计算机设备以及可读存储介质 |
CN112817968A (zh) * | 2021-01-14 | 2021-05-18 | 肖玉连 | 一种基于区块链的数据存入和搜索方法及系统 |
CN112363986A (zh) * | 2021-01-15 | 2021-02-12 | 北京东方通软件有限公司 | 一种针对文件缓存的时间优化方法 |
CN115080459A (zh) * | 2021-03-12 | 2022-09-20 | 华为云计算技术有限公司 | 缓存管理方法及装置、计算机可读存储介质 |
CN115237825A (zh) * | 2022-05-31 | 2022-10-25 | 杭州祺鲸科技有限公司 | 一种基于机器学习的智能缓存替换方法 |
CN116541430A (zh) * | 2023-07-06 | 2023-08-04 | 江苏网进科技股份有限公司 | 一种数据自适应缓存方法 |
Non-Patent Citations (3)
Title |
---|
A Cooperative Rate-Based Model Predictive Framework for Flexibility Management of DERs;Lalitha Subramanian 等;《IEEE Transactions on Energy Conversion》;20210818;第2724-2733页 * |
基于顺序检测的双队列缓存替换算法;肖侬;赵英杰;刘芳;陈志广;;中国科学:信息科学;20110415(04);第47-57页 * |
缓存淘汰算法研究;王永亮;;电子技术与软件工程;20181213(23);第149-150页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117992367A (zh) | 2024-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11301394B2 (en) | Using a machine learning module to select one of multiple cache eviction algorithms to use to evict a track from the cache | |
US10606749B2 (en) | Adaptive storage management for optimizing multi-tier data storage system | |
US8176258B2 (en) | System and method for cache management | |
US8949544B2 (en) | Bypassing a cache when handling memory requests | |
US6901484B2 (en) | Storage-assisted quality of service (QoS) | |
US8250306B2 (en) | Method for improving frequency-based caching algorithms by maintaining a stable history of evicted items | |
US7937404B2 (en) | Data processing system and method | |
US20210374523A1 (en) | Using Reinforcement Learning to Dynamically Tune Cache Policy Parameters | |
US20080229071A1 (en) | Prefetch control apparatus, storage device system and prefetch control method | |
US20070079070A1 (en) | Cache controller | |
KR20180130536A (ko) | 캐시 테스트 영역을 기반으로 하는 프리페치를 위한 캐시 에이징 정책 선택 | |
CN110147331B (zh) | 缓存数据处理方法、系统及可读存储介质 | |
US10853250B2 (en) | Storage management method, electronic device and computer program product | |
CN111708720A (zh) | 一种数据缓存方法、装置、设备及介质 | |
CN114631082B (zh) | 高速缓存访问测量偏斜校正 | |
CN117992367B (zh) | 一种可变缓存替换管理方法及系统 | |
US8656106B2 (en) | Managing unforced injections of cache lines into a cache utilizing predetermined address ranges | |
JP5913324B2 (ja) | 積極的プリフェッチングによるプロセッサキャッシュ汚染を低減するための方法及び装置 | |
CN116931838A (zh) | 一种固态盘缓存管理方法、系统、电子设备及存储介质 | |
US11853220B2 (en) | Prefetcher training | |
CN114153760B (zh) | 基于权重的健值存储缓存淘汰方法、系统及存储介质 | |
KR101875844B1 (ko) | 하위 레벨 캐시에서 캐시 라인들의 연수를 제어함으로써 메모리에 대한 라이트백을 감소시키는 것 | |
CN116467353B (zh) | 一种基于lru差异化的自适应调节的缓存方法及系统 | |
US20230176973A1 (en) | Replacement control for candidate producer-consumer relationships trained for prefetch generation | |
US12013784B2 (en) | Prefetch state cache (PSC) |
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 |