CN104077242A - 一种缓存管理方法和装置 - Google Patents
一种缓存管理方法和装置 Download PDFInfo
- Publication number
- CN104077242A CN104077242A CN201310097248.XA CN201310097248A CN104077242A CN 104077242 A CN104077242 A CN 104077242A CN 201310097248 A CN201310097248 A CN 201310097248A CN 104077242 A CN104077242 A CN 104077242A
- Authority
- CN
- China
- Prior art keywords
- page
- chained list
- buffer memory
- afterbody
- replacement candidate
- 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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例公开了一种缓存管理方法和装置,通过上述该技术方案,数据即将被替换时,若在缓存期间有访问(即访问次数大于0),则将其重新加到缓存中,不同的访问次数加到不同的位置,较多的访问次数添加到更不易被替换的位置,给予数据访问的频率以更多的考虑,使得访问更多的数据更不易被替换。而且,针对相同的总访问量,长期均匀访问可以相对于短期集中访问更加持久的停留在缓存中,使得更适合缓存的访问模式的数据留在缓存中。进一步,被调整后的页中存储的数据重新回到缓存时,重置访问次数,使得一定时间内的访问次数只产生一次收益,防止短时间大量访问使得数据积累访问量导致滞留缓存。
Description
技术领域
本发明涉及计算机领域,具体涉及一种缓存管理方法和装置。
背景技术
在计算机领域中,缓存(Caching)是一个基础研究。缓存主要是通过不同等级的存储介质存储数据,例如:将一个存储速度相对高速但存储容量较小的缓存介质,放在一个存储速度相对较慢但是存储容量较大的存储介质之前,由该存储容量较小的缓存介质对经常使用的数据进行存储,使得设备对用户需求可以有快速反应。
缓存算法通过管理缓存中的内容,使得更多的请求可以在性能更好的缓存中得到服务,避免从更底层的相对慢速的存储中取回数据,从而提高整个系统的性能。缓存被广泛使用在数据库,虚拟内容管理,存储系统等。
现有技术中,关于缓存管理的方法有多种。一种典型的管理方法是基于时效性(Recency)的缓存管理方法,时效性好可以理解为一个页在访问后的短时间会再次访问。基于时效性的缓存的管理方法主要是最近最少使用(LRU,Least-Recently-Used)。LRU的主要特点包括:缓存的组织形式为一条链表,如图1所示,该链表分为最近最常使用端(MRU,Most-Recently-Used)和最近最少使用(LRU)端,被请求的页(即新加入的页面,或者命中缓存中的页面)移至缓存的MRU段,链表中原有的页被顺序的向右移动一个单位(本文中移动的单位都是以页(Page)为单位),则链表中原有LRU端的页则可能被移除链表。基于时效性的缓存的管理方法的确定是没有关注页的频率信息,例如:访问1次的页与访问1000次的页在缓存中不能区别对待;而且,基于时效性的缓存的管理方法(如LRU)容易受扫描式访问等一次访问数据的影响,造成缓存污染,例如:如果有大量一次性访问的数据流,则在原先在缓存中链表中的页都会被大量一次性访问的数据替换,该替换将缓存中利用价值高的页也被替换掉,造成了缓存污染。
现有技术中,另一种典型的管理方法是基于频率的缓存管理方法,例如:最少频率访问(LFU,Least-Frequently-Used),其中,缓存的组织形式为一条 链表,如图2所示,该链表中的页面是按照访问次数排序的,该链表头部为最多频率使用端(MFU,Most-Frequently-Used),链表尾部为最少频率使用(LFU)端。若访问的页面在缓存中命中,则增加该页面的访问次数,并重新排序。若访问的页面不在缓存中,则替换LFU端的页面,并将当前访问的页面接入到缓存中。则链表中MFU端的页由于较多的访问次数,则可能很久都不能移除链表。因此,该技术的缺陷是:基于频率的缓存替换算法记录每个页的访问次数,当该页不再被访问时,由于之前积累了较多的访问次数,使得一个不再有价值的页需要长时间才能从缓存中替换出去,即历史效应导致陈旧数据滞留缓存。同时,LFU由于需要按访问次数进行排序,时间复杂度较高。
现有技术中还有基于频率和时效性的缓存管理方法,例如:动态替换缓存(ARC,Adaptive-Replacement-Cache)方法。但,这类基于频率和时效性的缓存管理方法缺点在于仅区分访问一次与访问两次及更多的数据,使得缓存算法无法通过频率信息做出更准确的判断,如访问2次的数据可以将访问过2000次的数据替换出缓存。
发明内容
本发明实施例提供了一种缓存管理方法和装置,至少能有效解决现有技术中未考虑频率因素导致数据被轻易替换,易造成缓存污染的问题。
本发明实施例第一方面提供一种缓存管理方法,在缓存中至少包括实体缓存,所述实体缓存通过链表L1管理维护,所述链表L1至少被划分为多于一段,
所述方法包括:
获取链表L1尾部的页为替换候选页;
判断所述替换候选页的访问计数是否大于X次;
如果不大于X次,将所述替换候选页从所述链表L1中删除;
如果大于X次,根据所述链表L1中各段分段信息,将所述候选页添加到对应的分段内,并将所述替换候选页的访问计数重置为Y次;重复执行所述获取链表L1尾部的页为替换候选页的操作,直到有替换候选页从所述链表L1中删除;
其中,X,Y分别为整数;所述链表L1中各段分段信息至少包括:被添加的所述替换候选页的访问次数范围,其中,从链表L1尾部的段到链表L1头部的段中,每段要求被添加的所述替换候选页的访问次数依次增加。
在第一种可能的实现方式中,根据第一方面,所述获取链表L1尾部的页为替换候选页之前,所述方法还包括:
获取用户选择的请求页;
判断所述请求页是否命中所述链表L1中的页;
若所述请求页未命中所述链表L1中的页,执行如权利要求1所述方法,利用删除的替换候选页而获得的存储空间,将所述请求页添加到所述链表L1的头部或者尾部;
并添加所述请求页的访问计数。
在第二种可能的实现方式中,结合第一方面第一种可能的实现方式,所述缓存中还包括虚拟缓存,所述虚拟缓存通过链表L2管理维护;
所述利用删除的替换候选页而获得的存储空间,将所述请求页添加到所述链表L1的头部或者尾部,具体包括:
判断所述请求页是否命中链表L2中的页;
若所述请求页命中链表L2中的页,利用删除的替换候选页而获得的存储空间,将命中的所述链表L2中的页添加到所述链表L1的头部;
所述将所述替换候选页从所述链表L1中删除之后,所述方法还包括:将所述替换候选页的元数据添加到链表L2的头部。
在第三种可能的实现方式中,结合第一方面第二种可能的实现方式,,所述方法还包括:
若所述请求页未命中链表L2中的页,利用删除的替换候选页而获得的存储空间,将所述请求页添加到所述链表L1的尾部;
所述将所述替换候选页从所述链表L1中删除之后,所述方法还包括:将所述替换候选页的元数据添加到链表L2的头部,删除所述链表L2尾部的页,用于保持链表L2长度固定。
在第四种可能的实现方式中,结合第一方面,若所述请求页命中所述链表L1中的页,所述方法还包括:
将所述命中的链表L1中的页的访问计数增加1;将所述命中的链表L1中的页移至链表L1的头部。
第二方面,提供了一种缓存管理方法,在缓存中至少包括实体缓存,所述实体缓存通过多于一条链表维护;
所述方法包括:
获取排在最低位链表的尾部的页为替换候选页;
判断所述替换候选页的访问计数是否大于X次;
如果不大于X次,将所述替换候选页从所述排在最低位链表中删除;
如果大于X次,根据各条链表中预置链表信息,将所述候选页添加到对应的链表头部,并将所述替换候选页的访问计数重置为Y次;重复执行所述获取排在最低位链表的尾部的页为替换候选页的操作,直到将有替换候选页从所述排在最低位链表的尾部删除;
其中,X,Y分别为整数;所述预置链表信息至少包括:被添加的所述替换候选页的访问次数范围,其中,从排在最低位链表到排在最高位链表依次排列的链表中,每条链路要求被添加的所述替换候选页的访问次数依次增加。
在第一种可能的实现方式的实现方式中,根据第二方面,所述获取排在最低位链表的尾部的页为替换候选页之前,所述方法还包括:
获取用户选择的请求页;
判断所述请求页是否命中所述实体缓存中的页;
若所述请求页未命中所述实体缓存中的页,执行如权利要求7所述的方法,利用删除的替换候选页而获得的存储空间,将所述请求页添加到排在最高位链表的头部,或者添加到排在最低位链表的尾部;
并添加所述请求页的访问计数。
在第二种可能的实现方式中,根据第二方面,所述缓存中还包括虚拟缓存,所述虚拟缓存通过链表L2管理维护;
所述利用删除的替换候选页而获得的存储空间,将所述请求页添加到排在最高位的链表的头部,或者添加到排在最低位的链表的尾部,具体包括:
判断所述请求页是否命中链表L2中的页;
若所述请求页命中链表L2中的页,利用删除的替换候选页而获得的存储 空间,将命中的所述链表L2中的页添加到排在最高位的链表的头部;
所述将所述替换候选页从排在最低位链表中删除之后,所述方法还包括:将所述替换候选页的元数据添加到链表L2的头部。
在第三种可能的实现方式中,根据第二方面第二种可能的实现方式,所述方法还包括:
若所述请求页未命中链表L2中的页,利用删除的替换候选页而获得的存储空间,将所述请求页添加到排在最低位的链表的尾部;
所述将所述替换候选页从排在最低位链表中删除之后,所述方法包括:将所述替换候选页的元数据添加到链表L2的头部,删除所述链表L2尾部的页,用于保持链表L2长度固定。
在第死种可能的实现方式中,根据第二方面第一种可能的实现方式,若所述请求页命中所述实体缓存中的页,所述方法还包括:
将所述命中的所述实体缓存中的页的访问计数增加1;将所述命中的所述实体缓存中的页移至排在最高位的链表的头部。
第三方面,提供了一种缓存管理装置,在缓存中至少包括实体缓存,所述实体缓存通过链表L1管理维护,所述链表L1至少被划分为多于一段,
所述装置包括:第一获取单元,第一判断单元,第一删除单元,第一添加单元,
所述第一获取单元,用于获取链表L1尾部的页为替换候选页;
所述第一判断单元,用于判断所述替换候选页的访问计数是否大于X次;
所述第一删除单元,用于如果不大于X次时,将所述替换候选页从所述链表L1中删除;
所述第一添加单元,用于如果大于X次时,根据所述链表L1中各段分段信息,将所述候选页添加到对应的分段内,并将所述替换候选页的访问计数重置为Y次;重复执行所述获取链表L1尾部的页为替换候选页的操作,直到有替换候选页从所述链表L1中删除;
其中,X,Y分别为整数;所述链表L1中各段分段信息至少包括:被添加的所述替换候选页的访问次数范围,其中,从链表L1尾部的段到链表L1头部的段中,每段要求被添加的所述替换候选页的访问次数依次增加。
在第一种可能的实现方式中,根据第三方面,所述装置还包括:第二获取单元,第二判断单元,第二添加单元,第一计数单元,
所述第二获取单元,用于获取用户选择的请求页;
所述第二判断单元,用于判断所述请求页是否命中所述链表L1中的页;
所述第二添加单元,用于若所述请求页未命中所述链表L1中的页时,利用所述第一删除单元中删除的替换候选页而获得的存储空间,将所述请求页添加到所述链表L1的头部或者尾部;
所述第一计数单元,用于并添加所述请求页的访问计数。
在第二种可能的实现方式中,根据第三方面第一种可能的实现方式,所述缓存中还包括虚拟缓存,所述虚拟缓存通过链表L2管理维护;
所述第二添加单元具体包括:第三判断单元和添加头部单元;
所述第三判断单元,用于判断所述请求页是否命中链表L2中的页;
所述添加头部单元,用于若所述请求页命中链表L2中的页时,利用删除的替换候选页而获得的存储空间,将命中的所述链表L2中的页添加到所述链表L1的头部;
所述第二添加单元还包括:虚拟添加单元,用于将所述替换候选页的元数据添加到链表L2的头部。
在第三种可能的实现方式中,根据第三方面第二种可能的实现方式,所述第二添加单元还包括:添加尾部单元,用于若所述请求页未命中链表L2中的页时,利用删除的替换候选页而获得的存储空间,将所述请求页添加到所述链表L1的尾部;
所述第二添加单元还包括:虚拟处理单元,用于将所述替换候选页的元数据添加到链表L2的头部,删除所述链表L2尾部的页,用于保持链表L2长度固定。
在第四种可能的实现方式中,根据第三方面第一种可能的实现方式,所述装置还包括:
实体处理单元,用于若所述请求页命中所述链表L1中的页,将所述命中的链表L1中的页的访问计数增加1;将所述命中的链表L1中的页移至链表L1的头部。
第四方面,提供了一种缓存管理装置,在缓存中至少包括实体缓存,
所述实体缓存通过多于一条链表维护,
所述装置包括:第三获取单元,第四判断单元,第三删除单元,第三添加单元;
所述第三获取单元,用于获取排在最低位链表的尾部的页为替换候选页;
所述第四判断单元,用于判断所述替换候选页的访问计数是否大于X次;
所述第三删除单元,用于如果不大于X次时,将所述替换候选页从所述排在最低位链表中删除;
所述第三添加单元,用于如果大于X次时,根据各条链表中预置链表信息,将所述候选页添加到对应的链表头部,并将所述替换候选页的访问计数重置为Y次;重复执行所述排在最低位链表的尾部的页为替换候选页的操作,直到将有替换候选页从所述排在最低位链表的尾部删除;
其中,X,Y分别为整数;所述预置链表信息至少包括:被添加的所述替换候选页的访问次数范围,其中,从排在最低位链表到排在最高位链表依次排列的链表中,每条链路要求被添加的所述替换候选页的访问次数依次增加。
在第一种可能的实现方式中,根据第四方面,所述装置还包括:第四获取单元,第五判断单元,第四添加单元,第三计数单元,
所述第四获取单元,用于获取用户选择的请求页;
所述第五判断单元,用于判断所述请求页是否命中所述实体缓存中的页;
所述第四添加单元,用于若所述请求页未命中所述实体缓存中的页时,利用删除的替换候选页而获得的存储空间,将所述请求页添加到排在最高位链表的头部,或者添加到排在最低位链表的尾部;
所述第三计数单元,用于添加所述请求页的访问计数。
在第二种可能的实现方式中,根据第四方面第一可能的实现方式,所述缓存中还包括虚拟缓存,所述虚拟缓存通过链表L2管理维护;
所述第四添加单元,具体包括:第六判断单元,添加头部单元,
所述第六判断单元,用于判断所述请求页是否命中链表L2中的页;
所述添加头部单元,用于若所述请求页命中链表L2中的页时,利用删除的替换候选页而获得的存储空间,将命中的所述链表L2中的页添加到排在最 高位的链表的头部;
所述第四添加单元还包括:虚拟添加单元,用于将所述替换候选页的元数据添加到链表L2的头部。
在第三种可能的实现方式中,根据第四方面第二种可能的实现方式,所述第四添加单元还包括:添加尾部单元,用于若所述请求页未命中链表L2中的页时,利用删除的替换候选页而获得的存储空间,将所述请求页添加到排在最低位的链表的尾部;
所述第四添加单元还包括:虚拟处理单元,用于将所述替换候选页的元数据添加到链表L2的头部,删除所述链表L2尾部的页,用于保持链表L2长度固定。
在第四种可能的实现方式中,根据第四方面第一种可能的实现方式,所述装置还包括:实体处理单元,若所述请求页命中所述实体缓存中的页,将所述命中的所述实体缓存中的页的访问计数增加1;将所述命中的所述实体缓存中的页移至排在最高位的链表的头部。
从以上技术方案可以看出,本发明实施例由于数据即将被替换时,若在缓存期间有访问(即访问次数大于0),则将其重新加到缓存中,不同的访问次数加到不同的位置,较多的访问次数添加到更不易被替换的位置,给予数据访问的频率以更多的考虑,使得访问更多的数据更不易被替换。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中一种缓存示意图;
图2是现有技术中另一种缓存示意图;
图3是本发明实施例提供的一种缓存示意图;
图4是本发明实施例一提供的一种缓存管理方法流程示意简图;
图5是本发明实施例二提供的一种缓存管理方法流程示意简图;
图6是本发明实施例提供的另一种缓存示意图;
图7是本发明实施例三提供的一种缓存管理方法流程示意简图;
图8是本发明实施例四提供的一种缓存管理方法流程示意简图;
图9是本发明实施例五提供的一种缓存管理装置示意简图;
图10是本发明实施例六提供的一种缓存管理装置示意简图;
图11是本发明实施例七提供的一种存储设备示意简图;
图12是本发明实施例八提供的一种存储设备示意简图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例提供了一种缓存管理方法,该缓存中划分为实体缓存(Solid Cache)和虚拟缓存(Phantom Cache)两部分,如图3所示缓存示意图,实体缓存以链表L1维护,虚拟缓存以L2维护。在实体缓存中存储页的元数据和数据,在虚拟缓存中仅存储元数据。需要理解的是:因为在虚拟缓存中仅存储的是元数据,元数据只保存页的访问信息,因此,请求页若命中链表L2,并非是真的缓存命中。
在本发明实施例中对实体缓存链表L1可以划分为多于一个的段,优选的,将链表L1划分为4段,每段链表中存储的页的数量可以是不同(为了便于说明,后续称为“每段的长度”,即每段的长度可以不同)。当链表L1被划分为4段时,L1中可以包含5个指针,当链表L1划分的段数不同时,相应的指针数也对应会有不同。如图3所示,划分为4段的链表L1,页可以通过指针W1(可以理解为队列的头部(Queue Top)指针),指针W2,指针W3,指针W4,和指针W5(可以理解为队列的尾部(Queue Bottom)指针),页可以通过上述指针进行位置变动。
当有请求页到来时,设备可以对该请球页进行判断,即判断该页是否是 实体缓存中的页(即该请求页在缓存链表L1中命中),如果命中,则在链表L1中没有页被删除出链表L1,而是需要对链表L1中页的顺序进行调整,设备可以命中页添加访问计数,并将该页从缓存L1中删除,从链表L1的头部(即Queue Top)添加到缓存中。如果请求页不是链表L1中的页,则需要在L1中进行替换操作,从而可以为新加入的请求页提供存储空间。
下面本发明实施例具体对如何删除相应的页,为新加入的请求页提供存储空间的操作进行说明。
如图4所示,实体缓存通过链表L1管理维护,所述链表L1至少被划分为多于一段,该方法包括:
步骤101,获取链表L1尾部的页为替换候选页;
步骤102,判断该候选页的访问计数是否大于X次,通常X为0,如果访问计数不大于X次,即为0次,执行步骤103,将该页从链表L1中删除,优选的,将元数据添加到虚拟缓存中,具体可以是,添加到链表L2的头部,相应的删除链表L2尾部的页。
步骤104,当候选页的访问计数大于X次,即不为0时,根据链表L1中各分段信息,将该候选页添加到对应的分段内,并将该候选页的访问计数重置Y次,通常Y设置为0次;循环执行上述步骤101,直到有替换候选页从链表L1中删除的页;
上述X,Y分别为整数;上述链表L1中各段分段信息至少包括:被添加的所述替换候选页的访问次数范围,其中,从链表L1尾部的段到链表L1头部的段中,每段要求被添加的所述替换候选页的访问次数依次增加。
其中,步骤104中所说的链表L1中各分段信息,为了便于理解此处进行举例,但举例中的具体数字并非对本发明实施例的限制。仍然参照图3中所示的缓存示意图进行说明,若位于链表L1尾部的候选页的访问次数不为0,且链表L1当前划分为4段分,如图3所示段4、段3、段2、段1,替换候选页访问次数大于0时,根据具体分段信息可以添加如对应的段。例如:当替换候选页的访问次数M,满足0<M<=2时,将该候选页通过指针W4添加到段1的头部,并将访问次数设置为0;当替换候选页的访问次数M,满足2<M<=4时,将该候选页通过指针W3添加到段2的头部,并将访问次数设置 为0;当替换候选页的访问次数M,满足4<M<=8时,将该候选页通过指针W2添加到段3的头部,并将访问次数设置为0;当替换候选页的访问次数M,满足8<M时,将该候选页通过指针W1添加到段4的头部,并将访问次数设置为0。对于具体的设计,对链表L1的分段可以不同于当前的说明,且对访问次数的限制也可以不同于当前的说明,依照具体的情况设置。
还需要说明的是,在本发明实施例中优选的将候选页的访问计数重置设置为0,但并非对本发明实施例的限制,根据设计要求,可以选择其它重置的数值。
还需要理解的是,链表L1中每个段中也可以存储多个页,在执行步骤104的添加时,将候选页通过对应的指针添加到相应段的头部。
通过对本方面实施例一提供的一种缓存管理方法的说明,该方案通过将实体缓存通过链表L1管理维护,链表L1至少被划分为多于一段,链表L1中段的划分是固定的,表示每段具有一定的存储空间,但当有替换候选页需要添加时,需要满足分段信道的要求;通过上述对链表的处理,对链表进行排序,将符合要求的页排在链表尾部作为需要删除的页,具体如何排在链表尾部的操作是通过判断当前在链表尾部的页的访问计数是否大于X(通常X设置为0),如果当前在链表尾部的页的访问计数不大于X,则符合将该页删除实体缓存的要求,若该当前在链表尾部的页的范围计数大于X,则说明该页曾经被多次访问,具有较高的价值,被再次访问的概率很高,根据链表中各分段的要求,将该页移至链表中较佳的位置,并将该页的访问计数重置,重置的访问计数通常设置为0,但不限于一定是0,其设计要求思路是:当该页获取到更佳的位置不被删除后,是以牺牲访问计数为前提的,即访问计数为页的获得更好的链表位置做出了贡献。因此,重置的访问计数降低。
通过上述操作,数据即将被替换时,若在缓存期间有访问(即访问次数大于0),则将其重新加到缓存中,不同的访问次数加到不同的位置,较多的访问次数添加到更不易被替换的位置,给予数据访问的频率以更多的考虑,使得访问更多的数据更不易被替换。而且,针对相同的总访问量,长期均匀访问可以相对于短期集中访问更加持久的停留在缓存中,使得更适合缓存的访问模式的数据留在缓存中进一步,被调整后的页中存储的数据重新回到缓 存时,重置访问次数,使得一定时间内的访问次数只产生一次收益,防止短时间大量访问使得数据积累访问量导致滞留缓存。
实施例二
本发明实施例提供了一种缓存管理方法,本实施例提供的方法与上述实施例一提供的方法相似,对于如何删除实体缓存中的页都有相同的策略,即上述实施例一中提供的方案,使得最终满足条件的页中的数据被删除。在本实施例中基于上述实施例一提供的策略,设计一种利用删除的页所提供的空间添加新请求页的方案。详细说明参见图5所示,实体缓存通过链表L1管理维护,所述链表L1至少被划分为多于一段,每段的划分是固定的,表示每段具有一定的存储空间,但当有替换候选页需要添加时,需要满足分段信道的要求;该方法包括:
步骤201,获取用户选择的请求页;
步骤202,判断所述请求页是否命中所述链表L1中的页;
若所述请求页未命中所述链表L1中的页,执行如实施例一中步骤101至104(依次对应如图5中步骤203至206),即:
步骤203,获取链表L1尾部的页为替换候选页;
步骤204,判断该候选页的访问计数是否大于X次,通常X为0,如果访问计数不大于X次,即为0次,执行步骤205,将该页从链表L1中删除。步骤206,当候选页的访问计数大于X次,即不为0时,根据链表L1中各分段信息,将该候选页添加到对应的分段内,并将该候选页的访问计数重置Y次,通常Y设置为0次;循环执行上述步骤203,直到有替换候选页从链表L1中删除的页;上述X,Y分别为整数;所述链表L1中各段分段信息至少包括:被添加的所述替换候选页的访问次数范围,其中,从链表L1尾部的段到链表L1头部的段中,每段要求被添加的所述替换候选页的访问次数依次增加。
步骤207,利用删除的替换候选页而获得的存储空间,将所述请求页添加到所述链表L1的头部或者尾部;并添加所述请求页的访问计数。
进一步,缓存中还包括虚拟缓存,所述虚拟缓存通过链表L2管理维护;
上述步骤207利用删除的替换候选页而获得的存储空间,将所述请求页 添加到所述链表L1的头部或者尾部,具体包括:
步骤2071,判断所述请求页是否命中链表L2中的页;
步骤2072,若所述请求页命中链表L2中的页,利用删除的替换候选页而获得的存储空间,将命中的所述链表L2中的页添加到所述链表L1的头部;并添加所述请求页的访问计数;
所述方法还可以包括:
步骤2073,将步骤205中从链表L1中删除的替换候选页的元数据添加到链表L2的头部。
优选的,该方法还包括:
步骤2074,若所述请求页未命中链表L2中的页,利用删除的替换候选页而获得的存储空间,将所述请求页添加到所述链表L1的尾部;并添加所述请求页的访问计数;
步骤2075,将步骤205中从链表L1中删除替换候选页的元数据添加到链表L2的头部,删除所述链表L2尾部的页,用于保持链表L2长度固定。
优选的,该方法还包括:
步骤208,若所述请求页命中所述链表L1中的页,将所述命中的链表L1中的页的访问计数增加1;将所述命中的链表L1中的页移至链表L1的头部。
通过对本方面实施例一提供的一种缓存管理方法的说明,该方案通过将实体缓存通过链表L1管理维护,链表L1至少被划分为多于一段,链表L1中段的划分是固定的,表示每段具有一定的存储空间,但当有替换候选页需要添加时,需要满足分段信道的要求。通过上述对链表的处理,对链表进行排序,将符合要求的页排在链表尾部作为需要删除的页,具体如何排在链表尾部的操作是通过判断当前在链表尾部的页的访问计数是否大于X(通常X设置为0),如果当前在链表尾部的页的访问计数不大于X,则符合将该页删除实体缓存的要求,若该当前在链表尾部的页的范围计数大于X,则说明该页曾经被多次访问,具有较高的价值,被再次访问的概率很高,根据链表中各分段的要求,将该页移至链表中较佳的位置,并将该页的访问计数重置,重置的访问计数通常设置为0,但不限于一定是0,其设计要求思路是:当该页获取到更佳的位置不被删除后,是以牺牲访问计数为前提的,即访问计数 为页的获得更好的链表位置做出了贡献。因此,重置的访问计数降低。
通过上述操作,数据即将被替换时,若在缓存期间有访问(即访问次数大于0),则将其重新加到缓存中,不同的访问次数加到不同的位置,较多的访问次数添加到更不易被替换的位置,给予数据访问的频率以更多的考虑,使得访问更多的数据更不易被替换。而且,针对相同的总访问量,长期均匀访问可以相对于短期集中访问更加持久的停留在缓存中,使得更适合缓存的访问模式的数据留在缓存中。进一步,被调整后的页中存储的数据重新回到缓存时,重置访问次数,使得一定时间内的访问次数只产生一次收益,防止短时间大量访问使得数据积累访问量导致滞留缓存。
进一步,本发明实施例中步骤2084中通过将第一次访问的数据添加到缓存低段(更易被替换的位置),使得一次性访问等数据不会造成缓存污染。
实施例三
本发明实施例提供一种缓存管理方法,该方法与上述实施例一、二是基于相同的发明构思,不同之处在于,上述实施例一、二将实体缓存通过用一条链表L1维护,在本实施例三中将实体缓存通过多条链路维护,链表的数量可以与上述实施例一种说明的链表的分段数目相同,例如,如下举例说明的将链表划分为4条链表,与实施例一举例的将链表L1划分为4段。次数链表的数量仅是便于理解的举例,并非对本发明实施例的限制。
如图6所示缓存的所示缓存示意图,例举出4条用于实体缓存的链表即L1至L4,以及用于虚拟缓存的链表L0。虚线部分的缓存可以理解为虚拟缓存。其中虚拟缓存可以作为优选设计,并非本发明实施例一定需要的设计。每条链表长度固定,在进行页的移动或者删除或者添加操作时,若某条链表超过设定的长度后,将尾部的页降级至下一条链表中,重复该操作直至各链表的长度符合要求。例如,如果有新的页添加到链表L4的头部,则链表L4尾部需要删除一个页才可以添加新的页至链表L4的头部,从链表L4尾部删除的页移至链表L3的头部,同理,链表L3尾部的页移动至链表L2的头部,如此类推,直到链表L1的尾部的页别移除实体缓存。链表L1尾部的页移除实体缓存后,将该页的元数据存储在虚拟缓存链表L0的头部,相应的链表L0尾部的页被移除缓存。
如图7所示,本实施例提供的一种缓存管理方法,在缓存中至少包括实体缓存,实体缓存通过多于一条链表维护;
该方法包括:
步骤301,获取排在最低位链表的尾部的页为替换候选页;
其中,在链表数目固定的情况下,链表之间的高低排位是清楚的,例如:将如图6中链表L4认为是排在最高位链表,其远离链表L3的一端为链表L4的头部,与链表L3紧挨的一端为链表L4的尾部,依次对各条链表都有相似的理解,链表L1则认为是排在最低端链表,其远离链表L2的一端认为是链表L1的尾部,接近链表L2的一端认为是链表L1的头部。还需要理解的是,在本文件中对于一条链表才会区分头部和尾部,即链表的头部和链表的尾部,其中链表的头部是指指针可以将页添加进该链表的一端,链表的尾部是指指针可以将页从链表中移除的一端。在本文件中对于多条链表的情况下,描述中以排在最低/高位链表来区分各条链表的,例如链表L4为排在最高位链表,链表L1是排在最低位链表。
步骤302,判断替换候选页的访问计数是否大于X次;
步骤303,如果不大于X次,将替换候选页从排在最低位链表中删除;
步骤304,如果大于X次,根据各条链表中预置链表信息,将候选页添加到对应的链表头部,并将所示替换候选页的访问计数重置为Y次;重复执行排在最低位链表的尾部的页为替换候选页的操作,直到将有替换候选页从排在最低位链表的尾部删除;
其中,X,Y分别为整数;所述预置链表信息至少包括:被添加的所述替换候选页的访问次数范围,其中,从排在最低位链表到排在最高位链表依次排列的链表中,每条链路要求被添加的所述替换候选页的访问次数依次增加。
通过对本方面实施例一提供的一种缓存管理方法的说明,该方案通过本实施例提供的一种缓存管理方法,在缓存中至少包括实体缓存,实体缓存通过多于一条链表维护,每条链表中存储的页的空间是固定的,当有替换候选页需要添加进对应的链表时,需要根据对应的链表信息,将替换候选页加入到对应的链表中;通过上述对链表的处理,对链表进行排序,将符合要求的页排在链表尾部作为需要删除的页,具体如何排在链表L1尾部的操作是通过 判断当前在链表L1尾部的页的访问计数是否大于X(通常X设置为0),如果当前在链表L1尾部的页的访问计数不大于X,则符合将该页删除实体缓存的要求,若该当前在最低位链表尾部的页的范围计数大于X,则说明该页曾经被多次访问,具有较高的价值,被再次访问的概率很高,根据各链表访问次数,将该页移至对应的链表中位置,从而不易被替换掉,并将该页的访问计数重置,重置的访问计数通常设置为0,但不限于一定是0,其设计要求思路是:当该页获取到更佳的位置不被删除后,是以牺牲访问计数为前提的,即访问计数为页的获得更好的链表位置做出了贡献。因此,重置的访问计数降低。
通过上述操作,数据即将被替换时,若在缓存期间有访问(即访问次数大于0),则将其重新加到缓存中,不同的访问次数加到不同的位置,较多的访问次数添加到更不易被替换的位置,给予数据访问的频率以更多的考虑,使得访问更多的数据更不易被替换。而且,针对相同的总访问量,长期均匀访问可以相对于短期集中访问更加持久的停留在缓存中,使得更适合缓存的访问模式的数据留在缓存中。进一步,被调整后的页中存储的数据重新回到缓存时,重置访问次数,使得一定时间内的访问次数只产生一次收益,防止短时间大量访问使得数据积累访问量导致滞留缓存。
实施例四
本发明实施例提供一种缓存管理方法,本实施例四提供的方法与上述实施例三提供的方法相似,对于如何删除实体缓存中的页都有相同的策略,即上述实施例三中提供的方案,使得最终满足条件的页中的数据被删除。在本实施例中基于上述实施例三提供的策略,设计一种利用删除的页所提供的空间添加新请求页的方案。详细说明参见图8所示,在缓存中至少包括实体缓存,实体缓存通过多于一条链表维护;
该方法包括:
步骤401,获取用户选择的请求页;
步骤402,判断所述请求页是否命中所述实体缓存中的页;
若所述请求页未命中实体缓存中的页,执行如实施例三中步骤301至304(依次对应如图8中步骤403至406),即:
步骤403,获取排在最低位链表的尾部的页为替换候选页;
其中,在链表数目固定的情况下,链表之间的高低排位是清楚的,例如:将如图6中链表L4认为是排在最高位链表,其远离链表L3的一端为链表L4的头部,与链表L3紧挨的一端为链表L4的尾部,依次对各条链表都有相似的理解,链表L1则认为是排在最低端链表,其远离链表L2的一端认为是链表L1的尾部,接近链表L2的一端认为是链表L1的头部。
步骤404,判断替换候选页的访问计数是否大于X次;
步骤405,如果不大于X次,将替换候选页从排在最低位链表中删除;
步骤406,如果大于X次,根据各条链表中预置链表信息,将候选页添加到对应的链表头部,并将所示替换候选页的访问计数重置为Y次;重复执行排在最低位链表的尾部的页为替换候选页的操作,直到将有替换候选页从排在最低位链表的尾部删除;
其中,X,Y分别为整数;所述预置链表信息至少包括:被添加的所述替换候选页的访问次数范围,其中,从排在最低位链表到排在最高位链表依次排列的链表中,每条链路要求被添加的所述替换候选页的访问次数依次增加。
步骤407,利用删除的替换候选页而获得的存储空间,将所述请求页添加到排在最高位链表的头部,或者添加到排在最低位链表的尾部;并添加所述请求页的访问计数。
进一步,缓存中还包括虚拟缓存,所述虚拟缓存通过链表L2管理维护;
上述步骤407利用删除的替换候选页而获得的存储空间,将所述请求页添加到排在最高位的链表的头部,或者添加到排在最低位的链表的尾部,具体包括:
步骤4071,判断所述请求页是否命中链表L2中的页;
步骤4072,若所述请求页命中链表L2中的页,利用删除的替换候选页而获得的存储空间,将命中的所述链表L2中的页添加到排在最高位的链表的头部;并添加所述请求页的访问计数;
所述方法还可以包括:
步骤4073,将从实体缓存中删除的页的元数据添加到链表L2的头部。
优选的,该方法还包括:
步骤4074,若所述请求页未命中链表L2中的页,利用删除的替换候选页 而获得的存储空间,将所述请求页添加到排在最低位的链表的尾部,并添加所述请求页的访问计数;
步骤4075,所述将所述替换候选页从排在最低位链表中删除之后,所述方法还包括:将所述替换候选页的元数据添加到链表L2的头部,删除所述链表L2尾部的页,用于保持链表L2长度固定。
优选的,该方法还包括:
步骤408,若所述请求页命中所述实体缓存中的页,将所述命中的所述实体缓存中的页的访问计数增加1;将所述命中的所述实体缓存中的页移至排在最高位的链表的头部。
通过对本方面实施例一提供的一种缓存管理方法的说明,该方案通过本实施例提供的一种缓存管理方法,在缓存中至少包括实体缓存,实体缓存通过多于一条链表维护,每条链表中存储的页的空间是固定的,当有替换候选页需要添加进对应的链表时,需要根据对应的链表信息,将替换候选页加入到对应的链表中;;通过上述对链表的处理,对链表进行排序,将符合要求的页排在链表尾部作为需要删除的页,具体如何排在链表L1尾部的操作是通过判断当前在链表L1尾部的页的访问计数是否大于X(通常X设置为0),如果当前在链表L1尾部的页的访问计数不大于X,则符合将该页删除实体缓存的要求,若该当前在最低位链表尾部的页的范围计数大于X,则说明该页曾经被多次访问,具有较高的价值,被再次访问的概率很高,根据各链表访问次数,将该页移至对应的链表中位置,从而不易被替换掉,并将该页的访问计数重置,重置的访问计数通常设置为0,但不限于一定是0,其设计要求思路是:当该页获取到更佳的位置不被删除后,是以牺牲访问计数为前提的,即访问计数为页的获得更好的链表位置做出了贡献。因此,重置的访问计数降低。
通过上述操作,数据即将被替换时,若在缓存期间有访问(即访问次数大于0),则将其重新加到缓存中,不同的访问次数加到不同的位置,较多的访问次数添加到更不易被替换的位置,给予数据访问的频率以更多的考虑,使得访问更多的数据更不易被替换。而且,针对相同的总访问量,长期均匀访问可以相对于短期集中访问更加持久的停留在缓存中,使得更适合缓存的 访问模式的数据留在缓存中。进一步,被调整后的页中存储的数据重新回到缓存时,重置访问次数,使得一定时间内的访问次数只产生一次收益,防止短时间大量访问使得数据积累访问量导致滞留缓存。
进一步,本发明实施例中步骤4084中通过将第一次访问的数据添加到缓存低段(更易被替换的位置),使得一次性访问等数据不会造成缓存污染。
实施例五
本发明实施例提供了一种缓存管理装置,将缓存中划分为实体缓存(Solid Cache)和虚拟缓存(Phantom Cache)两部分,如图3所示缓存示意图,实体缓存以链表L1维护,虚拟缓存以L2维护。在实体缓存中存储页的元数据和数据,在虚拟缓存中仅存储元数据。需要理解的是:因为在虚拟缓存中仅存储的是元数据,元数据只保存页的访问信息,因此,请求页若命中链表L2,并非是真的缓存命中。
在本发明实施例中对实体缓存链表L1可以划分为多于一个的段,优选的,将链表L1划分为4段,每段链表中存储的页的数量可以是不同(为了便于说明,后续称为“每段的长度”,即每段的长度可以不同)。当链表L1被划分为4段时,L1中可以包含5个指针,当链表L1划分的段数不同时,相应的指针数也对应会有不同。如图3所示,划分为4段的链表L1,页可以通过指针W1(可以理解为队列的头部(Queue Top)指针),指针W2,指针W3,指针W4,和指针W5(可以理解为队列的尾部(Queue Bottom)指针),页可以通过上述指针进行位置变动。
当有请求页到来时,设备可以对该请球页进行判断,即判断该页是否是实体缓存中的页(即该请求页在缓存链表L1中命中),如果命中,则在链表L1中没有页被删除出链表L1,而是需要对链表L1中页的顺序进行调整,设备可以命中页添加访问计数,并将该页从缓存L1中删除,从链表L1的头部(即Queue Top)添加到缓存中。如果请求页不是链表L1中的页,则需要在L1中进行替换操作,从而可以为新加入的请求页提供存储空间。
下面本发明实施例具体对如何删除相应的页,为新加入的请求页提供存储空间的一种缓存管理装置作进行说明。
如图9所示,实体缓存通过链表L1管理维护,所述链表L1至少被划分 为多于一段;
该装置包括:第一获取单元501,第一判断单元502,第一删除单元503,第一添加单元504,
所述第一获取单元501,用于获取链表L1尾部的页为替换候选页;
所述第一判断单元502,用于判断所述替换候选页的访问计数是否大于X次;
所述第一删除单元503,用于如果不大于X次,将所述替换候选页从所述链表L1中删除;
所述第一添加单元504,用于如果大于X次,根据所述链表L1中各段分段信息,将所述候选页添加到对应的分段内,并将所示替换候选页的访问计数重置为Y次;重复执行所述获取链表L1尾部的页为替换候选页的操作,直到有替换候选页从所述链表L1中删除;
其中,X,Y分别为整数;上述链表L1中各段分段信息至少包括:被添加的所述替换候选页的访问次数范围,其中,从链表L1尾部的段到链表L1头部的段中,每段要求被添加的所述替换候选页的访问次数依次增加。
其中,第一添加单元504中所说的链表L1中各分段信息,为了便于理解此处进行举例,但举例中的具体数字并非对本发明实施例的限制。仍然参照图3中所示的缓存示意图进行说明,若位于链表L1尾部的候选页的访问次数不为0,且链表L1当前划分为4段分,如图3所示段4、段3、段2、段1,替换候选页访问次数大于0时,根据具体的分段信息可以添加如对应的段。例如:当替换候选页的访问次数M,满足0<M<=2时,将该候选页通过指针W4添加到段1的头部,并将访问次数设置为0;当替换候选页的访问次数M,满足2<M<=4时,将该候选页通过指针W3添加到段2的头部,并将访问次数设置为0;当替换候选页的访问次数M,满足4<M<=8时,将该候选页通过指针W2添加到段3的头部,并将访问次数设置为0;当替换候选页的访问次数M,满足8<M时,将该候选页通过指针W1添加到段4的头部,并将访问次数设置为0。对于具体的设计,对链表L1的分段可以不同于当前的说明,且对访问次数的限制也可以不同于当前的说明,依照具体的情况设置。
还需要说明的是,在本发明实施例中优选的将候选页的访问计数重置设 置为0,但并非对本发明实施例的限制,根据设计要求,可以选择其它重置的数值。
还需要理解的是,链表L1中每个段中也可以存储多个页,第一添加单元504执行添加时,将候选页通过对应的指针添加到相应段的头部。
通过对本方面实施例一提供的一种缓存管理装置的说明,该方案通过将实体缓存通过链表L1管理维护,链表L1至少被划分为多于一段,链表L1中段的划分是固定的,表示每段具有一定的存储空间,但当有替换候选页需要添加时,需要满足分段信道的要求。通过上述对链表的处理,对链表进行排序,将符合要求的页排在链表尾部作为需要删除的页,具体如何排在链表尾部的操作是通过判断当前在链表尾部的页的访问计数是否大于X(通常X设置为0),如果当前在链表尾部的页的访问计数不大于X,则符合将该页删除实体缓存的要求,若该当前在链表尾部的页的范围计数大于X,则说明该页曾经被多次访问,具有较高的价值,被再次访问的概率很高,根据链表中各分段的要求,将该页移至链表中较佳的位置,并将该页的访问计数重置,重置的访问计数通常设置为0,但不限于一定是0,其设计要求思路是:当该页获取到更佳的位置不被删除后,是以牺牲访问计数为前提的,即访问计数为页的获得更好的链表位置做出了贡献。因此,重置的访问计数降低。
通过上述一种缓存管理装置的说明,数据即将被替换时,若在缓存期间有访问(即访问次数大于0),则将其重新加到缓存中,不同的访问次数加到不同的位置,较多的访问次数添加到更不易被替换的位置,给予数据访问的频率以更多的考虑,使得访问更多的数据更不易被替换。而且,针对相同的总访问量,长期均匀访问可以相对于短期集中访问更加持久的停留在缓存中,使得更适合缓存的访问模式的数据留在缓存中。进一步,被调整后的页中存储的数据重新回到缓存时,重置访问次数,使得一定时间内的访问次数只产生一次收益,防止短时间大量访问使得数据积累访问量导致滞留缓存。
优选的,该装置还包括:第二获取单元505,第二判断单元506,第二添加单元507,第一计数单元508,
所述第二获取单元505,用于获取用户选择的请求页;
所述第二判断单元506,用于判断所述请求页是否命中所述链表L1中的 页;
所述第二添加单元507,用于若所述请求页未命中所述链表L1中的页,利用所述第一删除单元中删除的替换候选页而获得的存储空间,将所述请求页添加到所述链表L1的头部或者尾部;
所述第一计数单元508,用于并添加所述请求页的访问计数。
优选的,所述缓存中还包括虚拟缓存,所述虚拟缓存通过链表L2管理维护;
所述第二添加单元507具体包括:第三判断单元5071和添加头部单元5072;
所述第三判断单元5071,用于判断所述请求页是否命中链表L2中的页;
所述添加头部单元5072,用于若所述请求页命中链表L2中的页,利用删除的替换候选页而获得的存储空间,将命中的所述链表L2中的页添加到所述链表L1的头部;
所述装置还包括:虚拟添加单元5073,用于将所述替换候选页的元数据添加到链表L2的头部。
优选的,第二添加单元507还包括:添加尾部单元5074,用于若所述请求页未命中链表L2中的页,利用删除的替换候选页而获得的存储空间,将所述请求页添加到所述链表L1的尾部;
所述第二添加单元507还包括:虚拟处理单元5075,用于将所述替换候选页的元数据添加到链表L2的头部,删除所述链表L2尾部的页,用于保持链表L2长度固定。
优选的,所述装置还包括:
实体处理单元509,用于若所述请求页命中所述链表L1中的页,将所述命中的链表L1中的页的访问计数增加1;将所述命中的链表L1中的页移至链表L1的头部。
本发明实施例通过将第一次访问的数据添加到缓存低段(更易被替换的位置),使得一次性访问等数据不会造成缓存污染。将经常被访问的数据添加到链路L1的头部,使得经常被访问的数据不会被轻易删除。
实施例六
本发明实施例提供一种缓存管理装置,在本实施例中将实体缓存通过多条链路维护,链表的数量可以与上述实施例五中说明的链表的分段数目相同,例如,如下举例说明的将链表划分为4条链表,与实施例五举例的将链表L1划分为4段。次数链表的数量仅是便于理解的举例,并非对本发明实施例的限制。
如图6所示缓存的所示缓存示意图,例举出4条用于实体缓存的链表即L1至L4,以及用于虚拟缓存的链表L0。虚线部分的缓存可以理解为虚拟缓存。其中虚拟缓存可以作为优选设计,并非本发明实施例一定需要的设计。每条链表长度固定,在进行页的移动或者删除或者添加操作时,若某条链表超过设定的长度后,将尾部的页降级至下一条链表中,重复该操作直至各链表的长度符合要求。例如,如果有新的页添加到链表L4的头部,则链表L4尾部需要删除一个页才可以添加新的页至链表L4的头部,从链表L4尾部删除的页移至链表L3的头部,同理,链表L3尾部的页移动至链表L2的头部,如此类推,直到链表L1的尾部的页别移除实体缓存。链表L1尾部的页移除实体缓存后,将该页的元数据存储在虚拟缓存链表L0的头部,相应的链表L0尾部的页被移除缓存。
如图10所示,本实施例提供的一种缓存管理装置,在缓存中至少包括实体缓存,实体缓存通过多于一条链表维护;
该装置包括:第三获取单元601,第四判断单元602,第三删除单元603,第三添加单元604;
所述第三获取单元601,用于获取排在最低位链表的尾部的页为替换候选页;
所述第四判断单元602,用于判断所述替换候选页的访问计数是否大于X次;
所述第三删除单元603,用于如果不大于X次,将所述替换候选页从排在最低位链表中删除;
所述第三添加单元604,用于如果大于X次,根据各条链表中预置链表信息,将所述候选页添加到对应的链表头部,并将所示替换候选页的访问计数重置为Y次;重复执行所述排在最低位链表的尾部的页为替换候选页的操 作,直到将有替换候选页从所述排在最低位链表的尾部删除;
其中,X,Y分别为整数;所述预置链表信息至少包括:被添加的所述替换候选页的访问次数范围,其中,从排在最低位链表到排在最高位链表依次排列的链表中,每条链路要求被添加的所述替换候选页的访问次数依次增加。
通过对本方面实施例一提供的一种缓存管理装置的说明,该方案通过本实施例提供的一种缓存管理方法,在缓存中至少包括实体缓存,实体缓存通过多于一条链表维护,每条链表中存储的页的空间是固定的,当有替换候选页需要添加进对应的链表时,需要根据对应的链表信息,将替换候选页加入到对应的链表中;通过上述对链表的处理,对链表进行排序,将符合要求的页排在链表尾部作为需要删除的页,具体如何排在链表L1尾部的操作是通过判断当前在链表L1尾部的页的访问计数是否大于X(通常X设置为0),如果当前在链表L1尾部的页的访问计数不大于X,则符合将该页删除实体缓存的要求,若该当前在最低位链表尾部的页的范围计数大于X,则说明该页曾经被多次访问,具有较高的价值,被再次访问的概率很高,根据各链表访问次数,将该页移至对应的链表中位置,从而不易被替换掉,并将该页的访问计数重置,重置的访问计数通常设置为0,但不限于一定是0,其设计要求思路是:当该页获取到更佳的位置不被删除后,是以牺牲访问计数为前提的,即访问计数为页的获得更好的链表位置做出了贡献。因此,重置的访问计数降低。
通过上述说明,数据即将被替换时,若在缓存期间有访问(即访问次数大于0),则将其重新加到缓存中,不同的访问次数加到不同的位置,较多的访问次数添加到更不易被替换的位置,给予数据访问的频率以更多的考虑,使得访问更多的数据更不易被替换。而且,针对相同的总访问量,长期均匀访问可以相对于短期集中访问更加持久的停留在缓存中,使得更适合缓存的访问模式的数据留在缓存中。进一步,被调整后的页中存储的数据重新回到缓存时,重置访问次数,使得一定时间内的访问次数只产生一次收益,防止短时间大量访问使得数据积累访问量导致滞留缓存。
优选的,所述装置还包括:第四获取单元605,第五判断单元606,第四添加单元607,第三计数单元608,
所述第四获取单元605,用于获取用户选择的请求页;
所述第五判断单元606,用于判断所述请求页是否命中所述实体缓存中的页;
所述第四添加单元607,用于若所述请求页未命中所述实体缓存中的页,利用删除的替换候选页而获得的存储空间,将所述请求页添加到排在最高位链表的头部,或者添加到排在最低位链表的尾部;
所述第三计数单元608,用于添加所述请求页的访问计数。
优选的,所述缓存中还包括虚拟缓存,所述虚拟缓存通过链表L2管理维护;
所述第四添加单元607,具体包括:第六判断单元6071,添加头部单元6072,
所述第六判断单元6071,用于判断所述请求页是否命中链表L2中的页;
所述添加头部单元6072,用于若所述请求页命中链表L2中的页,利用删除的替换候选页而获得的存储空间,将命中的所述链表L2中的页添加到排在最高位的链表的头部;
所述第四添加单元607还包括:虚拟添加单元6073,用于将所述替换候选页的元数据添加到链表L2的头部。
优选的,所述第四添加单元607还包括:添加尾部单元6074,用于若所述请求页未命中链表L2中的页,利用删除的替换候选页而获得的存储空间,将所述请求页添加到排在最低位的链表的尾部;
所述第四添加单元607还包括:虚拟处理单元6075,用于将所述替换候选页的元数据添加到链表L2的头部,删除所述链表L2尾部的页,用于保持链表L2长度固定。
优选的,所述装置还包括:实体处理单元609,若所述请求页命中所述实体缓存中的页,将所述命中的所述实体缓存中的页的访问计数增加1;将所述命中的所述实体缓存中的页移至排在最高位的链表的头部。
本发明实施例通过将第一次访问的数据添加到缓存低段(更易被替换的位置),使得一次性访问等数据不会造成缓存污染。将经常被访问的数据添加到链路L1的头部,使得经常被访问的数据不会被轻易删除。
实施例七
本发明实施例还提供另一种存储设备,结构示意图如图11所示,包括分别连接到总线上的存储器1301、处理器1302。
存储器1301中用来储存数据,存储器中包括有缓存,在缓存中至少包括实体缓存,所述实体缓存通过链表L1管理维护,所述链表L1至少被划分为多于一段。存储器还储存处理器1302处理数据的必要文件等信息;
本实施例中的处理器1302用于获取链表L1尾部的页为替换候选页;判断所述替换候选页的访问计数是否大于X次;如果不大于X次,将所述替换候选页从所述链表L1中删除;如果大于X次,根据所述链表L1中各段分段信息,将所述候选页添加到对应的分段内,并将所述替换候选页的访问计数重置为Y次;重复执行所述获取链表L1尾部的页为替换候选页的操作,直到有替换候选页从所述链表L1中删除;其中,X,Y分别为整数;所述链表L1中各段分段信息至少包括:被添加的所述替换候选页的访问次数范围,其中,从链表L1尾部的段到链表L1头部的段中,每段要求被添加的所述替换候选页的访问次数依次增加。
优选的,处理器1302还用于:获取用户选择的请求页;判断所述请求页是否命中所述链表L1中的页;若所述请求页未命中所述链表L1中的页,执行如权利要求1所述方法,利用删除的替换候选页而获得的存储空间,将所述请求页添加到所述链表L1的头部或者尾部;并添加所述请求页的访问计数。
优选的,存储器1031的缓存中还包括虚拟缓存,虚拟缓存通过链表L2管理维护;
处理器1302还用于:所述利用删除的替换候选页而获得的存储空间,将所述请求页添加到所述链表L1的头部或者尾部,具体包括:判断所述请求页是否命中链表L2中的页;若所述请求页命中链表L2中的页,利用删除的替换候选页而获得的存储空间,将命中的所述链表L2中的页添加到所述链表L1的头部;所述将所述替换候选页从所述链表L1中删除之后,所述方法还包括:将所述替换候选页的元数据添加到链表L2的头部。
处理器1302还用于:若所述请求页未命中链表L2中的页,利用删除的替换候选页而获得的存储空间,将所述请求页添加到所述链表L1的尾部;所 述将所述替换候选页从所述链表L1中删除之后,所述方法还包括:将所述替换候选页的元数据添加到链表L2的头部,删除所述链表L2尾部的页,用于保持链表L2长度固定。
处理器1302还用于:若所述请求页命中所述链表L1中的页,将所述命中的链表L1中的页的访问计数增加1;将所述命中的链表L1中的页移至链表L1的头部。
通过上述的说明,数据即将被替换时,若在缓存期间有访问(即访问次数大于0),则将其重新加到缓存中,不同的访问次数加到不同的位置,较多的访问次数添加到更不易被替换的位置,给予数据访问的频率以更多的考虑,使得访问更多的数据更不易被替换。而且,针对相同的总访问量,长期均匀访问可以相对于短期集中访问更加持久的停留在缓存中,使得更适合缓存的访问模式的数据留在缓存中。进一步,被调整后的页中存储的数据重新回到缓存时,重置访问次数,使得一定时间内的访问次数只产生一次收益,防止短时间大量访问使得数据积累访问量导致滞留缓存。
实施例八
本发明实施例还提供另一种存储设备,结构示意图如图12所示,包括分别连接到总线上的存储器1401、处理器1402。
存储器1401中用来储存数据,存储器中包括有缓存,在缓存中至少包括实体缓存,所述实体缓存通过多于一条链表维护。存储器还储存处理器1402处理数据的必要文件等信息;
处理器1402用于:获取排在最低位链表的尾部的页为替换候选页;判断所述替换候选页的访问计数是否大于X次;如果不大于X次,将所述替换候选页从排在最低位链表中删除;如果大于X次,根据各条链表中预置链表信息,将所述候选页添加到对应的链表头部,并将所述替换候选页的访问计数重置为Y次;重复执行所述排在最低位链表的尾部的页为替换候选页的操作,直到将有替换候选页从所述排在最低位链表的尾部删除;其中,X,Y分别为整数;所述预置链表信息至少包括:被添加的所述替换候选页的访问次数范围,其中,从排在最低位链表到排在最高位链表依次排列的链表中,每条链路要求被添加的所述替换候选页的访问次数依次增加。
优选的,处理器1402还用于:获取用户选择的请求页;判断所述请求页是否命中所述实体缓存中的页;若所述请求页未命中所述实体缓存中的页,利用删除的替换候选页而获得的存储空间,将所述请求页添加到排在最高位链表的头部,或者添加到排在最低位链表的尾部;并添加所述请求页的访问计数。
优选的,若存储器中缓存中还包括虚拟缓存,所述虚拟缓存通过链表L2管理维护;处理器1402还用于:所述利用删除的替换候选页而获得的存储空间,将所述请求页添加到排在最高位的链表的头部,或者添加到排在最低位的链表的尾部,具体包括:判断所述请求页是否命中链表L2中的页;若所述请求页命中链表L2中的页,利用删除的替换候选页而获得的存储空间,将命中的所述链表L2中的页添加到排在最高位的链表的头部;所述将所述替换候选页从排在最低位链表中删除之后,所述方法还包括:将所述替换候选页的元数据添加到链表L2的头部。
优选的,处理器1402还用于:若所述请求页未命中链表L2中的页,利用删除的替换候选页而获得的存储空间,将所述请求页添加到排在最低位的链表的尾部;所述将所述替换候选页从排在最低位链表中删除之后,所述方法包括:将所述替换候选页的元数据添加到链表L2的头部,删除所述链表L2尾部的页,用于保持链表L2长度固定。
优选的,处理器1402还用于:将所述命中的所述实体缓存中的页的访问计数增加1;将所述命中的所述实体缓存中的页移至排在最高位的链表的头部。
通过上述说明,数据即将被替换时,若在缓存期间有访问(即访问次数大于0),则将其重新加到缓存中,不同的访问次数加到不同的位置,较多的访问次数添加到更不易被替换的位置,给予数据访问的频率以更多的考虑,使得访问更多的数据更不易被替换。而且,针对相同的总访问量,长期均匀访问可以相对于短期集中访问更加持久的停留在缓存中,使得更适合缓存的访问模式的数据留在缓存中。进一步,被调整后的页中存储的数据重新回到缓存时,重置访问次数,使得一定时间内的访问次数只产生一次收益,防止短时间大量访问使得数据积累访问量导致滞留缓存。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明所提供的一种缓存管理方法和装置进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (20)
1.一种缓存管理方法,其特征在于,在缓存中至少包括实体缓存,所述实体缓存通过链表L1管理维护,所述链表L1至少被划分为多于一段,
所述方法包括:
获取链表L1尾部的页为替换候选页;
判断所述替换候选页的访问计数是否大于X次;
如果不大于X次,将所述替换候选页从所述链表L1中删除;
如果大于X次,根据所述链表L1中各段分段信息,将所述候选页添加到对应的分段内,并将所述替换候选页的访问计数重置为Y次;重复执行所述获取链表L1尾部的页为替换候选页的操作,直到有替换候选页从所述链表L1中删除;
其中,X,Y分别为整数;所述链表L1中各段分段信息至少包括:被添加的所述替换候选页的访问次数范围,其中,从链表L1尾部的段到链表L1头部的段中,每段要求被添加的所述替换候选页的访问次数依次增加。
2.根据权利要求1所述的方法,其特征在于,所述获取链表L1尾部的页为替换候选页之前,所述方法还包括:
获取用户选择的请求页;
判断所述请求页是否命中所述链表L1中的页;
若所述请求页未命中所述链表L1中的页,执行如权利要求1所述方法,利用删除的替换候选页而获得的存储空间,将所述请求页添加到所述链表L1的头部或者尾部;
并添加所述请求页的访问计数。
3.根据权利要求2所述的方法,其特征在于,所述缓存中还包括虚拟缓存,所述虚拟缓存通过链表L2管理维护;
所述利用删除的替换候选页而获得的存储空间,将所述请求页添加到所述链表L1的头部或者尾部,具体包括:
判断所述请求页是否命中链表L2中的页;
若所述请求页命中链表L2中的页,利用删除的替换候选页而获得的存储空间,将命中的所述链表L2中的页添加到所述链表L1的头部;
所述将所述替换候选页从所述链表L1中删除之后,所述方法还包括:将所述替换候选页的元数据添加到链表L2的头部。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述请求页未命中链表L2中的页,利用删除的替换候选页而获得的存储空间,将所述请求页添加到所述链表L1的尾部;
所述将所述替换候选页从所述链表L1中删除之后,所述方法还包括:将所述替换候选页的元数据添加到链表L2的头部,删除所述链表L2尾部的页,用于保持链表L2长度固定。
5.根据权利要求2所述的方法,其特征在于,若所述请求页命中所述链表L1中的页,所述方法还包括:
将所述命中的链表L1中的页的访问计数增加1;将所述命中的链表L1中的页移至链表L1的头部。
6.一种缓存管理方法,其特征在于,在缓存中至少包括实体缓存,所述实体缓存通过多于一条链表维护;
所述方法包括:
获取排在最低位链表的尾部的页为替换候选页;
判断所述替换候选页的访问计数是否大于X次;
如果不大于X次,将所述替换候选页从所述排在最低位链表中删除;
如果大于X次,根据各条链表中预置链表信息,将所述候选页添加到对应的链表头部,并将所述替换候选页的访问计数重置为Y次;重复执行所述获取排在最低位链表的尾部的页为替换候选页的操作,直到将有替换候选页从所述排在最低位链表的尾部删除;
其中,X,Y分别为整数;所述预置链表信息至少包括:被添加的所述替换候选页的访问次数范围,其中,从排在最低位链表到排在最高位链表依次排列的链表中,每条链路要求被添加的所述替换候选页的访问次数依次增加。
7.根据权利要求6所述的方法,其特征在于,所述获取排在最低位链表的尾部的页为替换候选页之前,所述方法还包括:
获取用户选择的请求页;
判断所述请求页是否命中所述实体缓存中的页;
若所述请求页未命中所述实体缓存中的页,执行如权利要求6所述的方法,利用删除的替换候选页而获得的存储空间,将所述请求页添加到排在最高位链表的头部,或者添加到排在最低位链表的尾部;
并添加所述请求页的访问计数。
8.根据权利要求7所述的方法,其特征在于,所述缓存中还包括虚拟缓存,所述虚拟缓存通过链表L2管理维护;
所述利用删除的替换候选页而获得的存储空间,将所述请求页添加到排在最高位的链表的头部,或者添加到排在最低位的链表的尾部,具体包括:
判断所述请求页是否命中链表L2中的页;
若所述请求页命中链表L2中的页,利用删除的替换候选页而获得的存储空间,将命中的所述链表L2中的页添加到排在最高位的链表的头部;
所述将所述替换候选页从排在最低位链表中删除之后,所述方法还包括:将所述替换候选页的元数据添加到链表L2的头部。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
若所述请求页未命中链表L2中的页,利用删除的替换候选页而获得的存储空间,将所述请求页添加到排在最低位的链表的尾部;
所述将所述替换候选页从排在最低位链表中删除之后,所述方法包括:将所述替换候选页的元数据添加到链表L2的头部,删除所述链表L2尾部的页,用于保持链表L2长度固定。
10.根据权利要求7所述的方法,其特征在于,若所述请求页命中所述实体缓存中的页,所述方法还包括:
将所述命中的所述实体缓存中的页的访问计数增加1;将所述命中的所述实体缓存中的页移至排在最高位的链表的头部。
11.一种缓存管理装置,其特征在于,在缓存中至少包括实体缓存,所述实体缓存通过链表L1管理维护,所述链表L1至少被划分为多于一段,
所述装置包括:第一获取单元,第一判断单元,第一删除单元,第一添加单元,
所述第一获取单元,用于获取链表L1尾部的页为替换候选页;
所述第一判断单元,用于判断所述替换候选页的访问计数是否大于X次;
所述第一删除单元,用于如果不大于X次时,将所述替换候选页从所述链表L1中删除;
所述第一添加单元,用于如果大于X次时,根据所述链表L1中各段分段信息,将所述候选页添加到对应的分段内,并将所述替换候选页的访问计数重置为Y次;重复执行所述获取链表L1尾部的页为替换候选页的操作,直到有替换候选页从所述链表L1中删除;
其中,X,Y分别为整数;所述链表L1中各段分段信息至少包括:被添加的所述替换候选页的访问次数范围,其中,从链表L1尾部的段到链表L1头部的段中,每段要求被添加的所述替换候选页的访问次数依次增加。
12.根据权利要求11所述装置,其特征在于,所述装置还包括:第二获取单元,第二判断单元,第二添加单元,第一计数单元,
所述第二获取单元,用于获取用户选择的请求页;
所述第二判断单元,用于判断所述请求页是否命中所述链表L1中的页;
所述第二添加单元,用于若所述请求页未命中所述链表L1中的页时,利用所述第一删除单元中删除的替换候选页而获得的存储空间,将所述请求页添加到所述链表L1的头部或者尾部;
所述第一计数单元,用于并添加所述请求页的访问计数。
13.根据权利要求12所述装置,其特征在于,所述缓存中还包括虚拟缓存,所述虚拟缓存通过链表L2管理维护;
所述第二添加单元具体包括:第三判断单元和添加头部单元;
所述第三判断单元,用于判断所述请求页是否命中链表L2中的页;
所述添加头部单元,用于若所述请求页命中链表L2中的页时,利用删除的替换候选页而获得的存储空间,将命中的所述链表L2中的页添加到所述链表L1的头部;
所述第二添加单元还包括:虚拟添加单元,用于将所述替换候选页的元数据添加到链表L2的头部。
14.根据权利要求13所述装置,其特征在于,所述第二添加单元还包括:添加尾部单元,用于若所述请求页未命中链表L2中的页时,利用删除的替换候选页而获得的存储空间,将所述请求页添加到所述链表L1的尾部;
所述第二添加单元还包括:虚拟处理单元,用于将所述替换候选页的元数据添加到链表L2的头部,删除所述链表L2尾部的页,用于保持链表L2长度固定。
15.根据权利要求12所述装置,其特征在于,所述装置还包括:
实体处理单元,用于若所述请求页命中所述链表L1中的页,将所述命中的链表L1中的页的访问计数增加1;将所述命中的链表L1中的页移至链表L1的头部。
16.一种缓存管理装置,其特征在于,在缓存中至少包括实体缓存,
所述实体缓存通过多于一条链表维护,
所述装置包括:第三获取单元,第四判断单元,第三删除单元,第三添加单元;
所述第三获取单元,用于获取排在最低位链表的尾部的页为替换候选页;
所述第四判断单元,用于判断所述替换候选页的访问计数是否大于X次;
所述第三删除单元,用于如果不大于X次时,将所述替换候选页从所述排在最低位链表中删除;
所述第三添加单元,用于如果大于X次时,根据各条链表中预置链表信息,将所述候选页添加到对应的链表头部,并将所述替换候选页的访问计数重置为Y次;重复执行所述排在最低位链表的尾部的页为替换候选页的操作,直到将有替换候选页从所述排在最低位链表的尾部删除;
其中,X,Y分别为整数;所述预置链表信息至少包括:被添加的所述替换候选页的访问次数范围,其中,从排在最低位链表到排在最高位链表依次排列的链表中,每条链路要求被添加的所述替换候选页的访问次数依次增加。
17.根据权利要求16所述装置,其特征在于,所述装置还包括:第四获取单元,第五判断单元,第四添加单元,第三计数单元,
所述第四获取单元,用于获取用户选择的请求页;
所述第五判断单元,用于判断所述请求页是否命中所述实体缓存中的页;
所述第四添加单元,用于若所述请求页未命中所述实体缓存中的页时,利用删除的替换候选页而获得的存储空间,将所述请求页添加到排在最高位链表的头部,或者添加到排在最低位链表的尾部;
所述第三计数单元,用于添加所述请求页的访问计数。
18.根据权利要求17所述装置,其特征在于,所述缓存中还包括虚拟缓存,所述虚拟缓存通过链表L2管理维护;
所述第四添加单元,具体包括:第六判断单元,添加头部单元,
所述第六判断单元,用于判断所述请求页是否命中链表L2中的页;
所述添加头部单元,用于若所述请求页命中链表L2中的页时,利用删除的替换候选页而获得的存储空间,将命中的所述链表L2中的页添加到排在最高位的链表的头部;
所述第四添加单元还包括:虚拟添加单元,用于将所述替换候选页的元数据添加到链表L2的头部。
19.根据权利要求18所述装置,其特征在于,所述第四添加单元还包括:添加尾部单元,用于若所述请求页未命中链表L2中的页时,利用删除的替换候选页而获得的存储空间,将所述请求页添加到排在最低位的链表的尾部;
所述第四添加单元还包括:虚拟处理单元,用于将所述替换候选页的元数据添加到链表L2的头部,删除所述链表L2尾部的页,用于保持链表L2长度固定。
20.根据权利要求17所述的方法,其特征在于,所述装置还包括:实体处理单元,若所述请求页命中所述实体缓存中的页,将所述命中的所述实体缓存中的页的访问计数增加1;将所述命中的所述实体缓存中的页移至排在最高位的链表的头部。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310097248.XA CN104077242B (zh) | 2013-03-25 | 2013-03-25 | 一种缓存管理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310097248.XA CN104077242B (zh) | 2013-03-25 | 2013-03-25 | 一种缓存管理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104077242A true CN104077242A (zh) | 2014-10-01 |
CN104077242B CN104077242B (zh) | 2017-03-29 |
Family
ID=51598509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310097248.XA Active CN104077242B (zh) | 2013-03-25 | 2013-03-25 | 一种缓存管理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104077242B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104581344A (zh) * | 2014-12-29 | 2015-04-29 | 深圳创维数字技术有限公司 | 一种菜单界面显示方法及数字电视接收终端 |
WO2017117734A1 (zh) * | 2016-01-06 | 2017-07-13 | 华为技术有限公司 | 一种缓存管理方法、缓存控制器以及计算机系统 |
CN107463509A (zh) * | 2016-06-05 | 2017-12-12 | 华为技术有限公司 | 缓存管理方法、缓存控制器以及计算机系统 |
CN108089998A (zh) * | 2017-12-13 | 2018-05-29 | 郑州云海信息技术有限公司 | 一种Linux分页替换方法及系统 |
CN109086141A (zh) * | 2018-09-19 | 2018-12-25 | 北京京东尚科信息技术有限公司 | 内存管理方法和装置以及计算机可读存储介质 |
CN109190070A (zh) * | 2018-08-01 | 2019-01-11 | 北京奇艺世纪科技有限公司 | 一种数据处理方法、装置、系统及应用服务器 |
CN110674170A (zh) * | 2019-09-05 | 2020-01-10 | 苏州浪潮智能科技有限公司 | 基于链表逆序读取的数据缓存方法、装置、设备及介质 |
CN110941569A (zh) * | 2019-11-18 | 2020-03-31 | 新华三半导体技术有限公司 | 数据处理方法、装置及处理器芯片 |
CN111224831A (zh) * | 2018-11-26 | 2020-06-02 | 中国电信股份有限公司 | 用于生成话单的方法和系统 |
CN115328856A (zh) * | 2022-07-05 | 2022-11-11 | 荣耀终端有限公司 | 一种文件页管理的方法、装置及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07168762A (ja) * | 1991-04-22 | 1995-07-04 | Internatl Business Mach Corp <Ibm> | キャッシュページ置換方法及び装置並びにコンピュータ装置 |
US20040098541A1 (en) * | 2002-11-14 | 2004-05-20 | International Business Machines Corporation | System and method for implementing an adaptive replacement cache policy |
CN102156753A (zh) * | 2011-04-29 | 2011-08-17 | 中国人民解放军国防科学技术大学 | 面向固态硬盘文件系统的数据页缓存方法 |
CN102760101A (zh) * | 2012-05-22 | 2012-10-31 | 中国科学院计算技术研究所 | 一种基于ssd 的缓存管理方法及系统 |
-
2013
- 2013-03-25 CN CN201310097248.XA patent/CN104077242B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07168762A (ja) * | 1991-04-22 | 1995-07-04 | Internatl Business Mach Corp <Ibm> | キャッシュページ置換方法及び装置並びにコンピュータ装置 |
US20040098541A1 (en) * | 2002-11-14 | 2004-05-20 | International Business Machines Corporation | System and method for implementing an adaptive replacement cache policy |
CN102156753A (zh) * | 2011-04-29 | 2011-08-17 | 中国人民解放军国防科学技术大学 | 面向固态硬盘文件系统的数据页缓存方法 |
CN102760101A (zh) * | 2012-05-22 | 2012-10-31 | 中国科学院计算技术研究所 | 一种基于ssd 的缓存管理方法及系统 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104581344B (zh) * | 2014-12-29 | 2019-07-23 | 深圳创维数字技术有限公司 | 一种菜单界面显示方法及数字电视接收终端 |
CN104581344A (zh) * | 2014-12-29 | 2015-04-29 | 深圳创维数字技术有限公司 | 一种菜单界面显示方法及数字电视接收终端 |
WO2017117734A1 (zh) * | 2016-01-06 | 2017-07-13 | 华为技术有限公司 | 一种缓存管理方法、缓存控制器以及计算机系统 |
US10831677B2 (en) | 2016-01-06 | 2020-11-10 | Huawei Technologies Co., Ltd. | Cache management method, cache controller, and computer system |
CN107463509A (zh) * | 2016-06-05 | 2017-12-12 | 华为技术有限公司 | 缓存管理方法、缓存控制器以及计算机系统 |
WO2017211247A1 (zh) * | 2016-06-05 | 2017-12-14 | 华为技术有限公司 | 缓存管理方法、缓存控制器以及计算机系统 |
CN107463509B (zh) * | 2016-06-05 | 2020-12-15 | 华为技术有限公司 | 缓存管理方法、缓存控制器以及计算机系统 |
CN108089998A (zh) * | 2017-12-13 | 2018-05-29 | 郑州云海信息技术有限公司 | 一种Linux分页替换方法及系统 |
CN109190070A (zh) * | 2018-08-01 | 2019-01-11 | 北京奇艺世纪科技有限公司 | 一种数据处理方法、装置、系统及应用服务器 |
CN109190070B (zh) * | 2018-08-01 | 2021-10-15 | 北京奇艺世纪科技有限公司 | 一种数据处理方法、装置、系统及应用服务器 |
CN109086141A (zh) * | 2018-09-19 | 2018-12-25 | 北京京东尚科信息技术有限公司 | 内存管理方法和装置以及计算机可读存储介质 |
CN111224831A (zh) * | 2018-11-26 | 2020-06-02 | 中国电信股份有限公司 | 用于生成话单的方法和系统 |
CN111224831B (zh) * | 2018-11-26 | 2022-03-29 | 中国电信股份有限公司 | 用于生成话单的方法和系统 |
CN110674170A (zh) * | 2019-09-05 | 2020-01-10 | 苏州浪潮智能科技有限公司 | 基于链表逆序读取的数据缓存方法、装置、设备及介质 |
CN110674170B (zh) * | 2019-09-05 | 2022-11-11 | 苏州浪潮智能科技有限公司 | 基于链表逆序访问的数据缓存方法、装置、设备及介质 |
CN110941569A (zh) * | 2019-11-18 | 2020-03-31 | 新华三半导体技术有限公司 | 数据处理方法、装置及处理器芯片 |
CN110941569B (zh) * | 2019-11-18 | 2021-01-26 | 新华三半导体技术有限公司 | 数据处理方法、装置及处理器芯片 |
CN115328856A (zh) * | 2022-07-05 | 2022-11-11 | 荣耀终端有限公司 | 一种文件页管理的方法、装置及电子设备 |
CN115328856B (zh) * | 2022-07-05 | 2023-05-09 | 荣耀终端有限公司 | 一种文件页管理的方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104077242B (zh) | 2017-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104077242A (zh) | 一种缓存管理方法和装置 | |
EP3408748B1 (en) | Adaptive value range profiling for enhanced system performance | |
US7096321B2 (en) | Method and system for a cache replacement technique with adaptive skipping | |
US7089396B2 (en) | Method and profiling cache for management of virtual memory | |
Lv et al. | Operation-aware buffer management in flash-based systems | |
US9372810B2 (en) | Collaborative caching | |
CN104699422A (zh) | 缓存数据的确定方法及装置 | |
CN102314397B (zh) | 缓存数据块的处理方法 | |
CN104503703B (zh) | 缓存的处理方法和装置 | |
CN108984130A (zh) | 一种分布式存储的缓存读取方法及其装置 | |
JP6402647B2 (ja) | データ配置プログラム、データ配置装置およびデータ配置方法 | |
CN110795363B (zh) | 一种存储介质的热页预测方法和页面调度方法 | |
EP3859536B1 (en) | Method and device for buffering data blocks, computer device, and computer-readable storage medium | |
JPH08147218A (ja) | キャッシュ制御装置 | |
Swain et al. | Analysis and predictability of page replacement techniques towards optimized performance | |
CN112799590A (zh) | 一种针对在线主存储重删的差异化缓存方法 | |
Zhou et al. | LEA: A lazy eviction algorithm for SSD cache in cloud block storage | |
JP2016066259A (ja) | データ配置制御プログラム、データ配置制御装置およびデータ配置制御方法 | |
Farooqui et al. | A comprehensive survey of page replacement algorithms | |
Wu et al. | A data management method for databases using hybrid storage systems | |
CN111859038A (zh) | 一种分布式存储系统数据热度统计方法、装置 | |
CN113641681B (zh) | 一种空间自适应的海量数据查询方法 | |
JP6112193B2 (ja) | アクセス制御プログラム、ディスク装置及びアクセス制御方法 | |
Xiao et al. | Dual queues cache replacement algorithm based on sequentiality detection | |
CN116467353B (zh) | 一种基于lru差异化的自适应调节的缓存方法及系统 |
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 |