CN104239233A - 缓存管理方法、缓存管理装置和缓存管理设备 - Google Patents
缓存管理方法、缓存管理装置和缓存管理设备 Download PDFInfo
- Publication number
- CN104239233A CN104239233A CN201410484496.4A CN201410484496A CN104239233A CN 104239233 A CN104239233 A CN 104239233A CN 201410484496 A CN201410484496 A CN 201410484496A CN 104239233 A CN104239233 A CN 104239233A
- Authority
- CN
- China
- Prior art keywords
- access
- data block
- logical unit
- destination logical
- buffer memory
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种缓存管理方法、缓存管理装置和缓存管理设备。本发明实施例方法包括:记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中目标逻辑单元中的逻辑线性空间被划分为等大小的数据块;根据目标逻辑单元中被访问的数据块在时间窗内的访问信息获取被访问的数据块在时间窗内的访问特征;根据目标逻辑单元中的至少部分被访问的数据块在一个时间段内的访问特征获取目标逻辑单元在时间段内的全局访问特征,其中时间段包括至少一个时间窗;根据被访问的数据块的访问特征和目标逻辑单元的全局访问特征对目标逻辑单元中的数据块进行缓存和管理。本发明实施例能够提高缓存的淘汰效率,进而提高缓存的命中率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种缓存管理方法、缓存管理装置和缓存管理设备。
背景技术
高速缓冲存储器(以下简称缓存)是介于处理器和主存储器之间的高速小容量存储器,以解决高速和低速设备之间速度不匹配的问题,广泛应用于存储系统、数据库、web服务器、处理器、文件系统、磁盘系统等等领域。
在一个二级存储架构中,缓存具有比辅存更高的性能但同时价格更昂贵,性价比的要求限定了缓存容量的大小,因此需要有效地管理有限的缓存空间,提升缓存资源利用率,由此出现了各种缓存淘汰算法。
但是,现有技术中固定使用一种缓存淘汰算法单一的缓存淘汰算法不能很好的适应业务访问模式的变化和多样性,从而导致缓存命中率不高。
发明内容
本发明实施例提供了一种缓存管理方法和缓存管理装置,能够提高缓存的命中率。
本发明实施例第一方面提供一种缓存管理方法,包括:
记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中所述目标逻辑单元中的逻辑线性空间被划分为等大小的数据块;
根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问特征;
根据所述目标逻辑单元中的至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时间段包括至少一个所述时间窗;
根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述目标逻辑单元中的数据块进行缓存和管理。
结合本发明实施例的第一方面,本发明实施例的第一方面的第一种实现方式中,所述根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问特征具体包括:
根据所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问信息确定所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问特征属于顺序访问、重复访问和随机访问中的其中一种。
结合本发明实施例的第一方面,本发明实施例的第一方面的第二种实现方式中,所述记录所述目标逻辑单元中被访问的数据块在时间窗内的访问信息具体包括:
标识所述目标逻辑单元中所述被访问的数据块在所述时间窗内被访问的页面位图;
记录所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问总数据量,其中所述访问总数据量为数据块在所述时间窗内每一次被访问的地址范围叠加得到的和;
记录所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问次数。
结合本发明实施例的第一方面的第二种实现方式,本发明实施例的第一方面的第三种实现方式中,所述根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问特征包括:
根据所述页面位图计算所述被访问的每一个数据块在所述时间窗内被访问的地址总范围R、非连续访问的个数N以及所述非连续访问之间的最大地址间距L;
在所述时间窗内,当N大于或者等于第一预置数值且L小于第二预置数值时,或者,
当R占所述被访问的数据块的地址范围的比例大于或者等于第三预置数值时,
确定所述被访问的数据块在所述时间窗内的访问特征为顺序访问。
结合本发明实施例的第一方面的第三种实现方式,本发明实施例的第一方面的第四种实现方式中,所述根据所述目标逻辑单元中被访问的数据块在所述时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问特征还包括:
在所述时间窗内,当R占所述数据块的地址范围的比例小于第三预置数值时,而且,
所述访问总数据量与R的差与R的比值大于1时,
确定所述被访问的数据块在所述时间窗内的访问特征为重复访问。
结合本发明实施例的第一方面的第一种实现方式,本发明实施例的第一方面的第五种实现方式中,所述根据所述目标逻辑单元的至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征具体包括:
在所述时间段结束时,根据所述目标逻辑单元的所述至少部分被访问的数据块在所述时间段中的所述时间窗内的访问特征确定所述目标逻辑单元在所述时间段内的全局访问特征属于顺序访问、重复访问和随机访问中的其中一种。
结合本发明实施例的第一方面的第五种实现方式,本发明实施例的第一方面的第六种实现方式中,所述根据所述目标逻辑单元的至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征具体包括:
统计所述目标逻辑单元的所述至少部分被访问的数据块中,在所述时间段内访问特征为顺序访问的数据块的数量,以及所述目标逻辑单元的所述至少部分被访问的数据块的数量;
计算所述目标逻辑单元的顺序度,其中所述顺序度等于所述至少部分被访问的数据块中,所述访问特征为顺序访问的数据块的数量与所述目标逻辑单元的所述至少部分被访问的数据块的数量的比值;
当所述目标逻辑单元的顺序度大于或者等于第七预置数值时,确定所述目标逻辑单元在所述时间段内的全局访问特征为顺序访问。
结合本发明实施例的第一方面的第六种实现方式,本发明实施例的第一方面的第七种实现方式中,所述根据所述目标逻辑单元的至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征具体包括:
统计所述目标逻辑单元的所述至少部分被访问的数据块中,在所述时间段内访问特征为重复访问的数据块的数量;
计算所述目标逻辑单元的重复度,其中所述重复度等于所述至少部分被访问的数据块中,所述访问特征为重复访问的数据块的数量与所述目标逻辑单元的所述至少部分被访问的数据块的数量的比值;
统计所述目标逻辑单元的所述至少部分被访问的数据块在所述时间段内的访问次数均方差;
当所述目标逻辑单元的顺序度小于所述第七预置数值,所述目标逻辑单元的重复度大于或者等于第八预置数值,且所述均方差大于或者等于第九预置数值时,确定所述目标逻辑单元在所述时间段内的全局访问特征为重复访问。
结合本发明实施例的第一方面,本发明实施例的第一方面的第八种实现方式中,所述根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述目标逻辑单元中的数据块进行缓存和管理具体包括:
获取所述目标逻辑单元中待缓存的数据块在最近的一个所述时间窗内的访问特征,其中,缓存中包括至少两个管理链表,每个管理链表采用不同的淘汰算法;
根据所述待缓存的数据块的访问特征将所述待缓存的数据块分成待缓存的子数据块;
根据所述待缓存的子数据块的访问特征与淘汰算法的对应关系,将所述待缓存的子数据块分别插入管理链表中。
结合本发明实施例的第一方面的第八种实现方式,本发明实施例的第一方面的第九种实现方式中,所述待缓存的子数据块的访问特征属于顺序访问、重复访问和随机访问中的其中一种;
所述缓存中包括三个管理链表,所述三个管理链表使用的淘汰算法分别为近期最少使用算法、最不经常使用页置换算法、最近最常使用算法;
所述根据所述待缓存的子数据块的访问特征与淘汰算法的对应关系,将所述待缓存的子数据块分别插入管理链表中具体包括:
当所述待缓存的子数据块的访问特征为顺序访问时,则将所述待缓存的子数据块插入使用所述最近最常使用算法的链表中;
当所述待缓存的子数据块的访问特征为重复访问时,则将所述待缓存的子数据块插入使用所述最不经常使用页置换算法的链表中;
当所述待缓存的子数据块的访问特征为随机访问时,则将所述待缓存的子数据块插入使用近期最少使用算法的链表中。
结合本发明实施例的第一方面,本发明实施例的第一方面的第十种实现方式中,所述根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述目标逻辑单元中的数据块进行缓存和管理具体包括:
当检测到缓存中满足淘汰数据的条件时,获取所述目标逻辑单元在最近的所述一个时间段内的全局访问特征,其中,所述缓存中包括至少两个管理链表,每个管理链表采用不同的淘汰算法;
根据所述目标逻辑单元在最近的所述一个时间段内的全局访问特征调整所述缓存中内管理链表的淘汰顺序。
结合本发明实施例的第一方面的第十种实现方式,本发明实施例的第一方面的第十一种实现方式中,所述目标逻辑单元在最近的所述一个时间段内的全局访问特征属于顺序访问、重复访问和随机访问中的其中一种;
所述缓存中包括三个管理链表,所述三个管理链表使用的淘汰算法分别为近期最少使用算法、最不经常使用页置换算法、最近最常使用算法;
所述根据所述目标逻辑单元在最近的所述一个时间段内的全局访问特征调整所述缓存内管理链表的淘汰顺序具体包括:
当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为顺序访问时,所述缓存调整所述管理链表的淘汰顺序依次为使用所述最不经常使用页置换算法的管理链表、使用所述近期最少使用算法的管理链表和使用所述最近最常使用算法的管理链表;
当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为重复访问时,所述缓存调整所述管理链表的淘汰顺序依次为使用所述最近最常使用算法的管理链表、使用所述近期最少使用算法的管理链表和使用所述最不经常使用页置换算法的管理链表;
当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为随机访问时,所述缓存调整所述管理链表的淘汰顺序依次为使用所述最近最常使用算法的管理链表、使用所述最不经常使用页置换算法的管理链表和使用所述近期最少使用算法的管理链表。
结合本发明实施例的第一方面,本发明实施例的第一方面的第十二种实现方式中,所述方法还包括:
将所述目标逻辑单元的所述部分被访问的数据块在所述时间窗内的访问信息缓存到元数据缓存中,所述元数据缓存采用近期最少使用算法进行管理;
所述根据所述目标逻辑单元中的至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征具体包括:
根据所述元数据缓存中所有被访问的数据块在所述一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征。
结合本发明实施例的第一方面,本发明实施例的第一方面的第十三种实现方式中,所述根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述目标逻辑单元中的数据块进行缓存和管理具体包括:
获取所述目标逻辑单元中当前要访问的数据在最近一个所述时间窗内的访问特征;
在缓存内容中查找所述当前要访问的数据;
当所述缓存未命中所述当前要访问的数据,且所述当前要访问的数据在最近一个时间窗内的访问特征为顺序访问时,缓存从硬盘中获取并存储所述当前要访问的数据以及预置数据,其中所述预置数据为所述目标逻辑单元中地址位于所述当前要访问的数据之后且与所述当前要访问的数据的地址连续的预置范围内的数据。
结合本发明实施例的第一方面,本发明实施例的第一方面的第十四种实现方式中,所述根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述目标逻辑单元中的数据块进行缓存和管理具体包括:
获取所述目标逻辑单元中当前要访问的数据在最近一个所述时间窗内的访问特征;
在缓存内容中查找所述当前要访问的数据;
当所述缓存命中所述当前要访问的数据但未存储有预置数据,且所述当前要访问的数据在最近一个所述时间窗内的访问特征为顺序访问时,从硬盘中获取并存储所述预置数据,其中所述预置数据为所述目标逻辑单元中地址位于所述当前要访问的数据之后且与所述当前要访问的数据地址连续的预置范围内的数据。
本发明实施例第二方面提供一种缓存管理装置,包括:
记录模块,用于记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中所述目标逻辑单元中的逻辑线性空间被划分为等大小的数据块;
第一获取模块,用于根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问特征;
第二获取模块,用于根据所述目标逻辑单元中的至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时间段包括至少一个所述时间窗;
缓存,用于根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述目标逻辑单元中的数据块进行缓存和管理。
结合本发明实施例的第二方面,本发明实施例的第二方面的第一种实现方式中,所述第一获取模块具体用于根据所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问信息确定所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问特征属于顺序访问、重复访问和随机访问中的其中一种。
结合本发明实施例的第二方面,本发明实施例的第二方面的第二种实现方式中,所述记录模块具体用于:
标识所述目标逻辑单元中所述被访问的数据块在所述时间窗内被访问的页面位图;
记录所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问总数据量;其中,所述访问总数据量为数据块在所述时间窗内每一次被访问的地址范围叠加得到的和;
记录所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问次数。
结合本发明实施例的第二方面的第二种实现方式,本发明实施例的第二方面的第三种实现方式中,所述第一获取模块具体用于:
根据所述页面位图计算所述被访问的每一个数据块在所述时间窗内被访问的地址总范围R、非连续访问的个数C以及所述非连续访问之间的最大地址间距L;
在所述时间窗内,当C大于第一预置数值且L小于第二预置数值时,
或者,当R占所述数据块的地址范围的比例大于或者等于第三预置数值时,
确定所述被访问的数据块在所述时间窗内的访问特征为顺序访问。
结合本发明实施例的第二方面的第三种实现方式,本发明实施例的第二方面的第四种实现方式中,所述第一获取模块还用于在所述时间窗内,当R占所述数据块的地址范围的比例小于第三预置数值时,而且,所述访问总数据量与R的差与R的比值大于1时,确定所述被访问的数据块在所述时间窗内的访问特征为重复访问。
结合本发明实施例的第二方面的第一种实现方式,本发明实施例的第二方面的第五种实现方式中,所述第二获取模块具体用于在所述时间段结束时,根据所述目标逻辑单元的所述至少部分被访问的数据块在所述时间段中的所述时间窗内的访问特征确定所述目标逻辑单元在所述时间段内的全局访问特征属于顺序访问、重复访问和随机访问中的其中一种。
结合本发明实施例的第二方面的第五种实现方式,本发明实施例的第二方面的第六种实现方式中,所述第二获取模块具体用于:
统计所述目标逻辑单元的所述至少部分被访问的数据块中,在所述时间段内访问特征为顺序访问的数据块的数量,以及所述目标逻辑单元的所述至少部分被访问的数据块的数量;
计算所述目标逻辑单元的顺序度,其中所述顺序度等于所述至少部分被访问的数据块中,所述访问特征为顺序访问的数据块的数量与所述目标逻辑单元的所述至少部分被访问的数据块的数量的比值;
当所述目标逻辑单元的顺序度大于或者等于第七预置数值时,确定所述目标逻辑单元在所述时间段内的全局访问特征为顺序访问。
结合本发明实施例的第二方面的第六种实现方式,本发明实施例的第二方面的第七种实现方式中,所述第二获取模块具体用于:
统计所述目标逻辑单元的所述至少部分被访问的数据块中,在所述时间段内访问特征为重复访问的数据块的数量;
计算所述目标逻辑单元的重复度,其中所述重复度等于所述至少部分被访问的数据块中,所述访问特征为重复访问的数据块的数量与所述目标逻辑单元的所述至少部分被访问的数据块的数量的比值;
统计所述目标逻辑单元的所述至少部分被访问的数据块在所述时间段内的访问次数均方差;
当所述目标逻辑单元的顺序度小于所述第七预置数值,所述目标逻辑单元的重复度大于或者等于第八预置数值,且所述均方差大于或者等于第九预置数值时,确定所述目标逻辑单元在所述时间段内的全局访问特征为重复访问。
结合本发明实施例的第二方面,本发明实施例的第二方面的第八种实现方式中,所述缓存中包括至少两个管理链表,每个管理链表采用不同的淘汰算法;
所述缓存具体用于:
获取所述目标逻辑单元中待缓存的数据块在最近的一个所述时间窗内的访问特征;
根据所述待缓存的数据块的访问特征将所述待缓存的数据块分成待缓存的子数据块;
根据所述待缓存的子数据块的访问特征与淘汰算法的对应关系,将所述待缓存的子数据块分别插入管理链表中。
结合本发明实施例的第二方面的第八种实现方式,本发明实施例的第二方面的第九种实现方式中,所述待缓存的子数据块的访问特征属于顺序访问、重复访问和随机访问中的其中一种;
所述缓存中包括三个管理链表,所述三个管理链表使用的淘汰算法分别为近期最少使用算法、最不经常使用页置换算法、最近最常使用算法;
所述缓存具体用于:
当所述待缓存的子数据块的访问特征为顺序访问时,将所述待缓存的子数据块插入使用所述最近最常使用算法的链表中;
当所述待缓存的子数据块的访问特征为重复访问时,将所述待缓存的子数据块插入使用所述最不经常使用页置换算法的链表中;
当所述待缓存的子数据块的访问特征为随机访问时,将所述待缓存的子数据块插入使用近期最少使用算法的链表中。
结合本发明实施例的第二方面,本发明实施例的第二方面的第十种实现方式中,所述缓存具体用于:
当检测到所述缓存中满足淘汰数据的条件时,获取所述目标逻辑单元在最近的所述一个时间段内的全局访问特征;
其中,所述缓存中包括至少两个管理链表,每个管理链表采用不同的淘汰算法;
根据所述目标逻辑单元在最近的所述一个时间段内的全局访问特征调整所述缓存中内管理链表的淘汰顺序。
结合本发明实施例的第二方面的第十种实现方式,本发明实施例的第二方面的第十一种实现方式中,所述目标逻辑单元在最近的所述一个时间段内的全局访问特征属于顺序访问、重复访问和随机访问中的其中一种;
所述缓存中包括三个管理链表,所述三个管理链表使用的淘汰算法分别为近期最少使用算法、最不经常使用页置换算法、最近最常使用算法;
所述缓存具体用于:
当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为顺序访问时,调整所述管理链表的淘汰顺序依次为使用所述最不经常使用页置换算法的管理链表、使用所述近期最少使用算法的管理链表和使用所述最近最常使用算法的管理链表;
当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为重复访问时,调整所述管理链表的淘汰顺序依次为使用所述最近最常使用算法的管理链表、使用所述近期最少使用算法的管理链表和使用所述最不经常使用页置换算法的管理链表;
当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为随机访问时,调整所述管理链表的淘汰顺序依次为使用所述最近最常使用算法的管理链表、使用所述最不经常使用页置换算法的管理链表和使用所述近期最少使用算法的管理链表。
结合本发明实施例的第二方面,本发明实施例的第二方面的第十二种实现方式中,所述缓存管理装置还包括:
元数据缓存,用于将缓存所述目标逻辑单元的所述部分被访问的数据块在所述时间窗内的访问信息,其中,所述元数据缓存采用近期最少使用算法进行管理;
所述第二获取模块具体用于根据所述元数据缓存中所有被访问的数据块在所述一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征。
结合本发明实施例的第二方面,本发明实施例的第二方面的第十三种实现方式中,所述缓存具体用于:
获取所述目标逻辑单元中当前要访问的数据在最近一个所述时间窗内的访问特征;
在缓存内容中查找所述当前要访问的数据;
当所述缓存未命中所述当前要访问的数据,且所述当前要访问的数据在最近一个时间窗内的访问特征为顺序访问时,缓存从硬盘中获取并存储所述当前要访问的数据以及预置数据,其中所述预置数据为所述目标逻辑单元中地址位于所述当前要访问的数据之后且与所述当前要访问的数据的地址连续的预置范围内的数据。
结合本发明实施例的第二方面,本发明实施例的第二方面的第十四种实现方式中,所述缓存具体用于:
获取所述目标逻辑单元中当前要访问的数据在最近一个所述时间窗内的访问特征;
在缓存内容中查找所述当前要访问的数据;
当所述缓存命中所述当前要访问的数据但未存储有预置数据,且所述当前要访问的数据在最近一个所述时间窗内的访问特征为顺序访问时,从硬盘中获取并存储所述预置数据,其中所述预置数据为所述目标逻辑单元中地址位于所述当前要访问的数据之后且与所述当前要访问的数据地址连续的预置范围内的数据。
本发明实施例第三方面提供一种缓存管理设备,包括:
处理器,用于记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中所述目标逻辑单元中的逻辑线性空间被划分为等大小的数据块;
所述处理器还用于根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问特征;
所述处理器还用于根据所述目标逻辑单元中的至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时间段包括至少一个所述时间窗;
缓存,用于根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述目标逻辑单元中的数据块进行缓存和管理。
从以上技术方案可以看出,本发明实施例具有以下优点:
本实施例中,通过目标逻辑单元中被访问的数据块在时间窗内的访问信息来获取该数据块在该时间窗内的访问特征,并根据所述目标逻辑单元的至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,这样,能够较准确地获取每个被访问的数据块的局部访问模式以及目标逻辑单元的全局访问模式,以便后续缓存能够根据目标逻辑单元中的各被访问的数据块的局部访问模式和目标逻辑单元的全局访问模式进行对应管理,提高缓存的淘汰效率,进而提高缓存的命中率。
附图说明
图1为本发明的缓存管理方法的一个实施例的流程图;
图2为本发明的缓存管理方法的另一个实施例的流程图;
图3为本发明的缓存管理方法的另一个实施例的流程图;
图4为本发明的缓存管理方法的另一个实施例的流程图;
图5为本发明的缓存管理方法的另一个实施例的流程图;
图6为本发明的缓存管理装置的一个实施例的结构示意图;
图7为本发明的缓存管理装置的另一个实施例的结构示意图;
图8为本发明的缓存管理设备的一个实施例的结构示意图。
具体实施方式
本发明实施例提供了一种缓存管理方法、缓存管理装置和缓存管理设备,能够提高缓存的淘汰效率。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、系统、产品或设备固有的其它步骤或单元。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
请参阅图1,本发明的一个实施例中缓存管理方法包括:
101、记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中所述目标逻辑单元中的逻辑线性空间被划分为等大小的数据块;
为方便操作和管理,目标逻辑单元(Logical Unit,LU)的逻辑线性空间被划分为等大小的块,称每一块为数据块(Chunk)。优选的,该数据块的大小等于或者大于缓存中的数据块的大小。当然,实际运用中,目标逻辑单元中划分的数据块的大小也可以小于缓存中的数据块的大小,在此不作限制。
目标逻辑单元中每一个数据块均有一个能够唯一标识该数据块的ID。例如,在划分数据块时,将目标逻辑单元中地址范围为[0,4MB)数据作为Chunk0,将地址范围为[4MB,8MB)数据作为Chunk 1,以此类推。上述描述仅为举例,并不作限制。
对目标逻辑单元中的任意一个数据块进行访问时,在访问的时间内被划分为依次连续的一个个长度一致的时间窗,其中该时间窗的具体时长预先确定。举例来说,一个时间窗的时长可以为1秒。需注意的是,在对一个数据块进行访问时,并不一定访问该数据块的全部数据,有可能只访问该数据块中的部分数据。本实施例中,对数据块的访问包括读操作和写操作。对一个数据块在一个时间窗内的访问信息也可以包括多个维度,例如在该时间窗内对该数据块访问的次数、对该数据块内具体访问位置或者地址范围、访问总数据量等等,在此不作限制,其中,该访问总数据量指的是该数据块在所述时间窗内每一次被访问的地址范围叠加得到的和。
实际运用中,为使得被访问的数据块在一个时间窗内的访问信息更加体现该被访问的数据块的访问模式,在记录目标逻辑单元中被访问的数据块在一个时间窗内的访问信息时,还可以将该时间窗之前的N个时间窗(包括该时间窗)的访问信息的加权值记为该时间窗的访问信息,其中该N的具体数值以及每个时间窗的加权值的具体数值可以预先确定。
例如,以记录目标逻辑单元的其中一个数据块在当前时间窗内的对该数据块访问的次数为例。首先,记录该数据块分别在该当前时间窗内以及该当前时间窗的前2个时间窗内对该数据块分别访问的次数。其次,获取各时间窗的加权值,具体的,该当前时间窗的加权值为50%,其余2个时间窗的加权值之和为50%,而该其余所有子时间窗的加权值可以一致,也可以是随着时间的推进而增大。这样,所记录的该数据块在该当前时间窗内被访问的次数最终等于在在每个时间窗内被访问的次数乘于与其对应的加权值的积的和。
当然,以上描述仅为举例,并不作限制。
实际运用中,在获取到目标逻辑单元中被访问的数据块在每一个时间窗内的访问信息后,会将该访问信息存储到内存中,以便后续提取该访问信息进行计算。
102、根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问特征;
获取到目标逻辑单元中被访问的数据块在一个时间窗内的访问信息之后,可以从这些信息中分析出该时间窗内对该数据块的访问特征。具体举例来说,若在一个时间窗内,一个数据块中的同一部分数据被访问的次数远远超过其他部分的数据,那么可确定该数据块在该时间窗内的一个访问特征是重复度很高。当然,上述描述仅为举例,并不作限制。
103、根据所述目标逻辑单元的至少被访问的部分数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时间段包括至少一个所述时间窗;
对目标逻辑单元中的任意一个数据块进行访问时,时间被划分为依次连续的一个个长度一致的时间窗。而在目标逻辑单元被访问时,时间被划分为依次连续的一个个长度一致的时间段,其中一个时间段包括至少一个时间窗,且时间段内的各时间窗在时间上是相互连续的。例如,一个时间段包括连续的三个时间窗。
在每一个时间段结束时,开始获取目标逻辑单元在该刚结束的时间段内的全局访问特征。目标逻辑单元中被访问的数据块在每一个时间窗内的访问信息都会被存储到内存中。因此,在计算目标逻辑单元在一个时间段内的全局访问特征时,需先到内存中提取出该时间段内的访问信息,来计算每一个数据块在该时间段内每个时间窗的访问特征,再根据目标逻辑单元中每一个数据块在该时间段内的访问特征来分析目标逻辑单元在该时间段内的全局访问特征。
实际运用中,还将最近活跃的数据块的访问信息存储到缓存中,以减少访问信息对内存资源的占用以及兼顾读写访问信息的效率,本文中,为将该缓存与用于存储目标逻辑单元中的数据块的缓存区分开来,称该用于存储数据块访问信息的缓存为元数据缓存。本实施例中,只将目标逻辑单元中部分最近被访问的数据块(例如占目标逻辑单元中的十分之一的数据块)的访问信息放到元数据缓存中。该元数据缓存可以采用近期最少使用(Least recentlyused,LRU)算法进行管理,来将最久不使用的访问信息淘汰,在下盘持久保存。当然,该元数据缓存也可以采用其他算法进行管理,在此不作限制。
在设有元数据缓存的情况中,在获取目标逻辑单元在一个时间段内的全局访问特征时,仅从该元数据缓存中提取出该时间段内的元数据缓存所存储的部分数据块的访问信息,来计算该部分数据块在该时间段内每个时间窗的访问特征,再根据该部分数据块在该时间段内的访问特征来分析目标逻辑单元在该时间段内的全局访问特征。因此,本文中所描述的目标逻辑单元的部分数据块指的就是该元数据缓存中所存储的所有数据块。
这样,一方面提升了访问信息的获取效率,只读取元数据缓存而不需要下盘读取,另一方面由于元数据缓存存储的是最近的访问信息,因此能够获取到更准确、更实时的目标逻辑单元的全局访问特征。
104、据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述目标逻辑单元中的数据块进行缓存和管理;
本实施例中,缓存用于对目标逻辑单元中的数据进行缓存和管理。在缓存中数据一般以相同大小的数据块进行管理,其中数据大小可以是4KB、1MB或者4MB等等。
需注意的是,缓存中的数据块的大小不一定和目标逻辑单元中的数据块的大小一致。在缓存对目标逻辑单元中的数据块进行缓存时,有可能目标逻辑单元中的一个数据块被拆分成至少两个数据块,或者目标逻辑单元中的至少两个数据块被合并成一个数据块,后者目标逻辑单元中的一个数据块的部分与相邻的数据块的部分被合并成一个数据块之后再存储到缓存中。
缓存对目标逻辑单元中的数据块进行缓存后,还对缓存内的数据块进行管理,例如控制缓存内的数据块如何进行淘汰或者如何进行预取等等,在此不作限制。缓存对缓存内的数据块进行管理时,是根据目标逻辑单元内被访问的数据块的访问特征以及目标逻辑单元的全局访问特征来决定淘汰缓存内的哪些数据块或者对目标逻辑单元内的哪些数据块进行预取的。
本实施例中,通过目标逻辑单元中被访问的数据块在时间窗内的访问信息来获取该数据块在该时间窗内的访问特征,并根据所述目标逻辑单元的至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,这样,能够较准确地获取每个被访问的数据块的局部访问模式以及目标逻辑单元的全局访问模式,以便后续缓存能够根据目标逻辑单元中的各被访问的数据块的局部访问模式和目标逻辑单元的全局访问模式进行对应管理,提高缓存的淘汰效率,进而提高缓存的命中率。
优选的,本实施例的步骤102中,在根据目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述数据块在所述时间窗内的访问特征时,该访问特征属于顺序访问、重复访问和随机访问中的一种。
由于该三种特征已经能涵盖实际中绝大部分的访问特征,而且现在已有分别适合该三种访问特征的缓存淘汰算法,数据块的访问特征分为该三种,能够方便缓存对该三种数据块进行管理。
进一步地,下面对本发明实施例缓存管理方法中各个步骤进行更加详细的描述。请参阅图2,本发明的另一个实施例中缓存管理方法包括:
201、记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中所述目标逻辑单元中的逻辑线性空间被划分为等大小的数据块;
详细说明请参见图1所示实施例中步骤101的说明。
202、标识所述目标逻辑单元中所述被访问的数据块在所述时间窗内被访问的页面位图;
每一个数据块是由至少一个页面组成,而且,在目标逻辑单元中,每一个数据块中的每一个页面大小一致,例如都是4KB。在一个时间窗内,当一个数据块被访问时,并不一定是该数据块内的所有数据被访问,可能只是其中的部分页面被访问。需注意的是,若一个页面被重复访问,那么也需记录重复访问的次数。因此,记录一个数据块在一个时间窗内的访问信息包括标识该数据块在该时间窗内被访问的页面位图,其中页面位图包括被访问的页面以及其中每个被访问的页面被访问的总次数。
203、记录所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问总数据量,其中所述访问总数据量为数据块在所述时间窗内每一次被访问的地址范围叠加得到的和;
一个数据块在一个时间窗内的访问总数据量指的是该数据块在该时间窗内被访问的地址范围的大小的总和,若有地址范围在该时间窗内被重复访问,那么每一次访问该地址范围时该地址范围的大小都会被累计到该访问总数据量里。
204、记录所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问次数;
205、根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问特征;
由上述可知,目标逻辑单元中被访问的数据块在一个时间窗内的访问信息包括该被访问的数据块在一个时间窗内被访问的页面位图、访问总数据量以及访问次数。采用不同的分析方法来对这些访问信息进行分析时所获取到的数据块在该时间窗内的访问特征也会不同。下面对其中的一种具体方法进行描述:
首先,根据所述页面位图计算所述每一个数据块在时间窗内被访问的地址总范围R、非连续访问的个数N以及所述非连续访问之间的最大地址间距L;
现在以目标逻辑单元中其中一个数据块在其中一个时间窗的访问信息为例进行说明。由于已经对该数据块在该时间窗内被访问的页面位图进行标识,那么对所有被访问的页面的地址范围大小进行相加,即可得出该数据块在该时间窗内被访问的地址总范围R。需注意的是,在进行相加时,对重复访问的页面的地址范围并不进行重复相加。具体举例来说,一个数据块在一个时间窗内访问了两次,该两次访问的地址范围均为该数据块中的[0MB,1MB),那么该数据块在该时间窗内被访问的地址总范围R为1MB。
在该时间窗内,可以确定每一次访问该数据块时所访问的至少部分数据的地址,其中该地址包括起始地址和长度,将该起始地址与该长度的和称为终止地址。若其中一次访问的终止地址在另一次访问的起始地址之前且隔有一定间距,那么这两次访问之间是不连续的。这样,可以从中确定出所有的地址不连续的访问,并记录非连续访问的个数N。需注意的是,该非连续访问与访问时间无关,只与所访问的数据的地址相关。
在确定非连续访问的个数N之后,也可以确定非连续访问之间的所有间距L,其中每个间距为地址上最靠近的两次访问之间的间距,且该间距等于地址靠后的一次访问的起始地址与地址靠前的一次访问的终止地址的差。例如,若该数据块在该时间窗内非连续访问的个数为200,那么其中有199个间距。计算每一个间距的具体数值,并确定其中数值最大的间距L。
在计算出以上各参数后,当N大于或者等于第一预置数值且L小于第二预置数值时,或者,当R占所述被访问的数据块的地址范围的比例大于或者等于第三预置数值时,确定所述被访问的数据块在所述时间窗内的访问特征为顺序访问。
具体举例来说,在一个时间窗内,当一个被访问的数据块的非连续访问达到200个,并且非连续访问之间的最大间距小于8个页面大小时,确定该数据块在该时间窗内的访问特征为顺序访问;或者,当该数据块在该时间窗内的访问覆盖率大于或者等于75%,也即该数据块在该时间窗内被访问的范围占数据块的范围的比例大于或者等于75%时,确定该数据块在该时间窗内的访问特征为顺序访问。
当然,实际运用中,也可以通过其他方法来确定一个数据块在一个时间窗内的访问特征为顺序访问,在此不作限制。
进一步的,在一个时间窗内,当所述被访问的地址总范围R占所述数据块的地址范围的比例小于第三预置数值,而且,所述访问总数据量与R的差与R的比值大于1时,确定所述数据块在所述时间窗内的访问特征为重复访问。
具体举例来说,当一个数据块在一个时间窗内满足以下所有条件时,确定该数据块在该时间窗内的访问特征为重复访问:1、该数据块在该时间窗内的访问覆盖率小于75%,也即该数据块在该时间窗内被访问的总地址范围R占数据块的地址范围的比例小于75%,因此不满足顺序访问的条件;2、该数据块在该时间窗内的访问总数据量与R的差记为访问重复数据量,该重复数据量与R的比值大于1。
当然,实际运用中,也可以通过其他方法来确定一个数据块在一个时间窗内的访问特征为重复访问,在此不作限制。
通过上述方法可确定一个数据块在一个时间窗内的访问特征为顺序访问还是重复访问,若都不满足该顺序访问和重复访问的所需的条件,那么可确定该数据块的访问特征为随机访问。当然,实际运用中,也可以通过其他方法来确定一个数据块在一个时间窗内的访问特征为随机访问,在此不作限制。
其余详细说明请参见图1所示实施例中步骤102的说明。
206、根据所述目标逻辑单元的至少被访问的部分数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时间段包括至少一个所述时间窗;
由上述可知,在根据目标逻辑单元中被访问的数据块在每一个时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问特征时,该访问特征属于顺序访问、重复访问和随机访问中的一种。采用不同的分析方法来对目标逻辑单元的至少部分被访问的数据块在一个时间段内的访问特征进行分析时所获取到的目标逻辑单元在该时间段内的全局访问特征也会不同。
本实施例中,在一个时间段结束时,根据目标逻辑单元的至少部分被访问的数据块在该时间段中的每一个时间窗内的访问特征确定该目标逻辑单元在该时间段内的全局访问特征属于顺序访问、重复访问和随机访问中的其中一种。下面对其中的一种确定目标逻辑单元在该时间段内的全局访问特征的具体方法进行描述:
首先,统计目标逻辑单元的至少部分数据块中,在该时间段内访问特征为顺序访问的数据块的数量,以及所述目标逻辑单元的至少部分数据块的数量。
需注意的是,目标逻辑单元的至少部分被访问的数据块指的是用来分析目标逻辑单元的全局访问特征的这部分被访问的数据块,例如元数据缓存中所存储的那部分数据块,或者全部的被访问的数据块。统计该部分被访问的数据块中访问特征确定为顺序访问的数据块的数量,以及这部分被访问的数据块的总数量。
在计算出以上数据后,计算所述目标逻辑单元的顺序度,其中所述顺序度等于所述至少部分被访问的数据块中,所述访问特征为顺序访问的数据块的数量与所述目标逻辑单元的至少部分被访问的数据块的数量的比值。当所述目标逻辑单元的顺序度大于或者等于第七预置数值(例如65%)时,确定所述目标逻辑单元在所述时间段内的全局访问特征为顺序访问。
当然,实际运用中,也可以通过其他方法来确定目标逻辑单元在一个时间段内的全局访问特征为顺序访问,在此不作限制。
进一步的,统计所述目标逻辑单元的至少部分被访问的数据块中,在所述时间段内访问特征为重复访问的数据块的数量。计算目标逻辑单元的重复度,其中所述重复度等于所述至少部分被访问的数据块中,所述访问特征为重复访问的数据块的数量与所述目标逻辑单元的至少部分被访问的数据块的数量的比值。
另外,还计算目标逻辑单元的聚簇度,其中该聚簇度为所述目标逻辑单元的至少部分被访问的数据块在所述时间段内的访问次数均方差。具体来说,统计目标逻辑单元的至少部分被访问的数据块的数量为n,以及该至少部分被访问的数据块(也即该n个数据块)中每个数据块在该时间段内的访问次数为Xi(i=1,…,n),其中每个数据块在该时间段内的访问次数Xi等于该数据块在该时间段内的所有时间窗内的访问次数之和。那么该至少部分被访问的数据块的平均访问计数计算该目标逻辑单元的至少部分被访问的数据块在所述时间段内的访问次数均方差为
当所述目标逻辑单元的顺序度小于所述第七预置数值,所述目标逻辑单元的重复度大于或者等于第八预置数值,且所述聚簇度大于或者等于第九预置数值时,确定所述目标逻辑单元在所述时间段内的全局访问特征为重复访问。
具体举例来说,当目标逻辑单元的顺序度小于65%,目标逻辑单元的重复度大于或者等于30%,且所述聚簇度大于或者等于1000时,确定所述目标逻辑单元在所述时间段内的全局访问特征为重复访问。
当然,实际运用中,也可以通过其他方法来确定目标逻辑单元在一个时间段内的全局访问特征为重复访问,在此不作限制。
通过上述方法可确定目标逻辑单元在一个时间段内的全局访问特征为顺序访问还是重复访问,若都不满足该顺序访问和重复访问的所需的条件,那么可确定目标逻辑单元在该时间段内的全局访问特征为随机访问。当然,实际运用中,也可以通过其他方法来确定目标逻辑单元在一个时间段内的全局访问特征为随机访问,在此不作限制。
其余详细说明请参见图1所示实施例中步骤103的说明。
207、据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述目标逻辑单元中的数据块进行缓存和管理;
其余详细说明请参见图1所示实施例中步骤104的说明。
本实施例中,通过以上所描述的各种算法,能够更加准确地分析出目标逻辑单元中被访问的数据块在每一个时间窗内的访问特征,以及目标逻辑单元在一个时间段内的全局访问特征。
上面各实施例描述了如何获取目标逻辑单元中被访问的数据块在一个时间窗内的访问特征,以及目标逻辑单元在一个时间段内的全局访问特征。下面将对如何运用所获取到的访问特征来管理缓存。请参阅图3,本发明的另一个实施例中缓存管理方法包括:
301、记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中所述目标逻辑单元中的逻辑线性空间被划分为等大小的数据块;
详细说明请参见图1所示实施例中步骤101的说明。
302、根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问特征;
详细说明请参见图1所示实施例中步骤102和/或图2所示实施例中步骤202至步骤205的说明。
303、根据所述目标逻辑单元的至少被访问的部分数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时间段包括至少一个所述时间窗;
详细说明请参见图1所示实施例中步骤103和/或图2所示实施例中步骤206的说明。
304、获取所述目标逻辑单元中待缓存的数据块在最近的一个所述时间窗内的访问特征,其中,缓存中包括至少两个管理链表,每个管理链表采用不同的淘汰算法;
本实施例中,缓存中包括至少两个管理链表,其中每个管理链表采用不同的淘汰算法。具体举例来说,缓存中设有两个管理链表,其中一个采用LRU(Least recently used,近期最少使用)算法,另一个采用ARC(AdaptiveReplacement缓存)算法。
当要访问的数据在缓存中未命中时,缓存会从目标逻辑单元中获取该数据并准备缓存到缓存中。由于缓存对缓存内的数据是分成一个个数据块进行管理的,因此该准备缓存到缓存内的数据被分成至少一个和缓存内的数据块大小一致的待缓存的数据块。对于其中任意一个待缓存的数据块,在将该待缓存的数据块插入缓存之前,缓存首先获取该待缓存的数据块在最近的一个时间窗内的访问特征。
305、根据所述待缓存的数据块的访问特征将所述待缓存的数据块分成待缓存的子数据块;
任意一个待缓存的数据块中的数据有可能对应着目标逻辑单元中的一个数据块的至少部分,也有可能对应着至少两个被访问的数据块,或者对应着两个被访问的数据块中每一个数据块的部分。不同的被访问的数据块的访问特征可能不同也可能相同。那么,一个待缓存的数据块包括至少一种访问特征。
若该待缓存的数据块只具有一种访问特征,那么本实施例中所描述的待缓存的子数据块就是该待缓存的数据块。若该待缓存的数据块具有至少两种访问特征,那么将该待缓存的数据块中具有相同的一种访问特征的数据分到一个待缓存的子数据块中,将该待缓存的数据块中具有相同的另一种访问特征的数据分到另一个待缓存的子数据块中,以此类推,将该待缓存的数据块分成与所具有的访问特征的种类的数量一致的子数据块。
306、根据所述待缓存的子数据块的访问特征与淘汰算法的对应关系,将所述待缓存的子数据块分别插入管理链表中;
待缓存的子数据块的访问特征已经确定,而且缓存中各管理链表的淘汰算法也是预先确定好的。因此,数据块的每一种访问特征与各淘汰算法是预先确定好对应关系的,其中每一种访问特征和与其对应的淘汰算法相比和其他单一淘汰算法或普通自适应淘汰算法是精细化适配的。这样,在缓存插入待缓存的子数据块时,只要从该对应关系中确定具有与该待缓存的子数据块的访问特征对应的淘汰算法的管理链表,即可将该待缓存的子数据块插入该管理链表中。
当前,缓存淘汰算法种类繁多但是具有应用场景局限性,当前没有任何一种缓存淘汰算法能够适用于所有的访问模式。不同的数据块的访问模式因访问场景、访问时间、访问习惯、用户数等等因素而差异巨大。然而,现有技术中常将局部区域具有不同访问模式的数据统一使用某单一的缓存淘汰算法,因此缓存淘汰效果差,缓存命中率较低。本实施例中,通过在缓存内设置具有不同淘汰算法的管理链表,并将数据块插入与该数据块的访问特征适配的管理链表中,能够改善缓存淘汰效果,提高缓存命中率。
优选的,本实施例中,所述待缓存的子数据块的访问特征属于顺序访问、重复访问和随机访问中的其中一种;所述缓存包括三个管理链表,所述三个管理链表的淘汰算法分别为LRU算法、LFU(Least Frequently Used,最不经常使用页置换)算法、MRU(Most Recently Used,最近最常使用)算法。
步骤306所述缓存根据所述数据块的访问特征将所述数据块插入具有与所述访问特征适配的淘汰算法的管理链表中具体包括:
当所述待缓存的子数据块的访问特征为顺序访问时,则将所述待缓存的子数据块插入MRU算法链表中;
当所述待缓存的子数据块的访问特征为重复访问时,则将所述待缓存的子数据块插入LFU算法链表中;
当所述待缓存的子数据块的访问特征为随机访问时,则将所述待缓存的子数据块插入LRU算法链表中。
这样,由于顺序访问、重复访问和随机访问该三种访问特征已经能涵盖实际中绝大部分的访问特征,而且MRU算法、LFU算法和LRU算法分别与该三种访问特征适配度较高,能够极大提高缓存的命中率。
上面实施例中,对缓存的管理包括根据所述待缓存的子数据块的访问特征将所述待缓存的子数据块插入具有与所述访问特征适配的淘汰算法的管理链表中,实际运用中,对缓存的管理也可以是根据目标逻辑单元的全局访问特征来决定缓存中各管理链表的淘汰顺序。下面对本发明实施例缓存管理方法中缓存淘汰适配方法进行详细的描述。请参阅图4,本发明的另一个实施例中缓存管理方法包括:
401、记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中所述目标逻辑单元中的逻辑线性空间被划分为等大小的数据块;
详细说明请参见图1所示实施例中步骤101的说明。
402、根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问特征;
详细说明请参见图1所示实施例中步骤102和/或图2所示实施例中步骤202至步骤205的说明。
403、根据所述目标逻辑单元的至少被访问的部分数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时间段包括至少一个所述时间窗;
详细说明请参见图1所示实施例中步骤103和/或图2所示实施例中步骤206的说明。
404、当检测到缓存中满足淘汰数据的条件时,获取所述目标逻辑单元在最近的所述一个时间段内的全局访问特征,其中,所述缓存中包括至少两个管理链表,每个管理链表采用不同的淘汰算法;
本实施例中,缓存中包括至少两个管理链表,其中每个管理链表采用不同的淘汰算法。具体举例来说,缓存中设有两个管理链表,其中一个采用LRU(Least recently used,近期最少使用)算法,另一个采用ARC(AdaptiveReplacement缓存)算法。
缓存淘汰数据的条件有多种,例如,当缓存空间满时,或者当达到缓存淘汰水位时,确定缓存满足淘汰数据的条件。当然,上述仅为举例,并不作限制。当缓存满足淘汰数据的条件时,获取目标逻辑单元距离当前最近的一个时间段内的全局访问特征。
405、根据所述目标逻辑单元在最近的所述一个时间段内的全局访问特征调整所述缓存中内管理链表的淘汰顺序;
目标逻辑单元的全局访问特征有哪些是已经确定的,而缓存内的各管理链表也是已经确定的,因此在缓存内各管理链表的所有淘汰顺序中,可以确定出其中一种淘汰顺序是与其中一种目标逻辑单元的全局访问特征最适配的,也即使得缓存的淘汰效率最高的。因此,在缓存满足淘汰数据的条件时,缓存可以根据目标逻辑单元在最近一个时间段内的全局访问特征来确定此次淘汰顺序。
具体来说,缓存包括管理链表A和B。当前根据目标逻辑单元在最近一个时间段内的全局访问特征确定的淘汰顺序是从管理链表A到管理链表B。由于缓存每一次淘汰数据时所要的淘汰数据量是一定的。如果管理链表A中存储的数据量达到该淘汰数据量,那么只需淘汰管理链表A中的数据,如果管理链表A中存储的数据量达不到该要淘汰的数据量,那么先淘汰管理链表A中的所有数据,再淘汰管理链表B中的数据,以使得淘汰掉的数据量达到预定的淘汰数据量。
这样,本实施例中,能够根据目标逻辑单元在最近一个时间段内的全局访问特征来决定最适配的缓存淘汰顺序,能够提高缓存的淘汰效率,进而提高缓存的命中率。
优选的,本实施例中,所述目标逻辑单元在最近一个时间段内的全局访问特征属于顺序访问、重复访问和随机访问中的其中一种;所述缓存包括三个管理链表,所述三个管理链表的淘汰算法分别为LRU算法、LFU算法、MRU算法。
步骤405根据所述目标逻辑单元在最近的所述一个时间段内的全局访问特征调整所述缓存中内管理链表的淘汰顺序具体包括:
当所述目标逻辑单元在最近一个时间段内的全局访问特征为顺序访问时,所述缓存调整各管理链表的淘汰顺序依次为LFU算法、LRU算法、MRU算法;
当所述目标逻辑单元在最近一个时间段内的全局访问特征为重复访问时,所述缓存调整各管理链表的淘汰顺序依次为MRU算法、LRU算法、LFU算法;
当所述目标逻辑单元在最近一个时间段内的全局访问特征为随机访问时,所述缓存调整各管理链表的淘汰顺序依次为MRU算法、LFU算法、LRU算法。
图3所示实施例中描述了缓存如何根据所述待缓存的子数据块的访问特征与淘汰算法的对应关系,将所述待缓存的子数据块分别插入管理链表中,图4所示实施例中描述了缓存如何根据目标逻辑单元在最近的所述一个时间段内的全局访问特征调整所述缓存中内管理链表的淘汰顺序。优选的,缓存可将图3所示实施例和图4所示实施例这两个实施例中所描述的对缓存的管理方法结合起来,以进一步提高缓存的淘汰效率。
上面实施例中,缓存根据目标逻辑单元的被访问的数据块的访问特征以及目标逻辑单元的全局特征来管理缓存内数据的淘汰。实际运用中,缓存还可以根据插入数据块在最近一个时间窗内的访问特征来决定如何对硬盘中的数据进行预取。下面对如何来让缓存进行预取进行描述。请参阅图5,本发明的另一个实施例中缓存管理方法包括:
501、记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中所述目标逻辑单元中的逻辑线性空间被划分为等大小的数据块;
详细说明请参见图1所示实施例中步骤101的说明。
502、根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问特征;
详细说明请参见图1所示实施例中步骤102和/或图2所示实施例中步骤202至步骤205的说明。
503、根据所述目标逻辑单元的至少被访问的部分数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时间段包括至少一个所述时间窗;
详细说明请参见图1所示实施例中步骤103和/或图2所示实施例中步骤206的说明。
504、获取当前要访问的数据在最近的一个所述时间窗内的访问特征;
当前要对目标逻辑单元中的部分数据进行访问。需注意的是,所要访问的该部分数据有可能并不是目标逻辑单元中的一个数据块,那么所要访问的该部分数据的访问特征指的是该部分数据所来自的目标逻辑单元的数据块的访问特征。
506、在缓存内容中查找所述当前要访问的数据;
实际运用中,要访问目标逻辑单元中的数据时,并不是直接到目标逻辑单元中访问,而是先到本地缓存中查找该数据,以提高I/O速度。
507、当所述缓存未命中所述当前要访问的数据,且所述当前要访问的数据在最近一个时间窗内的访问特征为顺序访问时,缓存从硬盘中获取并存储所述当前要访问的数据以及预置数据,其中所述预置数据为所述目标逻辑单元中地址位于所述当前要访问的数据之后且与所述当前要访问的数据的地址连续的预置范围内的数据;
在该当前要访问的数据中,当地址最靠后的、来自的目标逻辑单元的同一个数据块的部分数据在最近一个时间窗内的访问特征为顺序访问时,即可确定该当前要访问的数据在最近一个时间窗内的访问特征为顺序访问。
所述当前要访问的数据在缓存未命中时,缓存可以从硬盘中获取该数据并存储,以便下一次该数据能在该缓存内命中。
由于该当前要访问的数据的访问特征是顺序访问,那么可以确定目标逻辑单元中地址位于所述当前要访问的数据地址之后的数据随后被访问到。因此,缓存还从硬盘中预先提取预置数据并存储,其中该预置数据指的是目标逻辑单元中地址位于所述当前要访问的数据地址之后且与所述当前要访问的数据地址连续的预置范围内的数据,以便下一次该预置数据能在该缓存内命中。其中,缓存在硬盘中所获取的预置数据的具体大小(也即所述预置范围)可以根据具体情况具体确定。具体的,若目标逻辑单元的当前全局访问特征为顺序访问时,该预取数据的量可以取值大些,否则该预取数据的量取值小些,以提升缓存所预取的数据的有效性。
本实施例中,通过根据当前要访问的数据的访问特征来决定是否要将该数据以及预置数据预存到缓存中,由于该数据的访问特征是顺序访问时以后访问到该数据以及预置数据的概率较大,因此将该数据预存到缓存中能提高缓存的命中率。
实际运用中,当所述缓存命中所述当前要访问的数据但未存储有所述预置数据,且所述当前要访问的数据在最近一个时间窗内的访问特征为顺序访问时,所述缓存也可以从硬盘中获取并存储所述预置数据。
在当前要访问数据的访问特征为顺序访问的情况下,目标逻辑单元中地址位于所述当前要访问的数据地址之后且与所述当前要访问的数据地址连续的预置范围内的数据(即预置数据)即将被访问到的概率较大。因此,即使缓存中存储有该当前要访问的数据,若缓存中未存储有预置数据,缓存可以还从硬盘中预先提取该预置数据并存储,以提高缓存的命中率。
需注意的是,即使缓存中存储有预置数据中的部分数据,由于该预置数据在缓存中的命中率较高,因此缓存也需从硬盘中获取并存储预置数据中未存储在缓存中的其他部分数据。
当然,实际运用中,当该当前要访问的数据在最近一个时间窗内的访问特征不是顺序访问时,缓存可以不对上述所描述的预置数据进行预取,以减小对缓存的空间占用,提高缓存的命中率。
上面对本发明中的缓存管理方法的各实施例进行了描述。为便于理解,下面以一个实际应用场景对本发明的缓存管理方法进行描述。
首先,该方法包括两个部分,第一部分是获取目标逻辑单元中的数据的访问模式,第二部分是缓存根据该数据的访问模式来确定缓存里数据的淘汰方法。
在第一部分中,目标逻辑单元的逻辑线性空间被划分为等大小的数据块。其中该数据块的大小大于缓存中的数据块的大小。具体的,目标逻辑单元中每个数据块的大小为4MB,缓存中每个数据块的大小为1MB。而每个数据块中包括多个大小一致的页面,例如大小为4KB的页面,每个页面在该数据块内的地址都是唯一的。
目标逻辑单元中的每一个被访问的数据块每一次被访问的时长由一个个长度一致的时间窗组成。记录每一个被访问的数据块在每一个时间窗内的访问信息。
具体的,以一个被访问的数据块在一个时间窗内的访问信息为例。标识该被访问的数据块内所有被访问到的页面,计算该所有被访问到的页面的地址范围的大小的总和。如果其中一个页面被重复访问,那么该页面的数据长度也被重复累加到总和中。这样,可以统计出在该时间窗内该被访问的数据块的访问总数据量,也即等于每个被访问到的页面的大小与被访问的次数的乘积之和。还对该被访问的数据块在该时间窗内被访问的次数进行统计。
在获取到目标逻辑单元中每个被访问的数据块在每个时间窗内的访问信息之后,对这些访问信息进行分析。
具体以在一个时间窗内对目标逻辑单元中被访问的的数据中的其中一个数据块的访问信息的分析为例。根据该数据块在该时间窗内被标识的页面,计算该数据块在该时间窗内被访问的地址总范围,也即对所有被访问的页面的地址范围大小进行相加,其中重复访问的页面的大小并不重复相加。确定在该时间窗内对该数据块每一次访问的地址,其中该该地址包括起始地址和长度,将该起始地址与该长度的和称为终止地址。这样,可以确定在该时间窗内对该数据块的所有访问中的非连续访问。
需注意的是,该非连续访问并不是指时间上的不连续,而是指地址上的不连续。计算该非连续访问的个数,还计算在该非连续访问之间的最大间距,也即该非连续访问中任意两个地址相邻的访问的地址间距最大的一个。
确定上述参数后,当一个数据块的非连续访问大于或者等于200个,并且非连续访问之间的最大间距小于8个页面大小时,确定该数据块在该时间窗内的访问特征为顺序访问;或者,当该数据块在该时间窗内的访问覆盖率大于或者等于75%,也即该数据块在该时间窗内被访问的范围占数据块的范围的比例大于或者等于75%时,确定该数据块在该时间窗内的访问特征为顺序访问。
当一个被访问的数据块在一个时间窗内满足一下所有条件时,确定该被访问的数据块在该时间窗内的访问特征为重复访问:1、该被访问的数据块在该时间窗内的访问覆盖率大于10%且小于75%,也即该数据块在该时间窗内被访问的范围占数据块的范围的比例大于10%且小于75%;2、该被访问的数据块在该时间窗内的访问总数据量与被访问的地址总范围的差记为访问重复数据量,该重复数据量与被访问的地址总范围的比值大于1。
当一个被访问的数据块在一个时间窗内既不满足顺序访问的特征也不满足重复访问的特征时,确认该被访问的数据块在该时间窗内的访问特征为随机访问。
获取到目标逻辑单元中被访问的数据块在时间窗内的访问特征后,再根据各访问特征获取目标逻辑单元在一个时间段内的全局访问特征,其中一个时间段包括三个时间窗。
首先,统计目标逻辑单元的至少部分被访问的数据块中,在该时间段内访问特征为顺序访问的数据块的数量,以及所述目标逻辑单元的至少部分被访问的数据块的数量。
计算所述目标逻辑单元的顺序度,其中所述顺序度等于所述至少部分被访问的数据块中,所述访问特征为顺序访问的数据块的数量与所述目标逻辑单元的至少部分被访问的数据块的数量的比值。当所述目标逻辑单元的顺序度达到65%时,确定所述目标逻辑单元在所述时间段内的全局访问特征为顺序访问。
进一步的,统计所述目标逻辑单元的至少部分被访问的数据块中,在所述时间段内访问特征为重复访问的数据块的数量。
计算目标逻辑单元的重复度,其中所述重复度等于所述至少部分被访问的数据块中,所述访问特征为重复访问的数据块的数量与所述目标逻辑单元的至少部分被访问的数据块的数量的比值。
另外,还计算目标逻辑单元的聚簇度,其中该聚簇度为所述目标逻辑单元的至少部分被访问的数据块在所述时间段内的访问次数均方差。
当目标逻辑单元的顺序度小于65%,目标逻辑单元的重复度大于或者等于30%,且所述聚簇度大于或者等于1000时,确定所述目标逻辑单元在所述时间段内的全局访问特征为重复访问。
当目标逻辑单元在一个时间段内既不满足顺序访问的特征条件也不满足重复访问的特征条件时,确认该目标逻辑单元在该时间段内的全局访问特征为随机访问。
在访问目标逻辑单元中的一个数据时,会先在缓存内查找该缓存内是否有缓存该数据,若缓存内未存储有,则去硬盘中获取该数据,还将该数据插入缓存中。称该数据为待缓存的数据块。该缓存包括三个管理链表,其中该三个管理链表的淘汰算法分别为LRU算法、LFU算法和MRU算法。
在对待缓存的数据块进行缓存之前,缓存获取该待缓存的数据块在最近的一个时间窗内的访问特征。由于该待缓存的数据块对应着目标逻辑单元中的两个不同的数据块,其中该两个不同的数据块分别在最近的一个时间窗内的访问特征不同。该待缓存的数据块被分成两个待缓存的子数据块,其中两个待缓存的子数据块的访问特征分别为该两个数据块的两个访问特征。
对于该两个待缓存的子数据块中的任意一个子数据块,当所述待缓存的子数据块的访问特征为顺序访问时,将所述待缓存的子数据块插入MRU算法链表中;当所述待缓存的子数据块的访问特征为重复访问时,将所述待缓存的子数据块插入LFU算法链表中;当所述待缓存的子数据块的访问特征为随机访问时,将所述待缓存的子数据块插入LRU算法链表中。
当缓存空间满时,或者当达到缓存淘汰水位时,缓存获取该目标逻辑单元在最近一个时间段内的全局访问特征。
当所述目标逻辑单元在最近一个时间段内的全局访问特征为顺序访问时,所述缓存调整各管理链表的淘汰顺序依次为LFU算法、LRU算法、MRU算法;
当所述目标逻辑单元在最近一个时间段内的全局访问特征为重复访问时,所述缓存调整各管理链表的淘汰顺序依次为MRU算法、LRU算法、LFU算法;
当所述目标逻辑单元在最近一个时间段内的全局访问特征为随机访问时,所述缓存调整各管理链表的淘汰顺序依次为MRU算法、LFU算法、LRU算法。
上面对本发明实施例中的缓存管理方法进行了描述,下面对本发明实施例中的缓存管理装置进行描述,请参阅图6,本发明实施例中缓存管理装置600包括:
记录模块601,用于记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中所述目标逻辑单元中的逻辑线性空间被划分为等大小的数据块;
第一获取模块602,用于根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问特征;
第二获取模块603,用于根据所述目标逻辑单元中的至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时间段包括至少一个所述时间窗;
缓存604,用于根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述目标逻辑单元中的数据块进行缓存和管理。
本实施例中,通过目标逻辑单元中被访问的数据块在时间窗内的访问信息来获取该数据块在该时间窗内的访问特征,并根据所述目标逻辑单元的至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,这样,能够较准确地获取每个被访问的数据块的局部访问模式以及目标逻辑单元的全局访问模式,以便后续缓存能够根据目标逻辑单元中的各被访问的数据块的局部访问模式和目标逻辑单元的全局访问模式进行对应管理,提高缓存的淘汰效率,进而提高缓存的命中率。
优选的,本实施例中,第一获取模块602具体用于根据目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述数据块在所述时间窗内的访问特征时,该访问特征属于顺序访问、重复访问和随机访问中的一种。
由于该三种特征已经能涵盖实际中绝大部分的访问特征,而且现在已有分别适合该三种访问特征的缓存淘汰算法,数据块的访问特征分为该三种,能够方便缓存对该三种数据块进行管理。
如图6所示,本发明的另一个实施例中缓存管理装置包括:
记录模块601,用于记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中所述目标逻辑单元中的逻辑线性空间被划分为等大小的数据块;
第一获取模块602,用于根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问特征;
第二获取模块603,用于根据所述目标逻辑单元中的至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时间段包括至少一个所述时间窗;
缓存604,用于根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述目标逻辑单元中的数据块进行缓存和管理。
本实施例中,记录模块601具体用于:
标识所述目标逻辑单元中所述被访问的数据块在所述时间窗内被访问的页面位图;
记录所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问总数据量;其中,所述访问总数据量为数据块在所述时间窗内每一次被访问的地址范围叠加得到的和;
记录所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问次数。
进一步,优选的,第一获取模块602具体用于:
根据所述页面位图计算所述被访问的每一个数据块在所述时间窗内被访问的地址总范围R、非连续访问的个数C以及所述非连续访问之间的最大地址间距L;
在所述时间窗内,当C大于第一预置数值且L小于第二预置数值时,或者,当R占所述数据块的地址范围的比例大于或者等于第三预置数值时,确定所述被访问的数据块在所述时间窗内的访问特征为顺序访问。
进一步,优选的,所述第一获取模块602还用于在所述时间窗内,当R占所述数据块的地址范围的比例小于第三预置数值时,而且,所述访问总数据量与R的差与R的比值大于1时,确定所述被访问的数据块在所述时间窗内的访问特征为重复访问。
和/或,本实施例中,第二获取模块603具体用于在所述时间段结束时,根据所述目标逻辑单元的所述至少部分被访问的数据块在所述时间段中的所述时间窗内的访问特征确定所述目标逻辑单元在所述时间段内的全局访问特征属于顺序访问、重复访问和随机访问中的其中一种。
进一步,优选的,所述第二获取模块603具体用于:
统计所述目标逻辑单元的所述至少部分被访问的数据块中,在所述时间段内访问特征为顺序访问的数据块的数量,以及所述目标逻辑单元的所述至少部分被访问的数据块的数量;
计算所述目标逻辑单元的顺序度,其中所述顺序度等于所述至少部分被访问的数据块中,所述访问特征为顺序访问的数据块的数量与所述目标逻辑单元的所述至少部分被访问的数据块的数量的比值;
当所述目标逻辑单元的顺序度大于或者等于第七预置数值时,确定所述目标逻辑单元在所述时间段内的全局访问特征为顺序访问。
进一步,优选的,所述第二获取模块603具体用于:
统计所述目标逻辑单元的所述至少部分被访问的数据块中,在所述时间段内访问特征为重复访问的数据块的数量;
计算所述目标逻辑单元的重复度,其中所述重复度等于所述至少部分被访问的数据块中,所述访问特征为重复访问的数据块的数量与所述目标逻辑单元的所述至少部分被访问的数据块的数量的比值;
统计所述目标逻辑单元的所述至少部分被访问的数据块在所述时间段内的访问次数均方差;
当所述目标逻辑单元的顺序度小于所述第七预置数值,所述目标逻辑单元的重复度大于或者等于第八预置数值,且所述均方差大于或者等于第九预置数值时,确定所述目标逻辑单元在所述时间段内的全局访问特征为重复访问。
本实施例中,通过以上所描述的各种算法,能够更加准确地分析出目标逻辑单元中被访问的数据块在每一个时间窗内的访问特征,以及目标逻辑单元在一个时间段内的全局访问特征。
上面各实施例描述了第一获取模块如何获取目标逻辑单元中被访问的数据块在一个时间窗内的访问特征,以及第二获取模块如何获取目标逻辑单元在一个时间段内的全局访问特征。下面将对缓存如何运用所获取到的访问特征来管理缓存。请参阅图6,本发明的另一个实施例中缓存管理方法包括:
记录模块601,用于记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中所述目标逻辑单元中的逻辑线性空间被划分为等大小的数据块;
第一获取模块602,用于根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问特征;
第二获取模块603,用于根据所述目标逻辑单元中的至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时间段包括至少一个所述时间窗;
缓存604,用于根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述目标逻辑单元中的数据块进行缓存和管理。
本实施例中,所述缓存604中包括至少两个管理链表,每个管理链表采用不同的淘汰算法;
所述缓存604具体用于:
获取所述目标逻辑单元中待缓存的数据块在最近的一个所述时间窗内的访问特征;
根据所述待缓存的数据块的访问特征将所述待缓存的数据块分成待缓存的子数据块;
根据所述待缓存的子数据块的访问特征与淘汰算法的对应关系,将所述待缓存的子数据块分别插入管理链表中。
当前,缓存淘汰算法种类繁多但是具有应用场景局限性,当前没有任何一种缓存淘汰算法能够适用于所有的访问模式。不同的数据块的访问模式因访问场景、访问时间、访问习惯、用户数等等因素而差异巨大。然而,现有技术中常将局部区域具有不同访问模式的数据统一使用某单一的缓存淘汰算法,因此缓存淘汰效果差,缓存命中率较低。本实施例中,通过在缓存内设置具有不同淘汰算法的管理链表,并将数据块插入与该数据块的访问特征适配的管理链表中,能够改善缓存淘汰效果,提高缓存命中率。
进一步,优选的,所述待缓存的子数据块的访问特征属于顺序访问、重复访问和随机访问中的其中一种;
所述缓存604中包括三个管理链表,所述三个管理链表使用的淘汰算法分别为近期最少使用算法、最不经常使用页置换算法、最近最常使用算法;
所述缓存604具体用于:
当所述待缓存的子数据块的访问特征为顺序访问时,将所述待缓存的子数据块插入使用所述最近最常使用算法的链表中;
当所述待缓存的子数据块的访问特征为重复访问时,将所述待缓存的子数据块插入使用所述最不经常使用页置换算法的链表中;
当所述待缓存的子数据块的访问特征为随机访问时,将所述待缓存的子数据块插入使用近期最少使用算法的链表中。
这样,由于顺序访问、重复访问和随机访问该三种访问特征已经能涵盖实际中绝大部分的访问特征,而且MRU算法、LFU算法和LRU算法分别与该三种访问特征适配度较高,能够极大提高缓存的命中率。
上面实施例中,缓存对缓存的管理包括根据所述待缓存的子数据块的访问特征将所述待缓存的子数据块插入具有与所述访问特征适配的淘汰算法的管理链表中,实际运用中,缓存对缓存的管理也可以是根据目标逻辑单元的全局访问特征来决定缓存中各管理链表的淘汰顺序。下面对本发明实施例缓存管理方法中缓存淘汰适配方法进行详细的描述。
请参阅图6,本发明的另一个实施例中缓存管理装置包括:
记录模块601,用于记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中所述目标逻辑单元中的逻辑线性空间被划分为等大小的数据块;
第一获取模块602,用于根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问特征;
第二获取模块603,用于根据所述目标逻辑单元中的至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时间段包括至少一个所述时间窗;
缓存604,用于根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述目标逻辑单元中的数据块进行缓存和管理。
本实施例中,所述缓存604具体用于:
当检测到所述缓存中满足淘汰数据的条件时,获取所述目标逻辑单元在最近的所述一个时间段内的全局访问特征;
根据所述目标逻辑单元在最近的所述一个时间段内的全局访问特征调整所述缓存中内管理链表的淘汰顺序;
其中,所述缓存中包括至少两个管理链表,每个管理链表采用不同的淘汰算法。
进一步,优选的,所述目标逻辑单元在最近的所述一个时间段内的全局访问特征属于顺序访问、重复访问和随机访问中的其中一种;
所述缓存604中包括三个管理链表,所述三个管理链表使用的淘汰算法分别为近期最少使用算法、最不经常使用页置换算法、最近最常使用算法;
所述缓存604具体用于:
当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为顺序访问时,调整所述管理链表的淘汰顺序依次为使用所述最不经常使用页置换算法的管理链表、使用所述近期最少使用算法的管理链表和使用所述最近最常使用算法的管理链表;
当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为重复访问时,调整所述管理链表的淘汰顺序依次为使用所述最近最常使用算法的管理链表、使用所述近期最少使用算法的管理链表和使用所述最不经常使用页置换算法的管理链表;
当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为随机访问时,调整所述管理链表的淘汰顺序依次为使用所述最近最常使用算法的管理链表、使用所述最不经常使用页置换算法的管理链表和使用所述近期最少使用算法的管理链表。
请参阅图6,本发明的另一个实施例中缓存管理装置包括:
记录模块601,用于记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中所述目标逻辑单元中的逻辑线性空间被划分为等大小的数据块;
第一获取模块602,用于根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问特征;
第二获取模块603,用于根据所述目标逻辑单元中的至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时间段包括至少一个所述时间窗;
缓存604,用于根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述目标逻辑单元中的数据块进行缓存和管理。
本实施例中,所述缓存604具体用于:
获取所述目标逻辑单元中当前要访问的数据在最近一个所述时间窗内的访问特征;
在缓存内容中查找所述当前要访问的数据;
当所述缓存未命中所述当前要访问的数据,且所述当前要访问的数据在最近一个时间窗内的访问特征为顺序访问时,缓存从硬盘中获取并存储所述当前要访问的数据以及预置数据,其中所述预置数据为所述目标逻辑单元中地址位于所述当前要访问的数据之后且与所述当前要访问的数据的地址连续的预置范围内的数据。
或者,所述缓存604具体用于:
获取所述目标逻辑单元中当前要访问的数据在最近一个所述时间窗内的访问特征;
在缓存内容中查找所述当前要访问的数据;
当所述缓存命中所述当前要访问的数据但未存储有预置数据,且所述当前要访问的数据在最近一个所述时间窗内的访问特征为顺序访问时,从硬盘中获取并存储所述预置数据,其中所述预置数据为所述目标逻辑单元中地址位于所述当前要访问的数据之后且与所述当前要访问的数据地址连续的预置范围内的数据。
请参阅图7,本发明的另一个实施例中缓存管理装置包括:
记录模块701,用于记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中所述目标逻辑单元中的逻辑线性空间被划分为等大小的数据块;
第一获取模块702,用于根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问特征;
第二获取模块703,用于根据所述目标逻辑单元中的至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时间段包括至少一个所述时间窗;
缓存704,用于根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述目标逻辑单元中的数据块进行缓存和管理。
优选的,本实施例中,所述缓存管理装置还包括:
元数据缓存705,用于缓存所述目标逻辑单元的所述部分被访问的数据块在所述时间窗内的访问信息,其中,所述元数据缓存705采用近期最少使用算法进行管理;
所述第二获取模块703具体用于根据所述元数据缓存中所有被访问的数据块在所述一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征。
上面对本发明中的缓存管理装置的各实施例进行了描述。为便于理解,下面以一个实际应用场景对本发明的缓存管理装置进行描述。
记录模块将目标逻辑单元的逻辑线性空间划分为等大小的数据块。其中该数据块的大小大于缓存中的数据块的大小。具体的,目标逻辑单元中每个数据块的大小为4MB,缓存中每个数据块的大小为1MB。而每个数据块中包括多个大小一致的页面,例如大小为4KB的页面,每个页面在该数据块内的地址都是唯一的。
目标逻辑单元中的每一个被访问的数据块每一次被访问的时长由一个个长度一致的时间窗组成。记录模块记录每一个被访问的数据块在每一个时间窗内的访问信息。
具体的,以一个被访问的数据块在一个时间窗内的访问信息为例。记录模块标识该被访问的数据块内所有被访问到的页面,计算该所有被访问到的页面的地址范围的大小的总和。如果其中一个页面被重复访问,那么该页面的数据长度也被重复累加到总和中。这样,记录模块可以统计出在该时间窗内该被访问的数据块的访问总数据量,也即等于每个被访问到的页面的大小与被访问的次数的乘积之和。记录模块还对该被访问的数据块在该时间窗内被访问的次数进行统计。
在记录模块获取到目标逻辑单元中每个被访问的数据块在每个时间窗内的访问信息之后,第一获取模块和第二获取模块对这些访问信息进行分析。
具体以在一个时间窗内对目标逻辑单元中被访问的的数据中的其中一个数据块的访问信息的分析为例。第一获取模块根据该数据块在该时间窗内被标识的页面,计算该数据块在该时间窗内被访问的地址总范围,也即对所有被访问的页面的地址范围大小进行相加,其中重复访问的页面的大小并不重复相加。第一获取模块确定在该时间窗内对该数据块每一次访问的地址,其中该该地址包括起始地址和长度,将该起始地址与该长度的和称为终止地址。这样,第一获取模块可以确定在该时间窗内对该数据块的所有访问中的非连续访问。
需注意的是,该非连续访问并不是指时间上的不连续,而是指地址上的不连续。第一获取模块计算该非连续访问的个数,还计算在该非连续访问之间的最大间距,也即该非连续访问中任意两个地址相邻的访问的地址间距最大的一个。
第一获取模块确定上述参数后,当一个数据块的非连续访问大于或者等于200个,并且非连续访问之间的最大间距小于8个页面大小时,确定该数据块在该时间窗内的访问特征为顺序访问;或者,当该数据块在该时间窗内的访问覆盖率大于或者等于75%,也即该数据块在该时间窗内被访问的范围占数据块的范围的比例大于或者等于75%时,确定该数据块在该时间窗内的访问特征为顺序访问。
当一个被访问的数据块在一个时间窗内满足一下所有条件时,第一获取模块确定该被访问的数据块在该时间窗内的访问特征为重复访问:1、该被访问的数据块在该时间窗内的访问覆盖率大于10%且小于75%,也即该数据块在该时间窗内被访问的范围占数据块的范围的比例大于10%且小于75%;2、该被访问的数据块在该时间窗内的访问总数据量与被访问的地址总范围的差记为访问重复数据量,该重复数据量与被访问的地址总范围的比值大于1。
当一个被访问的数据块在一个时间窗内既不满足顺序访问的特征也不满足重复访问的特征时,第一获取模块确认该被访问的数据块在该时间窗内的访问特征为随机访问。
第一获取模块获取到目标逻辑单元中被访问的数据块在时间窗内的访问特征后,第二获取模块再根据各访问特征获取目标逻辑单元在一个时间段内的全局访问特征,其中一个时间段包括三个时间窗。
首先,第二获取模块统计目标逻辑单元的至少部分被访问的数据块中,在该时间段内访问特征为顺序访问的数据块的数量,以及所述目标逻辑单元的至少部分被访问的数据块的数量。
第二获取模块计算所述目标逻辑单元的顺序度,其中所述顺序度等于所述至少部分被访问的数据块中,所述访问特征为顺序访问的数据块的数量与所述目标逻辑单元的至少部分被访问的数据块的数量的比值。当所述目标逻辑单元的顺序度达到65%时,第二获取模块确定所述目标逻辑单元在所述时间段内的全局访问特征为顺序访问。
进一步的,第二获取模块统计所述目标逻辑单元的至少部分被访问的数据块中,在所述时间段内访问特征为重复访问的数据块的数量。
第二获取模块计算目标逻辑单元的重复度,其中所述重复度等于所述至少部分被访问的数据块中,所述访问特征为重复访问的数据块的数量与所述目标逻辑单元的至少部分被访问的数据块的数量的比值。
另外,第二获取模块还计算目标逻辑单元的聚簇度,其中该聚簇度为所述目标逻辑单元的至少部分被访问的数据块在所述时间段内的访问次数均方差。
当目标逻辑单元的顺序度小于65%,目标逻辑单元的重复度大于或者等于30%,且所述聚簇度大于或者等于1000时,第二获取模块确定所述目标逻辑单元在所述时间段内的全局访问特征为重复访问。
当目标逻辑单元在一个时间段内既不满足顺序访问的特征条件也不满足重复访问的特征条件时,第二获取模块确认该目标逻辑单元在该时间段内的全局访问特征为随机访问。
在访问目标逻辑单元中的一个数据时,会先在缓存内查找该缓存内是否有缓存该数据,若缓存内未存储有,则去硬盘中获取该数据,还将该数据插入缓存中。称该数据为待缓存的数据块。该缓存包括三个管理链表,其中该三个管理链表的淘汰算法分别为LRU算法、LFU算法和MRU算法。
在对待缓存的数据块进行缓存之前,缓存获取该待缓存的数据块在最近的一个时间窗内的访问特征。由于该待缓存的数据块对应着目标逻辑单元中的两个不同的数据块,其中该两个不同的数据块分别在最近的一个时间窗内的访问特征不同。缓存将该待缓存的数据块分成两个待缓存的子数据块,其中两个待缓存的子数据块的访问特征分别为该两个数据块的两个访问特征。
对于该两个待缓存的子数据块中的任意一个子数据块,当所述待缓存的子数据块的访问特征为顺序访问时,缓存将所述待缓存的子数据块插入MRU算法链表中;当所述待缓存的子数据块的访问特征为重复访问时,缓存将所述待缓存的子数据块插入LFU算法链表中;缓存当所述待缓存的子数据块的访问特征为随机访问时,将所述待缓存的子数据块插入LRU算法链表中。
当缓存空间满时,或者当达到缓存淘汰水位时,缓存获取该目标逻辑单元在最近一个时间段内的全局访问特征。
当所述目标逻辑单元在最近一个时间段内的全局访问特征为顺序访问时,所述缓存调整各管理链表的淘汰顺序依次为LFU算法、LRU算法、MRU算法;
当所述目标逻辑单元在最近一个时间段内的全局访问特征为重复访问时,所述缓存调整各管理链表的淘汰顺序依次为MRU算法、LRU算法、LFU算法;
当所述目标逻辑单元在最近一个时间段内的全局访问特征为随机访问时,所述缓存调整各管理链表的淘汰顺序依次为MRU算法、LFU算法、LRU算法。
上面从单元化功能实体的角度对本发明实施例中的缓存管理装置进行了描述,下面从硬件处理的角度对本发明实施例中的缓存管理装置进行描述,本发明实施例中的缓存管理设备包括:
处理器,用于记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中所述目标逻辑单元中的逻辑线性空间被划分为等大小的数据块;
所述处理器还用于根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问特征;
所述处理器还用于根据所述目标逻辑单元中的至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时间段包括至少一个所述时间窗;
缓存,用于根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述目标逻辑单元中的数据块进行缓存和管理。
本实施例中,通过处理器记录目标逻辑单元中被访问的数据块在时间窗内的访问信息来获取该数据块在该时间窗内的访问特征,并根据所述目标逻辑单元的至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,这样,能够较准确地获取每个被访问的数据块的局部访问模式以及目标逻辑单元的全局访问模式,以便后续缓存能够根据目标逻辑单元中的各被访问的数据块的局部访问模式和目标逻辑单元的全局访问模式进行对应管理,提高缓存的淘汰效率,进而提高缓存的命中率。
下面以一个详细的实施例对本发明中的缓存管理设备进行描述。请参阅图8,本实施例以缓存管理设备为例对本发明进行具体说明。
应该理解的是,图示缓存管理设备800仅仅是对缓存管理装置的一个范例,并且缓存管理设备800可以具有比图中所示出的更过的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
如图8所示,该缓存管理设备800包括存储器801、处理器803、外设接口804、RF电路805、电源管理芯片808、输入/输出(I/O)子系统809、其他输入/控制设备810、外部端口811以及缓存814,这些部件通过一个或多个通信总线或信号线812来通信。
下面就本实施例提供的缓存管理设备800进行详细的描述。
存储器801:所述存储器801可以被处理器803、外设接口804等访问,所述存储器801可以包括高速随机存取存储器,还可以包括非易失性存储器,例如一个或多个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
外设接口804,所述外设接口可以将设备的输入和输出外设连接到处理器803和存储器801。
I/O子系统809:所述I/O子系统809可以将设备上的输入输出外设,例如触摸屏813(相当于上述实施例中的显示器)和其他输入/控制设备810,连接到外设接口804。I/O子系统809可以包括显示控制器8091和用于控制其他输入/控制设备810的一个或多个输入控制器8092。其中,一个或多个输入控制器8092从其他输入/控制设备810接收电信号或者向其他输入/控制设备810发送电信号,其他输入/控制设备810可以包括物理按钮(按压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击滚轮。值得说明的是,输入控制器8092可以与以下任一个连接:键盘、红外端口、USB接口以及诸如鼠标的指示设备。
触摸屏813:所述触摸屏813是移动终端与用户之间的输入接口和输出接口,将可视输出显示给用户,可视输出可以包括图形、文本、图标、视频等。
I/O子系统809中的显示控制器8091从触摸屏813接收电信号或者向触摸屏813发送电信号。触摸屏813检测触摸屏上的接触,显示控制器8091将检测到的接触转换为与显示在触摸屏813上的用户界面对象的交互,即实现人机交互,显示在触摸屏813上的用户界面对象可以是运行游戏的图标、联网到相应网络的图标等。值得说明的是,设备还可以包括光鼠,光鼠是不显示可视输出的触摸敏感表面,或者是由触摸屏形成的触摸敏感表面的延伸。
RF电路805,主要用于建立入侵检测系统与无线网络(即网络侧)的通信,实现入侵检测系统与无线网络的数据接收和发送。具体地,RF电路805接收并发送RF信号,RF信号也称为电磁信号,RF电路805将电信号转换为电磁信号或将电磁信号转换为电信号,并且通过该电磁信号与通信网络以及其他设备进行通信。RF电路805可以包括用于执行这些功能的已知电路,其包括但不限于天线系统、RF收发机、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、CODEC芯片组、用户标识模块(Subscriber IdentityModule,SIM)等等。
电源管理芯片808,用于为处理器803、I/O子系统及外设接口所连接的硬件进行供电及电源管理。实际运用中,该电源管理芯片808也可以和处理器803或者其他部件集成到一个模块中。
本实施例中,处理器803用于记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中所述目标逻辑单元中的逻辑线性空间被划分为等大小的数据块;
所述处理器803还用于根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问特征;
所述处理器803还用于根据所述目标逻辑单元中的至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时间段包括至少一个所述时间窗;
缓存814,用于根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述目标逻辑单元中的数据块进行缓存和管理。
优选的,所述处理器803具体用于根据所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问信息确定所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问特征属于顺序访问、重复访问和随机访问中的其中一种。
优选的,所述处理器803具体用于标识所述目标逻辑单元中所述被访问的数据块在所述时间窗内被访问的页面位图;
记录所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问总数据量;其中,所述访问总数据量为数据块在所述时间窗内每一次被访问的地址范围叠加得到的和;
记录所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问次数。
优选的,所述处理器803具体用于根据所述页面位图计算所述被访问的每一个数据块在所述时间窗内被访问的地址总范围R、非连续访问的个数C以及所述非连续访问之间的最大地址间距L;
在所述时间窗内,当C大于第一预置数值且L小于第二预置数值时,
或者,当R占所述数据块的地址范围的比例大于或者等于第三预置数值时,
确定所述被访问的数据块在所述时间窗内的访问特征为顺序访问。
优选的,所述处理器803还用于在所述时间窗内,当R占所述数据块的地址范围的比例小于第三预置数值时,
而且,所述访问总数据量与R的差与R的比值大于1时,
确定所述被访问的数据块在所述时间窗内的访问特征为重复访问。
优选的,所述处理器803具体用于在所述时间段结束时,根据所述目标逻辑单元的所述至少部分被访问的数据块在所述时间段中的所述时间窗内的访问特征确定所述目标逻辑单元在所述时间段内的全局访问特征属于顺序访问、重复访问和随机访问中的其中一种。
优选的,所述处理器803具体用于统计所述目标逻辑单元的所述至少部分被访问的数据块中,在所述时间段内访问特征为顺序访问的数据块的数量,以及所述目标逻辑单元的所述至少部分被访问的数据块的数量;
计算所述目标逻辑单元的顺序度,其中所述顺序度等于所述至少部分被访问的数据块中,所述访问特征为顺序访问的数据块的数量与所述目标逻辑单元的所述至少部分被访问的数据块的数量的比值;
当所述目标逻辑单元的顺序度大于或者等于第七预置数值时,确定所述目标逻辑单元在所述时间段内的全局访问特征为顺序访问。
优选的,所述处理器803具体用于统计所述目标逻辑单元的所述至少部分被访问的数据块中,在所述时间段内访问特征为重复访问的数据块的数量;
计算所述目标逻辑单元的重复度,其中所述重复度等于所述至少部分被访问的数据块中,所述访问特征为重复访问的数据块的数量与所述目标逻辑单元的所述至少部分被访问的数据块的数量的比值;
统计所述目标逻辑单元的所述至少部分被访问的数据块在所述时间段内的访问次数均方差;
当所述目标逻辑单元的顺序度小于所述第七预置数值,所述目标逻辑单元的重复度大于或者等于第八预置数值,且所述均方差大于或者等于第九预置数值时,确定所述目标逻辑单元在所述时间段内的全局访问特征为重复访问。
优选的,所述缓存814中包括至少两个管理链表,每个管理链表采用不同的淘汰算法;
所述缓存814具体用于获取所述目标逻辑单元中待缓存的数据块在最近的一个所述时间窗内的访问特征;
根据所述待缓存的数据块的访问特征将所述待缓存的数据块分成待缓存的子数据块;
根据所述待缓存的子数据块的访问特征与淘汰算法的对应关系,将所述待缓存的子数据块分别插入管理链表中。
优选的,所述待缓存的子数据块的访问特征属于顺序访问、重复访问和随机访问中的其中一种;
所述缓存814中包括三个管理链表,所述三个管理链表使用的淘汰算法分别为近期最少使用算法、最不经常使用页置换算法、最近最常使用算法;
所述缓存814具体用于当所述待缓存的子数据块的访问特征为顺序访问时,将所述待缓存的子数据块插入使用所述最近最常使用算法的链表中;
当所述待缓存的子数据块的访问特征为重复访问时,将所述待缓存的子数据块插入使用所述最不经常使用页置换算法的链表中;
当所述待缓存的子数据块的访问特征为随机访问时,将所述待缓存的子数据块插入使用近期最少使用算法的链表中。
优选的,所述缓存814具体用于当检测到所述缓存中满足淘汰数据的条件时,获取所述目标逻辑单元在最近的所述一个时间段内的全局访问特征;其中,所述缓存814中包括至少两个管理链表,每个管理链表采用不同的淘汰算法;
根据所述目标逻辑单元在最近的所述一个时间段内的全局访问特征调整所述缓存中内管理链表的淘汰顺序。
优选的,所述目标逻辑单元在最近的所述一个时间段内的全局访问特征属于顺序访问、重复访问和随机访问中的其中一种;
所述缓存814中包括三个管理链表,所述三个管理链表使用的淘汰算法分别为近期最少使用算法、最不经常使用页置换算法、最近最常使用算法;
所述缓存814具体用于当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为顺序访问时,调整所述管理链表的淘汰顺序依次为使用所述最不经常使用页置换算法的管理链表、使用所述近期最少使用算法的管理链表和使用所述最近最常使用算法的管理链表;
当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为重复访问时,调整所述管理链表的淘汰顺序依次为使用所述最近最常使用算法的管理链表、使用所述近期最少使用算法的管理链表和使用所述最不经常使用页置换算法的管理链表;
当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为随机访问时,调整所述管理链表的淘汰顺序依次为使用所述最近最常使用算法的管理链表、使用所述最不经常使用页置换算法的管理链表和使用所述近期最少使用算法的管理链表。
优选的,所述缓存管理设备还包括:
元数据缓存(图未示),用于将缓存所述目标逻辑单元的所述部分被访问的数据块在所述时间窗内的访问信息,其中,所述元数据缓存采用近期最少使用算法进行管理;
所述处理器803具体用于根据所述元数据缓存中所有被访问的数据块在所述一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征。
优选的,所述缓存具体用于:
获取所述目标逻辑单元中当前要访问的数据在最近一个所述时间窗内的访问特征;
在缓存内容中查找所述当前要访问的数据;
当所述缓存未命中所述当前要访问的数据,且所述当前要访问的数据在最近一个时间窗内的访问特征为顺序访问时,缓存从硬盘中获取并存储所述当前要访问的数据以及预置数据,其中所述预置数据为所述目标逻辑单元中地址位于所述当前要访问的数据之后且与所述当前要访问的数据的地址连续的预置范围内的数据。
优选的,所述缓存具体用于:
获取所述目标逻辑单元中当前要访问的数据在最近一个所述时间窗内的访问特征;
在缓存内容中查找所述当前要访问的数据;
当所述缓存命中所述当前要访问的数据但未存储有预置数据,且所述当前要访问的数据在最近一个所述时间窗内的访问特征为顺序访问时,从硬盘中获取并存储所述预置数据,其中所述预置数据为所述目标逻辑单元中地址位于所述当前要访问的数据之后且与所述当前要访问的数据地址连续的预置范围内的数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (27)
1.一种缓存管理方法,其特征在于,包括:
记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中所述目标逻辑单元中的逻辑线性空间被划分为等大小的数据块;
根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问特征;
根据所述目标逻辑单元中的至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时间段包括至少一个所述时间窗;
根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述目标逻辑单元中的数据块进行缓存和管理。
2.根据权利要求1所述的缓存管理方法,其特征在于,所述根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问特征具体包括:
根据所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问信息确定所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问特征属于顺序访问、重复访问和随机访问中的其中一种。
3.根据权利要求1所述的缓存管理方法,其特征在于,所述记录所述目标逻辑单元中被访问的数据块在时间窗内的访问信息具体包括:
标识所述目标逻辑单元中所述被访问的数据块在所述时间窗内被访问的页面位图;
记录所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问总数据量,其中所述访问总数据量为数据块在所述时间窗内每一次被访问的地址范围叠加得到的和;
记录所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问次数。
4.根据权利要求3所述的缓存管理方法,其特征在于,所述根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问特征包括:
根据所述页面位图计算所述被访问的每一个数据块在所述时间窗内被访问的地址总范围R、非连续访问的个数N以及所述非连续访问之间的最大地址间距L;
在所述时间窗内,当N大于或者等于第一预置数值且L小于第二预置数值时,或者,
当R占所述被访问的数据块的地址范围的比例大于或者等于第三预置数值时,
确定所述被访问的数据块在所述时间窗内的访问特征为顺序访问。
5.根据权利要求4所述的缓存管理方法,其特征在于,所述根据所述目标逻辑单元中被访问的数据块在所述时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问特征还包括:
在所述时间窗内,当R占所述数据块的地址范围的比例小于第三预置数值时,而且,
所述访问总数据量与R的差与R的比值大于1时,
确定所述被访问的数据块在所述时间窗内的访问特征为重复访问。
6.根据权利要求2所述的缓存管理方法,其特征在于,所述根据所述目标逻辑单元的至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征具体包括:
在所述时间段结束时,根据所述目标逻辑单元的所述至少部分被访问的数据块在所述时间段中的所述时间窗内的访问特征确定所述目标逻辑单元在所述时间段内的全局访问特征属于顺序访问、重复访问和随机访问中的其中一种。
7.根据权利要求6所述的缓存管理方法,其特征在于,所述根据所述目标逻辑单元的至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征具体包括:
统计所述目标逻辑单元的所述至少部分被访问的数据块中,在所述时间段内访问特征为顺序访问的数据块的数量,以及所述目标逻辑单元的所述至少部分被访问的数据块的数量;
计算所述目标逻辑单元的顺序度,其中所述顺序度等于所述至少部分被访问的数据块中,所述访问特征为顺序访问的数据块的数量与所述目标逻辑单元的所述至少部分被访问的数据块的数量的比值;
当所述目标逻辑单元的顺序度大于或者等于第七预置数值时,确定所述目标逻辑单元在所述时间段内的全局访问特征为顺序访问。
8.根据权利要求7所述的缓存管理方法,其特征在于,所述根据所述目标逻辑单元的至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征具体包括:
统计所述目标逻辑单元的所述至少部分被访问的数据块中,在所述时间段内访问特征为重复访问的数据块的数量;
计算所述目标逻辑单元的重复度,其中所述重复度等于所述至少部分被访问的数据块中,所述访问特征为重复访问的数据块的数量与所述目标逻辑单元的所述至少部分被访问的数据块的数量的比值;
统计所述目标逻辑单元的所述至少部分被访问的数据块在所述时间段内的访问次数均方差;
当所述目标逻辑单元的顺序度小于所述第七预置数值,所述目标逻辑单元的重复度大于或者等于第八预置数值,且所述均方差大于或者等于第九预置数值时,确定所述目标逻辑单元在所述时间段内的全局访问特征为重复访问。
9.根据权利要求1所述的缓存管理方法,其特征在于,所述根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述目标逻辑单元中的数据块进行缓存和管理具体包括:
获取所述目标逻辑单元中待缓存的数据块在最近的一个所述时间窗内的访问特征,其中,缓存中包括至少两个管理链表,每个管理链表采用不同的淘汰算法;
根据所述待缓存的数据块的访问特征将所述待缓存的数据块分成待缓存的子数据块;
根据所述待缓存的子数据块的访问特征与淘汰算法的对应关系,将所述待缓存的子数据块分别插入管理链表中。
10.根据权利要求9所述的缓存管理方法,其特征在于,所述待缓存的子数据块的访问特征属于顺序访问、重复访问和随机访问中的其中一种;
所述缓存中包括三个管理链表,所述三个管理链表使用的淘汰算法分别为近期最少使用算法、最不经常使用页置换算法、最近最常使用算法;
所述根据所述待缓存的子数据块的访问特征与淘汰算法的对应关系,将所述待缓存的子数据块分别插入管理链表中具体包括:
当所述待缓存的子数据块的访问特征为顺序访问时,则将所述待缓存的子数据块插入使用所述最近最常使用算法的链表中;
当所述待缓存的子数据块的访问特征为重复访问时,则将所述待缓存的子数据块插入使用所述最不经常使用页置换算法的链表中;
当所述待缓存的子数据块的访问特征为随机访问时,则将所述待缓存的子数据块插入使用近期最少使用算法的链表中。
11.根据权利要求1所述的缓存管理方法,其特征在于,所述根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述目标逻辑单元中的数据块进行缓存和管理具体包括:
当检测到缓存中满足淘汰数据的条件时,获取所述目标逻辑单元在最近的所述一个时间段内的全局访问特征,其中,所述缓存中包括至少两个管理链表,每个管理链表采用不同的淘汰算法;
根据所述目标逻辑单元在最近的所述一个时间段内的全局访问特征调整所述缓存中内管理链表的淘汰顺序。
12.根据权利要求11所述的缓存管理方法,其特征在于,所述目标逻辑单元在最近的所述一个时间段内的全局访问特征属于顺序访问、重复访问和随机访问中的其中一种;
所述缓存中包括三个管理链表,所述三个管理链表使用的淘汰算法分别为近期最少使用算法、最不经常使用页置换算法、最近最常使用算法;
所述根据所述目标逻辑单元在最近的所述一个时间段内的全局访问特征调整所述缓存内管理链表的淘汰顺序具体包括:
当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为顺序访问时,所述缓存调整所述管理链表的淘汰顺序依次为使用所述最不经常使用页置换算法的管理链表、使用所述近期最少使用算法的管理链表和使用所述最近最常使用算法的管理链表;
当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为重复访问时,所述缓存调整所述管理链表的淘汰顺序依次为使用所述最近最常使用算法的管理链表、使用所述近期最少使用算法的管理链表和使用所述最不经常使用页置换算法的管理链表;
当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为随机访问时,所述缓存调整所述管理链表的淘汰顺序依次为使用所述最近最常使用算法的管理链表、使用所述最不经常使用页置换算法的管理链表和使用所述近期最少使用算法的管理链表。
13.根据权利要求1所述的缓存管理方法,其特征在于,所述方法还包括:
将所述目标逻辑单元的所述部分被访问的数据块在所述时间窗内的访问信息缓存到元数据缓存中,所述元数据缓存采用近期最少使用算法进行管理;
所述根据所述目标逻辑单元中的至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征具体包括:
根据所述元数据缓存中所有被访问的数据块在所述一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征。
14.一种缓存管理装置,其特征在于,包括:
记录模块,用于记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中所述目标逻辑单元中的逻辑线性空间被划分为等大小的数据块;
第一获取模块,用于根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问特征;
第二获取模块,用于根据所述目标逻辑单元中的至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时间段包括至少一个所述时间窗;
缓存,用于根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述目标逻辑单元中的数据块进行缓存和管理。
15.根据权利要求14所述的缓存管理装置,其特征在于,所述第一获取模块具体用于根据所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问信息确定所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问特征属于顺序访问、重复访问和随机访问中的其中一种。
16.根据权利要求14所述的缓存管理装置,其特征在于,所述记录模块具体用于标识所述目标逻辑单元中所述被访问的数据块在所述时间窗内被访问的页面位图;记录所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问总数据量;记录所述目标逻辑单元中所述被访问的数据块在所述时间窗内的访问次数;其中,所述访问总数据量为数据块在所述时间窗内每一次被访问的地址范围叠加得到的和。
17.根据权利要求16所述的缓存管理装置,其特征在于,所述第一获取模块具体用于根据所述页面位图计算所述被访问的每一个数据块在所述时间窗内被访问的地址总范围R、非连续访问的个数C以及所述非连续访问之间的最大地址间距L;在所述时间窗内,当C大于第一预置数值且L小于第二预置数值时,或者,当R占所述数据块的地址范围的比例大于或者等于第三预置数值时,确定所述被访问的数据块在所述时间窗内的访问特征为顺序访问。
18.根据权利要求17所述的缓存管理装置,其特征在于,所述第一获取模块还用于在所述时间窗内,当R占所述数据块的地址范围的比例小于第三预置数值时,而且,所述访问总数据量与R的差与R的比值大于1时,确定所述被访问的数据块在所述时间窗内的访问特征为重复访问。
19.根据权利要求15所述的缓存管理装置,其特征在于,所述第二获取模块具体用于在所述时间段结束时,根据所述目标逻辑单元的所述至少部分被访问的数据块在所述时间段中的所述时间窗内的访问特征确定所述目标逻辑单元在所述时间段内的全局访问特征属于顺序访问、重复访问和随机访问中的其中一种。
20.根据权利要求19所述的缓存管理装置,其特征在于,所述第二获取模块具体用于统计所述目标逻辑单元的所述至少部分被访问的数据块中,在所述时间段内访问特征为顺序访问的数据块的数量,以及所述目标逻辑单元的所述至少部分被访问的数据块的数量;计算所述目标逻辑单元的顺序度,其中所述顺序度等于所述至少部分被访问的数据块中,所述访问特征为顺序访问的数据块的数量与所述目标逻辑单元的所述至少部分被访问的数据块的数量的比值;当所述目标逻辑单元的顺序度大于或者等于第七预置数值时,确定所述目标逻辑单元在所述时间段内的全局访问特征为顺序访问。
21.根据权利要求20所述的缓存管理装置,其特征在于,所述第二获取模块具体用于统计所述目标逻辑单元的所述至少部分被访问的数据块中,在所述时间段内访问特征为重复访问的数据块的数量;计算所述目标逻辑单元的重复度,其中所述重复度等于所述至少部分被访问的数据块中,所述访问特征为重复访问的数据块的数量与所述目标逻辑单元的所述至少部分被访问的数据块的数量的比值;统计所述目标逻辑单元的所述至少部分被访问的数据块在所述时间段内的访问次数均方差;当所述目标逻辑单元的顺序度小于所述第七预置数值,所述目标逻辑单元的重复度大于或者等于第八预置数值,且所述均方差大于或者等于第九预置数值时,确定所述目标逻辑单元在所述时间段内的全局访问特征为重复访问。
22.根据权利要求14所述的缓存管理装置,其特征在于,所述缓存中包括至少两个管理链表,每个管理链表采用不同的淘汰算法;
所述缓存具体用于获取所述目标逻辑单元中待缓存的数据块在最近的一个所述时间窗内的访问特征;根据所述待缓存的数据块的访问特征将所述待缓存的数据块分成待缓存的子数据块;根据所述待缓存的子数据块的访问特征与淘汰算法的对应关系,将所述待缓存的子数据块分别插入管理链表中。
23.根据权利要求22所述的缓存管理装置,其特征在于,所述待缓存的子数据块的访问特征属于顺序访问、重复访问和随机访问中的其中一种;
所述缓存中包括三个管理链表,所述三个管理链表使用的淘汰算法分别为近期最少使用算法、最不经常使用页置换算法、最近最常使用算法;
所述缓存具体用于当所述待缓存的子数据块的访问特征为顺序访问时,将所述待缓存的子数据块插入使用所述最近最常使用算法的链表中;当所述待缓存的子数据块的访问特征为重复访问时,将所述待缓存的子数据块插入使用所述最不经常使用页置换算法的链表中;当所述待缓存的子数据块的访问特征为随机访问时,将所述待缓存的子数据块插入使用近期最少使用算法的链表中。
24.根据权利要求14所述的缓存管理装置,其特征在于,所述缓存具体用于当检测到所述缓存中满足淘汰数据的条件时,获取所述目标逻辑单元在最近的所述一个时间段内的全局访问特征;根据所述目标逻辑单元在最近的所述一个时间段内的全局访问特征调整所述缓存中内管理链表的淘汰顺序;其中,所述缓存中包括至少两个管理链表,每个管理链表采用不同的淘汰算法。
25.根据权利要求24所述的缓存管理装置,其特征在于,所述目标逻辑单元在最近的所述一个时间段内的全局访问特征属于顺序访问、重复访问和随机访问中的其中一种;
所述缓存中包括三个管理链表,所述三个管理链表使用的淘汰算法分别为近期最少使用算法、最不经常使用页置换算法、最近最常使用算法;
所述缓存具体用于当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为顺序访问时,调整所述管理链表的淘汰顺序依次为使用所述最不经常使用页置换算法的管理链表、使用所述近期最少使用算法的管理链表和使用所述最近最常使用算法的管理链表;
当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为重复访问时,调整所述管理链表的淘汰顺序依次为使用所述最近最常使用算法的管理链表、使用所述近期最少使用算法的管理链表和使用所述最不经常使用页置换算法的管理链表;
当所述目标逻辑单元在最近的所述一个时间段内的全局访问特征为随机访问时,调整所述管理链表的淘汰顺序依次为使用所述最近最常使用算法的管理链表、使用所述最不经常使用页置换算法的管理链表和使用所述近期最少使用算法的管理链表。
26.根据权利要求14所述的缓存管理装置,其特征在于,所述缓存管理装置还包括:
元数据缓存,用于缓存所述目标逻辑单元的所述部分被访问的数据块在所述时间窗内的访问信息,其中,所述元数据缓存采用近期最少使用算法进行管理;
所述第二获取模块具体用于根据所述元数据缓存中所有被访问的数据块在所述一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征。
27.一种缓存管理设备,其特征在于,包括:
处理器,用于记录目标逻辑单元中被访问的数据块在时间窗内的访问信息,其中所述目标逻辑单元中的逻辑线性空间被划分为等大小的数据块;
所述处理器还用于根据所述目标逻辑单元中被访问的数据块在时间窗内的访问信息获取所述被访问的数据块在所述时间窗内的访问特征;
所述处理器还用于根据所述目标逻辑单元中的至少部分被访问的数据块在一个时间段内的访问特征获取所述目标逻辑单元在所述时间段内的全局访问特征,其中所述时间段包括至少一个所述时间窗;
缓存,用于根据所述被访问的数据块的访问特征和所述目标逻辑单元的全局访问特征对所述目标逻辑单元中的数据块进行缓存和管理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410484496.4A CN104239233B (zh) | 2014-09-19 | 2014-09-19 | 缓存管理方法、缓存管理装置和缓存管理设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410484496.4A CN104239233B (zh) | 2014-09-19 | 2014-09-19 | 缓存管理方法、缓存管理装置和缓存管理设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104239233A true CN104239233A (zh) | 2014-12-24 |
CN104239233B CN104239233B (zh) | 2017-11-24 |
Family
ID=52227347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410484496.4A Active CN104239233B (zh) | 2014-09-19 | 2014-09-19 | 缓存管理方法、缓存管理装置和缓存管理设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104239233B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106657196A (zh) * | 2015-11-02 | 2017-05-10 | 华为技术有限公司 | 一种缓存内容淘汰方法及缓存装置 |
CN106802769A (zh) * | 2015-11-25 | 2017-06-06 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
WO2017091984A1 (zh) * | 2015-12-01 | 2017-06-08 | 华为技术有限公司 | 数据缓存方法、存储控制装置、及存储设备 |
CN108646981A (zh) * | 2018-04-28 | 2018-10-12 | 深圳市茁壮网络股份有限公司 | 一种数据缓存节点管理方法、数据缓存方法和缓存管理节点 |
CN109032970A (zh) * | 2018-06-16 | 2018-12-18 | 温州职业技术学院 | 一种基于lru算法的动态缓存方法 |
CN109086141A (zh) * | 2018-09-19 | 2018-12-25 | 北京京东尚科信息技术有限公司 | 内存管理方法和装置以及计算机可读存储介质 |
CN110865947A (zh) * | 2019-11-14 | 2020-03-06 | 中国人民解放军国防科技大学 | 一种面向预取数据的高速缓存管理方法 |
CN111208944A (zh) * | 2019-12-30 | 2020-05-29 | 深圳佰维存储科技股份有限公司 | 数据预判方法、装置和可读存储介质 |
CN111260605A (zh) * | 2019-04-11 | 2020-06-09 | 桑尼环保(江苏)有限公司 | 智能化动作执行方法 |
CN111782136A (zh) * | 2020-05-20 | 2020-10-16 | 重庆大学 | 面向多应用程序的自适应闪存固态盘通道分配方法及装置 |
CN112559388A (zh) * | 2020-12-14 | 2021-03-26 | 杭州宏杉科技股份有限公司 | 数据缓存方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156738A (zh) * | 2011-04-13 | 2011-08-17 | 成都市华为赛门铁克科技有限公司 | 数据块处理方法、数据块存储设备及系统 |
CN102354301A (zh) * | 2011-09-23 | 2012-02-15 | 浙江大学 | 缓存分区方法 |
US20140067988A1 (en) * | 2012-09-04 | 2014-03-06 | International Business Machines Corporation | On-Demand Caching in a WAN Separated Distributed File System or Clustered File System Cache |
CN103778071A (zh) * | 2014-01-20 | 2014-05-07 | 华为技术有限公司 | 缓存的空间分配方法及装置 |
-
2014
- 2014-09-19 CN CN201410484496.4A patent/CN104239233B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156738A (zh) * | 2011-04-13 | 2011-08-17 | 成都市华为赛门铁克科技有限公司 | 数据块处理方法、数据块存储设备及系统 |
CN102354301A (zh) * | 2011-09-23 | 2012-02-15 | 浙江大学 | 缓存分区方法 |
US20140067988A1 (en) * | 2012-09-04 | 2014-03-06 | International Business Machines Corporation | On-Demand Caching in a WAN Separated Distributed File System or Clustered File System Cache |
CN103778071A (zh) * | 2014-01-20 | 2014-05-07 | 华为技术有限公司 | 缓存的空间分配方法及装置 |
Non-Patent Citations (1)
Title |
---|
王移芝,罗四维: "《大学计算机基础教程》", 15 February 2010 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106657196B (zh) * | 2015-11-02 | 2020-07-24 | 华为技术有限公司 | 一种缓存内容淘汰方法及缓存装置 |
CN106657196A (zh) * | 2015-11-02 | 2017-05-10 | 华为技术有限公司 | 一种缓存内容淘汰方法及缓存装置 |
CN106802769A (zh) * | 2015-11-25 | 2017-06-06 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
WO2017091984A1 (zh) * | 2015-12-01 | 2017-06-08 | 华为技术有限公司 | 数据缓存方法、存储控制装置、及存储设备 |
CN107430551A (zh) * | 2015-12-01 | 2017-12-01 | 华为技术有限公司 | 数据缓存方法、存储控制装置、及存储设备 |
CN108646981A (zh) * | 2018-04-28 | 2018-10-12 | 深圳市茁壮网络股份有限公司 | 一种数据缓存节点管理方法、数据缓存方法和缓存管理节点 |
CN108646981B (zh) * | 2018-04-28 | 2021-09-03 | 深圳市茁壮网络股份有限公司 | 一种数据缓存节点管理方法、数据缓存方法和缓存管理节点 |
CN109032970A (zh) * | 2018-06-16 | 2018-12-18 | 温州职业技术学院 | 一种基于lru算法的动态缓存方法 |
CN109086141A (zh) * | 2018-09-19 | 2018-12-25 | 北京京东尚科信息技术有限公司 | 内存管理方法和装置以及计算机可读存储介质 |
CN109086141B (zh) * | 2018-09-19 | 2021-01-26 | 北京京东尚科信息技术有限公司 | 内存管理方法和装置以及计算机可读存储介质 |
CN111260605B (zh) * | 2019-04-11 | 2020-11-10 | 江苏盛凡信息服务有限公司 | 智能化动作执行方法 |
CN111260605A (zh) * | 2019-04-11 | 2020-06-09 | 桑尼环保(江苏)有限公司 | 智能化动作执行方法 |
CN110865947A (zh) * | 2019-11-14 | 2020-03-06 | 中国人民解放军国防科技大学 | 一种面向预取数据的高速缓存管理方法 |
CN111208944A (zh) * | 2019-12-30 | 2020-05-29 | 深圳佰维存储科技股份有限公司 | 数据预判方法、装置和可读存储介质 |
CN111208944B (zh) * | 2019-12-30 | 2023-06-27 | 深圳佰维存储科技股份有限公司 | 数据预判方法、装置和可读存储介质 |
CN111782136A (zh) * | 2020-05-20 | 2020-10-16 | 重庆大学 | 面向多应用程序的自适应闪存固态盘通道分配方法及装置 |
CN111782136B (zh) * | 2020-05-20 | 2021-07-30 | 重庆大学 | 面向多应用程序的自适应闪存固态盘通道分配方法及装置 |
CN112559388A (zh) * | 2020-12-14 | 2021-03-26 | 杭州宏杉科技股份有限公司 | 数据缓存方法及装置 |
CN112559388B (zh) * | 2020-12-14 | 2022-07-12 | 杭州宏杉科技股份有限公司 | 数据缓存方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104239233B (zh) | 2017-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104239233A (zh) | 缓存管理方法、缓存管理装置和缓存管理设备 | |
CN109597915B (zh) | 访问请求处理方法和装置 | |
CN109299144B (zh) | 一种数据处理方法、装置、系统及应用服务器 | |
CN108228341B (zh) | 内存回收方法及装置、终端设备及计算机可读存储介质 | |
CN108228449B (zh) | 终端设备控制方法及装置、终端设备及计算机可读存储介质 | |
CN104391954A (zh) | 数据库日志的处理方法及装置 | |
CN106888381A (zh) | 一种数据资源存储方法及装置 | |
CN111061837A (zh) | 话题识别方法、装置、设备及介质 | |
CN106021128A (zh) | 一种基于步幅和数据相关性的数据预取器及其预取方法 | |
CN116010300B (zh) | 一种gpu缓存方法及装置、电子设备和存储介质 | |
CN104077241B (zh) | 缓存淘汰算法切换处理方法及装置 | |
CN117235088B (zh) | 一种存储系统的缓存更新方法、装置、设备、介质及平台 | |
EP4261712A1 (en) | Data elimination method and apparatus, cache node, and cache system | |
CN112199304A (zh) | 数据预取方法及装置 | |
CN106899558B (zh) | 访问请求的处理方法、装置和存储介质 | |
CN108228340B (zh) | 终端控制方法及装置、终端设备及计算机可读存储介质 | |
CN111061433B (zh) | 冷热数据处理方法及装置 | |
CN105045890A (zh) | 确定目标新闻源中的热点新闻的方法与设备 | |
CN117234434A (zh) | 存储设备的操作控制方法及装置 | |
CN112966756A (zh) | 一种可视化的准入规则的生成方法、装置、机器可读介质及设备 | |
CN103049395B (zh) | 缓存存储设备数据的方法及其系统 | |
CN103217897B (zh) | 用于触屏智能移动终端的刷新率优化方法及系统 | |
CN113435601A (zh) | 数据预取方法、装置以及存储设备 | |
CN105183375A (zh) | 一种热点数据的服务质量的控制方法和装置 | |
CN117631955A (zh) | 数据缩减方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |