一种用于缓存节点的缓存置换方法

文档序号:9474387阅读:288来源:国知局
一种用于缓存节点的缓存置换方法
【技术领域】
[0001] 本发明涉及计算机网络传输控制领域,具体地说,本发明涉及一种用于缓存节点 的缓存置换算法。
【背景技术】
[0002] 随着移动和无线网络的不断发展,移动终端数目急剧增加。大量的WLAN (Wireless Local Area Networks,无线局域网络)用户通过AP(Access Point)接入互联网,加剧 了汇聚链路上的网络拥塞,从而进一步降低了实际的可用带宽,导致平均访问延时增加, TCP(Transmission Control Protocol,传输控制协议)吞吐率下降等各种问题。为了缓解 上述问题,提高网络业务服务性能,改善用户上网体验,当前较为通用的一种方式是利用缓 存技术来实现缓存加速。
[0003] 然而,海量的数据访问使得传统的利用缓存服务器等网络边缘设备实现的诸如 CDN(Content Delivery Network,内容分发网络)缓存的方法正逐步受到设备成本和部署 规模的制约,越来越多的研究转移到如何利用网络内部设备来实现缓存。另一方面,APs由 于其庞大的使用规模、广泛的应用场景和自身硬件平台的可编程化以及可外接存储扩展等 特点已经逐渐开始受到研究者们的青睐。APs作为缓存设备在降低开发成本的同时,还能大 大增加对终端用户的服务能力。
[0004] 尽管AP的硬件性能较近年来已经取得了较大的提高,但是整体而言,绝大多数AP 的计算能力以及存储空间还十分有限。例如通用AP的配置如下:CPU频率为400MHz,内存 大小为125MB,存储空间为1GB。这就使得AP的单点缓存策略面临着严峻的性能挑战。
[0005] 此外,考虑到AP硬件设备有限的存储资源,其不可能将所有的用户历史访问记录 全部保存下来,这就必然要求有合适的置换策略来不断更新缓存中的内容,以保证在一定 的存储空间下尽可能大地提高缓存效果。当前主流的缓存替换算法主要考虑了对象访问 时间、对象访问频率、对象大小和缓存内容的老化时间等因素,而综合考虑了如上要素的 ⑶FS (Greedy-Dual-Frequency-Size)算法和Hybrid算法虽然一定程度上解决了基于单要 素替换(如LRU、LFU、SIZE)等算法各自带来的误差以及缓存污染等问题,但是Hybrid混合 策略的高度复杂性使得其不适合APs的应用场景;GDFS中,由于未充分考虑到体积较大对 象对BHR(Byte Hit Ratio,字节命中率)的影响,从而在BHR指标方面仍存在很大改进空 间。

【发明内容】

[0006] 本发明的目的是提供一种能够克服上述技术问题的解决方案。
[0007] 本发明提供了一种用于缓存节点的缓存置换方法,包括:仅将小于预定的最大缓 存对象大小的缓存对象存入所述缓存节点;根据所述缓存节点中存储的缓存对象的参数计 算所述缓存对象的价值;根据所述缓存节点中的所有缓存对象的价值的大小关系,维护所 述缓存节点中所有缓存对象的优先顺序列表;在所述缓存节点所存储的所有缓存对象的总 大小等于所述缓存节点的缓存空间的最大存储量的值的情况下,从所述列表中取出优先顺 序最低的缓存对象进行置换;其中,所述缓存对象的参数,包括:从原始服务器获取所述缓 存对象的代价的参数值、所述缓存对象的大小的参数值、所述缓存对象的被访问频率的参 数值以及所述缓存对象的老化时间的参数值。
[0008] 优选地,将所述缓存对象的实际大小值的对数值作为用于计算所述缓存对象的价 值的所述缓存对象的大小的参数值。
[0009] 优选地,将所述缓存对象被用户再次访问的可能性大小作为用于计算所述缓存对 象的价值的所述缓存对象的被访问频率的参数值。
[0010] 优选地,对所述缓存对象当前的被用户再次访问的可能性的计算依赖于其前一次 被访问的时刻到当前时刻的时间间隔以及其前一次被访问的时刻的被用户再次访问的可 能性。
[0011] 优选地,所述缓存对象的参数还包括,与所述缓存对象上次被访问的实际时间的 微小偏离参数。
[0012] 优选地,在所述缓存节点所存储的所有缓存对象的总大小大于预定的所述缓存节 点的存储空间的上限的情况下,进行所述缓存置换,其中所述缓存节点的存储空间的上限 小于或等于所述缓存节点的缓存空间的最大存储量的值。
[0013] 优选地,所述缓存置换开始之后一直持续,直到所述缓存节点所存储的所有缓存 对象的总大小小于预定的所述缓存节点的存储空间的下限的情况下,停止所述缓存置换, 其中所述缓存节点的存储空间的下限小于所述缓存节点的缓存空间的上限。
[0014] 优选地,在进行所述缓存置换的情况下,还向所述缓存节点的所有兄弟节点查询 是否存储有所述缓存节点置换出的缓存对象,并在所有所述兄弟节点都没有存储所述缓存 对象的情况下,向所有所述兄弟节点发送所述缓存对象。
[0015] 与现有技术相比,本发明提出的技术方案具有以下优点:
[0016] 本发明的技术方案可以有效提高缓存节点的缓存空间的资源利用率和缓存命中 率;提高缓存节点的字节命中率;提高缓存系统的全局命中率。
【附图说明】
[0017] 为了更清楚地说明本发明的技术方案,下面将对实施例描述中所需要使用的附图 作简单地介绍,显而易见地,下面描述中的附图不构成对于本发明的限制。
[0018] 图1是根据本发明的实施例的对象流行度对比示意图;
[0019] 图2是根据本发明的实施例的缓存空间状态示意图;
[0020] 图3是根据本发明的实施例的缓存节点协同环境下的缓存置换方法的流程图。
【具体实施方式】
[0021] 下面将结合附图和具体实施例对本发明做进一步地描述。
[0022] 下面描述根据本发明的实施例的缓存置换方法中对缓存对象价值的计算方法。
[0023] 为了更好的描述根据本发明的下述实施例,现对现有技术中的原始的GDFS算法 进行描述。
[0024] 在原始的GDFS算法中,其基本置换方法是根据取得对象所花费的代价、对象大 小、对象访问频率、对象老化时间来对每一个缓存的对象计算出一个缓存的键值(Key值), 该值表示了缓存该对象的价值,并按照该值对所有已缓存对象按照从大到小的顺序维护一 个优先列表。每次置换操作发生时,从列表尾依次取出对象进行置换。Key值的计算公式如 下公式(1):
[0026] 其中,i表示第i个缓存对象;Key(i)表示第i个对象的价值;Cost(i)表示从原 始服务器上取得第i个对象所需花费的代价,计算时可以用常量代替;Size (i)表示第i个 对象的大小;Freq(i)表示第i个对象的用户访问频率;Age (i)表示第i个对象的老化时 间。
[0027] 下面具体描述根据本发明的实施例的对缓存对象价值的计算方法的改进。
[0028] 根据本发明的一个实施例,对现有技术中的缓存节点对缓存对象的存储附加如下 条件:当缓存对象大于或等于事先定义的缓存对象的大小的最大值Size_时,缓存节点, 例如AP,不对该缓存对象进行存储,直接丢弃该缓存对象。可具体表示为如下公式(2):
[0030] 其中,Sizei表示缓存对象i的大小经计算处理之前的值;Size(i)表示缓存对象 i的大小经计算处理之后的值。
[0031] 根据本发明的一个实施例,具体的Size_可以根据缓存节点(比如AP)的实际存 储空间和用户请求对象的大小来具体确定。例如,经统计,缓存对象中间图片和视频是两 类较大的对象,图片的平均大小约100KB,视频的平均大小约为4M。如果AP的存储空间为 1GB,可以将Size_设置为2倍于平均视频大小,即8M。
[0032] 通过上述改进,可以改进现有技术中的如下情况:所有的新对象由于加入了老化 时间Age(i)而使得其价值Key(i)值较高,从而都会比较容易被缓存节点缓存下来;当存在 非常大的新对象被缓存节点获得需要发生缓存置换时,该新对象会导致众多的较小的缓存 对象被替换出缓存节点的缓存空间;然而根据缓存对象的访问特性可知,较大的缓存对象 被再次访问的概率会降低;这就使得对非常大的对象的缓存会明显降低缓存节点的缓存命 中率。
[0033] 通过前述改进,直接排除对部分过大的缓存对象进行存储,从而可以有效提高缓 存节点的缓存空间的资源利用率和缓存命中率。
[0034] 根据本发明的一个实施例,对现有技术中的原始的GDFS算法(前述公式(1))中 的Size (i)参数做如下改进:对Size (i)做取对数处理,即以logx Size代替原本的Size参 数,以使得到的新的关于缓存对象的大小的参数值对缓存对象的Key值影响相对降低。可 具体表示为如下公式(3):
[0035] Size (i) = logx Size; (3)
[0036] 其中,x>l,进一步可选地,x = 2 ;Sizei表示缓存对象i的大小经计算处理之前的 值;Size (i)表示缓存对象i的大小经计算处理之后的值。
[0037] 通过上述改进,可以改进现有技术中的如下情况:由于原始的GDFS算法的公式 中,越大的对象计算出来的Key值越小,进而导致其被置换出去的可能性越大,也就是说, 越大的对象被缓存节点缓存的概率越小,故而,随着较大的对象的缓存概率降低,导致缓存 节点的字节命中率也随之降低。
[0038] 通过前述改进,可利用对数函数的性质有效缩小不同大小的缓存对象之间key值 的差距,进而提高缓存节点的字节命中率。
[0039] 根据本发明的的一个实施例,将前述改进同时加入原始的⑶FS算法(公式(1)) 中,可以如下公式(4)表示:
[0041] 其中,χ>1,进一步可选地,X = 2 ;Sizei表示缓存对象i的大小经计算处理之前的 值;Size (i)表示缓存对象i的大小经计算处理之后的值;Sizemax为事先定义的缓存对象的 大小的最大值,即缓存对象超过此大小即被直接丢弃。
[0042] 通过上述改进,既可以直接排除对部分过大的缓存对象进行存储,从而有效提高 缓存节点的缓存空间的资源利用率和缓存命中率,同时利用对数函数的性质有效缩小不同 大小的缓存对象之间key值的差距,进而兼顾缓存节点的字节命中率。
[0043] 根据本发明的一个实施例,对现有技术中的原始的GDFS算法(前述公式(1))中 的Freq(i)参数的计算可以进行如下改进:将缓存对象i的Freq(i)值重新定义为缓存对 象i当前的流行度,即缓存对象i被用户再次访问的可能性大小。具体而言,将对缓存对象 i当前的Freq(i)的计算与其前一次被访问的时刻到当前时刻的时间间隔以及其前一次被 访问的时刻的Freq(i
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1