专利名称:缓存对象老化的方法和装置的制作方法
技术领域:
本发明涉及计算机技术领域,具体而言,涉及一种缓存对象老化的方法和装置。
背景技术:
在采用缓存技术的系统中,如果磁盘空间不足,需要老化未来价值最小的缓存对 象,此缓存对象可以是一个具体的文件。缓存对象执行老化的过程可以是删除未来价值最 小的缓存对象,或将未来价值最小的缓存对象所占用的空间设置可以覆盖的标记。未来价 值主要由两个因素决定被访问的概率和对象的大小。被访问的概率越大,则该缓存对象的 未来价值越大;对象占用的空间越大,未来价值越小,因为在相同的磁盘空间内,存储的缓 存对象越多,缓存命中率越高,磁盘空间产生的价值越大。目前衡量一个缓存老化算法的指标主要有1、缓存命中率,缓存对象的命中的次数与用户总的请求次数的比值。2、字节命中率,缓存对象命中的字节数与用户总的请求字节数的比值。3、空间命中率,已使用的缓存空间与缓存总空间的比值。4、响应时间,用户发出一个请求到用户收到响应数据的时间。基于上述的衡量缓存老化的参考指标,目前常见的缓存老化算法有LRU,LFU,SIZE寸。LRU算法将近期最久未被访问的缓存对象删除,由于只考虑了对象的时间特征,效 率并不高。LFU算法将使用频率最低的缓存对象删除,该算法存在缓存污染问题,即当缓存 对象的访问次数较大时,即使该对象已经过时,也会保存较长时间。SIZE算法认为相同的磁 盘空间存储的缓存对象数越大,磁盘空间产生的价值越大,因此选择将占用空间最大的缓 存对象删除,该算法同样存在缓存污染问题,即一些小数据的缓存对象虽然已经过时但仍 然长时间保存在缓存中。将上述的缓存老化算法应用到计算机设备中,还会存在一些小数据的缓存对象, 虽然已经长时间没用,但仍然未被老化,导致缓存利用率较低。
发明内容
本发明的主要目的在于提供一种缓存对象老化的方法和装置,以至少解决上述计 算机设备中由于长时间不用的缓存对象未被老化,导致缓存利用率低的问题。根据本发明的一个方面,提供一种缓存对象老化的方法,包括预测每个缓存对象 在下个周期内被访问的概率;对于每个所述缓存对象,根据其下个周期内被访问的概率、所 占用空间的权值来设置价值权值;老化所述价值权值最小的缓存对象。根据本发明的另一个方面,还提供一种缓存对象老化的装置,包括预测模块,用 于预测每个缓存对象在下个周期内被访问的概率;权值设置模块,用于对于每个所述缓存 对象,根据其下个周期内被访问的概率、所占用空间的权值来设置价值权值;老化模块,用 于老化所述价值权值最小的缓存对象。
由于在老化操作过程中,采用之前的访问概率对下一次的访问概率进行了预测, 并权衡了缓存对象所占用的空间,从而将计算机设备中由于长时间不用的缓存对象老化, 提高了缓存利用率。
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是本发明的实施例一的流程图;图2是本发明的实施例二的流程图;图3是本发明的实施例二中第一种采样时间与采用周期的示意图;图4是本发明的实施例二中第二种采样时间与采用周期的示意图;图5是本发明的实施例二中第三种采样时间与采用周期的示意图;图6是本发明的实施例三的结构示意图。
具体实施例方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的 情况下,本申请中的实施例及实施例中的特征可以相互组合。下面结合附图详细说明本发明的各个实施例,参见图1所示的实施例一的流程 图,包括以下步骤Sll 预测每个缓存对象在下个周期内被访问的概率;预测下个周期内被访问的概率可采用多种方式,如采用前一个周期的概率来进行 预测,或采用之前的多个周期的概率预测。S12:对于每个所述缓存对象,根据其下个周期内被访问的概率、所占用空间的权 值来设置价值权值;在考虑选择缓存对象进行老化的过程中,不仅仅需要考虑其下个周期被访问的概 率、还需要考虑缓存对象所占用的空间,从这两个方面衡量其价值权值。S13 老化所述价值权值最小的缓存对象。按照价值权值,老化其中的缓存对象,对于价值权值较高的缓存对象,其未来访问 的可能性也越大;对于价值权值较低的缓存对象,其未来访问的可能性也越小。老化缓存对 象时,可以选择部分老化,也可以选择价值权值最小的老化,还可以全部老化。由于在老化操作过程中,采用之前的访问概率对下一次的访问概率进行了预测, 并权衡了缓存对象所占用的空间,从而将计算机设备中由于长时间不用的缓存对象老化, 提高了缓存利用率。对于本发明,还可以有多种方式进行选择待老化的缓存对象,下面给出优选地实 施例详细说明。参见图2所示流程图,包括以下步骤S21 对所有的缓存对象的大小规范化处理。为了避免缓存对象间大小的差异弱化缓存对象间被访问的概率差异,需要对每个 缓存对象的size做规范化处理。所谓规范化处理是指将所有数据控制在一定的范围内,归 一化是一种典型的规范化处理,即将所有数据控制在0到1之间。本专利将每个缓存对象所占的空间控制在0. 5到1之间,计算公式如下 ~S 其中,S是缓存对象的占用的空间大小,Sfflax是各个缓存对象中的最大的缓存对象 所占用的空间大小。规范化处理后,获得数据对象所占用空间对应的权值;。当然,也可直接采用缓存 对象所占用的空间执行后续步骤。S22 判断采样周期是否到时,如果是,则执行步骤S23 ;否则继续判断。S23 选择预测模型并确定系数。在选择预测模型时,可选择指数模型预测下一周期内缓存对象被访问的概率。在 选择指数模型中,单位时间内缓存对象被访问的概率与用户发出的请求次数是正相关的, 指数模型的公式如下ρ = ceat其中,c,a是待定参数,P为被预测的下一个周期被访问的概率。非线性回归模型通常可以通过适当的变换,转化为线性回归模型。对于上述的指 数模型,可对两边取对数得到 令彳则有y = at+b其中,a,b是常数; 此时,非线性模型已经转换为一元线性回归模型,只需要确定其中的参数a,b即可。最后,缓存数据在下个周期被访问的概率的预测模型转换为;7 = eatn+]+b,其中, tn+1为第N+1个周期的结束时刻。S24 判断是否满足老化条件,如果是,则执行步骤S25,否则继续判断;老化条件可由计算机设备定时发出、或在预定的时间间隔发出、或磁盘空间达到 一定负荷后发出等多种方式。S25 依次判断是否还有缓存对象未设置价值权值,如果是,则执行S26 ;如果否, 则执行S29。S26 运算预测概率所需要的系数。对于步骤S23中的系数a、b,可以采用最小二乘法估计。方法是计算使误差项的 平方和F(a,b)最小 根据最小二乘原理,应取a和b使F (a, b)有极小值,即a,b应满足如下方程的条 件
6
由方程组解得系数a和b : 其中,在运算系数a和b的过程中,公式尸0,^) = Σ (dtk +办_ h)2中的K为
η个周期中一个,yk为在这个周期内,数据对象被访问的概率P,此概率P可以采用上一次预 测得到的概率,优选地,采用每个周期内数据对象被访问的统计概率。缓存对象的统计概率,需要为每个缓存对象维护一个N元数组,记录最近N个周期 中每个周期的访问概率P。
_ nt定义缓存对象f在时刻t被访问的概率P为= i其中,nt是缓存对象f在每个周期的(t-At,t)时间内被访问的次数;Nt是在 (t-At, t)时间内用户发出的总的请求次数;At是固定的时间区间长度。适合回归分析的数据应该具有一定的连续性,即能够用一条光滑的曲线将大部分 的数据点连接起来。数据的该性质可以通过选取合适的At来保证。At有三种选取方案方案(1) At < T,参见图3,连续两个At之间间隔一定时间;方案⑵At = T,参见图4,连续两个At首尾相接;方案(3) At > T,参见图5,连续两个At部分重叠。其中,T是采样周期,即T = tk+「tk方案(1)是常用的选取方案,由于客户访问请求的到达属于随机事件,周期内被 访问的次数是随机的,从而缓存对象被访问的概率也具有很大随机性,因此可能出现相邻 数据间巨大差异,不适合做回归分析。方案⑵也有方案⑴的问题,即无法保证数据的连续性。方案(3)中,由于连续两个At部分重叠,因此可以保证一定的连续性。通过调整 重叠部分的大小可以调节连续性的强弱。重叠部分越多,数据的连续性越好。连续两个At 保持50%的重叠。这样既保证了一定的连续性,又便于实现。由于在步骤S23中,已经推导出在指数模型中,y = In P,这里的概率P采用统计的概率,即Pt,再将用统计的概率Pt代入到公式
,从而获得
系数a和b。回归分析是通过η个周期的已知数据,预测下一个数据,这里的η就是回归规模。 η值过小,回归分析的结果精度不高,但是η值过大又会消耗更多的内存和CPU资源,并且影 响运行效率。一般将η值控制在4 15之间较为合适。S27 按照系数预测下一个周期数据对象被访问的概率。使用步骤S26得到的系数a和b代入到步骤S23中的公式;?=已㈣—^中,预测
出第N+1个周期,即下一个周期的概率。S28 设置缓存对象的价值权值。S28 设置缓存对象的价值权值。缓存对象的价值权值fv由访问概率、优先级因子和缓存对象所占用的空间大小
决定,并通过以下公式获得 其中,μ是优先级因子;ρ是访问概率,取值范围为(0,1), 是缓存对象的大小经 规范化处理后的权值。即步骤S21中的权值。优选地,对于优先级因子μ是针对分片的优化,每个分片可以对应一个数据对 象,在一个流媒体文件的所有分片中,首分片的被请求的概率最大,因为大部分对文件的请 求是从首分片开始的。因此适当提高首分片的优先级,可以让系统优先保留的首分片,从而 提高请求的响应时间。当然,不加入优先级因子也不会影响本发明的实现。首分片的优先 级因子为1,其余分片的优先级为0. 8-0. 6之间。在实施例二中,由于在老化操作过程中,采用之前的访问概率对下一次的访问概 率进行了预测,并权衡了缓存对象所占用的空间、以及每个缓存对象的优先级,从而将计算 机设备中由于长时间不用的缓存对象老化,提高了缓存利用率。上面详细描述了本发明的方法实施例,对于本发明的方法实施例中的各个方案, 可以集成在各种模块中,下面给出优选地的装置实施例三详细说明本发明的装置。参见图 6所示的装置实施例,包括预测模块61,用于预测每个缓存对象在下个周期内被访问的概率;权值设置模块62,用于对于每个所述缓存对象,根据其下个周期内被访问的概率、 所占用空间的权值来设置价值权值;老化模块63,用于老化所述价值权值最小的缓存对象。优选地,所述预测模块61包括统计概率模块611,用于在当前周期结束后,获得每个所述缓存对象包括所述当前 周期的之前N个周期内,每个周期内被访问的概率值;运算模块612,用于使用所述N个概率值通过指数预测模型运算,获得所述每个所 述缓存对象在下个周期内被访问的概率。优选地,还包括优先级模块64,用于在所述权值设置模块62将所述比值作为所述价值权值之前,控制所述权值设置模块62按照所述缓存对象对应的优先级数值,将所述比值扩大相应的 倍数,将扩大后的比值作为所述价值权值。优选地,还包括比例控制模块65,用于设置老化数量的比例,控制所述老化模块按照所述价值权 值从小到大的顺序,老化相应数量的所述缓存对象。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用 的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成 的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储 在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示 出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或 步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技 术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修 改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
一种缓存对象老化的方法,其特征在于,包括预测每个缓存对象在下个周期内被访问的概率;对于每个所述缓存对象,根据其下个周期内被访问的概率、所占用空间的权值来设置价值权值;老化所述价值权值最小的缓存对象。
2.根据权利要求1所述的方法,其特征在于,所述预测每个缓存对象在下个周期内被 访问的概率的过程包括在当前周期结束后,获得每个所述缓存对象包括所述当前周期的之前N个周期,每个 周期被访问的概率值;所述概率值在大于所述周期的预定时间段内,所述缓存对象的访问次数与请求次数的 比值;其中,所述预定的时间段为(t_At,t),At >T,t为时间点,At为时间间隔,T为周 期;使用所述N个概率值通过指数预测模型运算,获得所述每个所述缓存对象在下个周期 内被访问的概率。
3.根据权利要求2所述的方法,其特征在于,所述通过指数预测模型运算,获得所述下 个周期内被访问的概率的过程包括通过指数模型进行运算,将运算的结果作为下个周期被访问的概率;其中,tn+1为第N+1个周期的结束时刻; 所述a、b由所述N个概率值通过公式Σ (atk +b~ ;^)2按照最小二乘法确定得出; 其中,0彡K彡n,y = at+b。
4.根据权利要求1所述的方法,其特征在于,所述设置价值权值的过程包括运算所述下个周期内被访问的概率与所占用空间的权值之间比值,将所述比值作为所 述价值权值。
5.根据权利要求4所述的方法,其特征在于,所述占用空间的权值通过以下公式获得 其中,S是当前缓存对象所占用空间的大小,Sfflax是所述各个缓存对象中占用空间最大 的缓存对象所占用空间的大小,;;是所述当前缓存对象占用空间的权值。
6.根据权利要求4所述的方法,其特征在于,将所述比值作为所述价值权值之前,还包括按照所述缓存对象对应的优先级数值,将所述比值扩大相应的倍数,将扩大后的比值 作为所述价值权值。
7.根据权利要求1所述的方法,其特征在于,所述老化价值权值最小的缓存对象之后, 还包括设置老化数量的比例,按照所述价值权值从小到大的顺序,老化相应数量的所述缓存对象。
8.一种缓存对象老化的装置,其特征在于,包括预测模块,用于预测每个缓存对象在下个周期内被访问的概率;权值设置模块,用于对于每个所述缓存对象,根据其下个周期内被访问的概率、所占用 空间的权值来设置价值权值;老化模块,用于老化所述价值权值最小的缓存对象。
9.根据权利要求8所述的装置,其特征在于,所述预测模块包括统计概率模块,用于在当前周期结束后,获得每个所述缓存对象包括所述当前周期的 之前N个周期内,每个周期内被访问的概率值;运算模块,用于使用所述N个概率值通过指数预测模型运算,获得所述每个所述缓存 对象在下个周期内被访问的概率。
10.根据权利要求8所述的装置,其特征在于,还包括优先级模块,用于在所述权值设置模块将所述比值作为所述价值权值之前,控制所述 权值设置模块按照所述缓存对象对应的优先级数值,将所述比值扩大相应的倍数,将扩大 后的比值作为所述价值权值。
11.根据权利要求8所述的装置,其特征在于,还包括比例控制模块,用于设置老化数量的比例,控制所述老化模块按照所述价值权值从小 到大的顺序,老化相应数量的所述缓存对象。
全文摘要
本发明公开了一种缓存对象老化的方法和装置,本发明的方法包括预测每个缓存对象在下个周期内被访问的概率;对于每个所述缓存对象,根据其下个周期内被访问的概率、所占用空间的权值来设置价值权值;老化所述价值权值最小的缓存对象。本发明还公开了一种缓存对象老化的装置。本发明由于在老化操作过程中,采用之前的访问概率对下一次的访问概率进行了预测,并权衡了缓存对象所占用的空间,从而将计算机设备中由于长时间不用的缓存对象老化,提高了缓存利用率。
文档编号G06F12/08GK101887400SQ20101022054
公开日2010年11月17日 申请日期2010年6月24日 优先权日2010年6月24日
发明者周扬, 彭永祥, 李林, 段翰聪, 胡云鹏 申请人:中兴通讯股份有限公司;电子科技大学