一种基于内容价值的缓存替换方法与流程

文档序号:16097579发布日期:2018-11-27 23:46阅读:332来源:国知局

本发明涉及一种缓存替换方法,尤其涉及一种基于内容价值的缓存替换方法,属于通信技术领域。



背景技术:

随着互联网技术的高速发展,网络信息和用户上网接入设备数量剧增,导致网络流量呈指数级增长,这种爆炸式的流量增长给基于端到端的网络之间互连的协议(Internet Protocol,IP)网络体系结构带来了巨大的挑战和压力。为了解决移动网络中巨大的数据流量带来的冲击,研究者们提出了以内容为中心的全新网络架构——内容中心网络(Content-Centric Networking,CCN)。在内容中心网络中,每一个节点都具有缓存功能,通过将流行内容长时间缓存在距离用户较近的节点上,可以有效的缓解回传链路带宽的压力,降低网络时延从而改善用户的体验质量。

然而,每个节点的缓存容量是有限的,当缓存空间被占满后,必须根据一定的替换策略将缓存中价值较小的内容清理出来,存放新的有意义的数据,以提高缓存空间的请求命中率,由此可见,合理地对缓存内容进行管理和置换是影响网络整体性能的关键。

传统的缓存替换算法有先进先出算法(first in first out,FIFO)、最近最少使用替换算法(least frequently used,LFU)、最近最久未使用替换算法(least recently used,LRU)以及内容大小替换算法(SIZE)等。其中,FIFO根据队列先进先出的规则,将最先进入缓存空间的数据置换出去,这种算法复杂度低,容易实现,但请求命中率较低。LRU算法总是将最久未被访问的资源替换出缓存,认为最近被访问的数据在不久的将来被访问的概率也比较高,该算法仅从最近的请求时间上来考虑置换数据,当内容流行分布发生变化时,适应性能下降。通过统计缓存内容在过去一段时间内的访问频率,LFU替换策略认为频率高的资源其使用价值就越高,因此当缓存空间不足时,总是替换访问频率最低的内容,该算法也存在缓存污染问题,即过去访问频率高的内容即使现在不再被访问依然占据缓存空间,致使缓存空间的利用率降低。SIZE算法根据内容的大小置换数据,优先将字节数大的数据替换出去,但这种算法没有考虑访问时间间隔、缓存命中次数等因素,可能会使价值不高的小字节对象长时间保留在缓存空间中,从而降低命中率。

以上算法的设计略显片面,均采用单一目标函数来确定缓存替换对象已经不能满足多样化的网络数据需求。最近最少使用最久未使用替换算法(least frequently recently used,LFRU)将LRU和LFU算法结合,该算法综合考虑了内容的请求频率和最近访问的时间,但是未考虑内容的全局流行度。基于大小的贪婪对偶算法(Greedy-Dual Size,GDS)综合考虑了对象大小、缓存代价以及内容的年龄因子,给缓存空间的每个文件设置权重,每次替换权重最小的对象,但是该算法未考虑缓存对象过去被访问的次数。Ma T等人提出了一种改进的基于大小频率的加权贪婪对偶算法(Weighted Greedy Dual Size Frequency,WGDSF)缓存替换策略,该策略在GDS算法的基础上加入了基于时间的加权频率参数和加权文件类型参数,虽然性能有所提升,但是也极大地增加了算法复杂度。基于蚁群算法的缓存替换算法(Ant Colony Algorithm based Cache Replacement Algorithm,ACACRA)算法则是用数据对象大小表示背包重量,对象平均被请求的次数表示存储价值,借鉴0/1求解背包问题的蚁群算法来确定替换内容,但是该算法复杂度高,适用于计算机的应用层。

综上所述,如何在缓存空间的有限的情况下,合理地对缓存内容进行置换就本领域技术人员亟待解决的问题。



技术实现要素:

本发明的目的是为了解决现有技术的上述缺陷,提供了一种基于内容价值的缓存替换方法,该算法综合考虑了内容的动态流行度、缓存代价以及缓存内容最近被请求的时间来确定缓存对象的存储价值,当缓存空间不足时,将价值最小的数据置换出去。该方案能够有效地提高缓存命中率,减少用户获取数据的平均跳数。

本发明的技术解决方案是:

一种基于内容价值的缓存替换方法,包括如下步骤:

S1:统计更新每个周期内容的流行度,根据上个周期内容的流行度以及该周期内缓存内容的命中率来计算当前周期内的内容流行度;

S2:根据节点计算每个内容的缓存代价;

S3:在缓存空间中设计一个时间标签,并用时间标签记录内容最近一次被访问的时间,然后计算出内容最近一次被访问的时间和当前时间的时间间隔;

S4:根据步骤S1中的流行度,步骤S2中的缓存代价及步骤S3中的最近访问时间间隔,计算缓存空间中每个内容的价值,当缓存空间不足时,节点将替换掉价值的最小值。

优选地,所述步骤S1中的流行度的计算公式为:

pr(t)=αpr(t-1)+(1-α)hr(t)

其中,r为缓存空间中内容的编号,pr(t)表示内容r在当前周期内的流行度,pr(t-1)表示内容r在上一个周期内的流行度,α是衰减因子,为上一个周期的流行度在当前周期所占的比例,0<α<1,hr(t)表示内容r在当前周期内的命中率,Nr(t)表示当前周期内内容r被命中的次数,NQ(t)表示当前周期内节点收到的总请求数。

优选地,所述步骤S2中的缓存代价包括传输成本与缓存成本,内容的传输成本大于缓存成本;所述缓存代价的计算公式为:

其中,Hopr表示内容r距离源服务器的跳数,表示内容r单跳的传输成本,表示内容r的缓存成本。

优选地,所述步骤S3中的时间间隔的计算公式为:

tinter=tcur-told

其中,tinter表示内容最近一次被访问的时间和当前时间的时间间隔,tcur表示当前时间,told表示内容最近一次被请求的时间。

优选地,所述步骤S4中的价值的计算公式为:

其中valuer(t)为价值。

优选地,所述步骤1、所述步骤2、所述步骤3及所述步骤4中的内容的数据包类型包括兴趣包和数据包;

优选地,所述兴趣包包括请求内容的名字,由请求客户发出,被传输到有请求资源的邻近节点或源服务器,并产生相对应的数据包;

所述数据包包括数据对象、内容名字以及发布者的签名信息,并沿着兴趣包的反向路径传送给用户。

优选地,所述步骤S2、步骤S4中的节点包括内容存储器、转发信息库及未决请求表。

优选地,所述内容存储器存储到达节点上的数据,缓存下来的内容满足未来对该数据的请求;转发信息库目标字段为内容名称的前缀;未决请求表记录正在传输的路由状态信息。

本发明提供了一种基于内容价值的缓存替换方法,该方法可以根据用户的访问行为,动态更新内容的流行度,利用内容的请求时间间隔实时调整内容的流行度和缓存代价在价值函数中所占的比重,不仅能够将高流行度的内容提前缓存下来,而且对高缓存代价的内容也有很好的响应,从而有效地提高了节点数据替换的准确性,有利于提高内容中心网络的数据传输效率,改善用户的上网体验。

以下便结合实施例附图,对本发明的具体实施方式作进一步的详述,以使本发明技术方案更易于理解、掌握。

附图说明

图1是本发明中实施例的流程图;

图2是本发明中兴趣包的处理流程图;

图3是本发明中数据包的处理流程图。

具体实施方式

一种基于内容价值的缓存替换方法,包括如下步骤:

S1:统计更新每个周期内容的流行度,根据上个周期内容的流行度以及该周期内缓存内容的命中率来计算当前周期内的内容流行度;

所述流行度的计算公式为:pr(t)=αpr(t-1)+(1-α)hr(t)

其中,r为缓存空间中内容的编号,pr(t)为内容r在当前周期内的流行度,pr(t-1)为内容r在上一个周期内的流行度,α是衰减因子,为上一个周期的流行度在当前周期所占的比例,0<α<1,hr(t)表示内容r在当前周期内的命中率,Nr(t)表示当前周期内内容r被命中的次数,NQ(t)表示当前周期内节点收到的总请求数。

S2:根据节点计算每个内容的缓存代价;缓存代价包括传输成本与缓存成本,内容的传输成本大于缓存成本;所述缓存代价的计算公式为:

其中,Hopr表示内容r距离源服务器的跳数,Hopr越大,传输成本越高,内容的存储价值就越大,表示内容r单跳的传输成本,表示内容r的缓存成本。

S3:在缓存空间中设计一个时间标签,并用时间标签记录内容最近一次被访问的时间,然后计算出内容最近一次被访问的时间和当前时间的时间间隔;所述时间间隔的计算公式为:tinter=tcur-told,其中,tinter表示内容最近一次被访问的时间和当前时间的时间间隔,tcur表示当前时间,told表示内容最近一次被请求的时间。

S4:根据步骤S1中的流行度,步骤S2中的缓存代价及步骤S3中的最近访问时间间隔,计算缓存空间中每个内容的价值,当缓存空间不足时,节点将替换掉价值的最小值。价值的计算公式为:

其中valuer(t)为价值。

在本发明的技术方案中,所述步骤1、所述步骤2、所述步骤3及所述步骤4中的内容的数据包类型包括兴趣包(interest packet)和数据包(data packet),兴趣包包括请求内容的名字,由请求客户发出,被传输到有请求资源的邻近节点或源服务器,并产生相对应的数据包;所述数据包包括数据对象、内容名字以及发布者的签名信息,并沿着兴趣包的反向路径传送给用户。

所述步骤S2、步骤S4中的节点包括内容存储器(Content Store,CS)、转发信息库(Forwarding Information Base,FIB)和未决请求表(Pending Interest Table,PIT),所述内容存储器存储到达节点上的数据,缓存下来的内容满足未来对该数据的请求;转发信息库目标字段为内容名称的前缀;未决请求表记录正在传输的路由状态信息。

为了更好的说明本发明的技术方案,下面结合附图对本发明的具体实施方式进行详细描述。

CCN不再关心内容存放的位置,而只关注数据本身,该结构中的数据报文以内容名称作为标识而不是传统的IP地址,CCN包括两种数据包类型:兴趣包和数据包。兴趣包由请求客户发出,其中携带请求内容的名字,但不包含目的地址,兴趣包被路由到有请求资源的邻近节点或源服务器后,产生相对应的数据包,数据包中携带数据对象、内容名字以及发布者的签名信息,它会沿着兴趣包的反向路径传送给用户。

CCN的节点包括CS、FIB和PIT。CS存储到达节点上的数据对象,缓存下来的内容可以用来满足未来对该数据的请求,从而减少内容的重复传输。FIB类似传统的传输控制协议/因特网互联协议(Transmission Control Protocol/Internet Protocol,TCP/IP)网络架构中的IP路由表,但目标字段是内容名称的前缀。PIT记录正在传输的路由状态信息。如图1所示,当节点上有兴趣包到达时,首先会查询CS中是否存储了该兴趣包对应的内容,如果有就将内容沿着兴趣包的到达路径直接发送给请求者,同时丢弃该兴趣包。如果缓存中没有该内容,节点会继续查询PIT中是否有与内容名对应的条目,如果存在就将请求接口添加到对应的接口列表中,然后将该请求兴趣包丢弃,否则创建一条新的PIT条目并查询FIB,将兴趣包按照匹配的端口转发到邻近的CCN节点,若FIB中没有匹配的条目,则将兴趣包丢弃或转发到默认的端口。

如图2所示,当数据包到达时,节点会查询PIT中是否存在与该内容对应的条目,若存在则将数据内容从条目的接口列表中转发出去,并删除对应的PIT表项,然后根据相应的缓存替换策略将该数据存储在CS中。

在CCN中,内容的流行度能够很好的反应用户对内容的需求情况。由于用户对数据请求的时变性,网络中文件内容的流行度总是不停地发生变化,例如缓存中的某些内容在当前时间段内受到用户的高度关注,流行度很高,但是随着时间的流逝,这部分内容很可能变成用户较少访问的对象,流行度下降。因此,受用户访问行为的影响,网内节点上存储的内容的流行度是动态变化的,即需要在每个周期内对内容的流行度进行统计更新。为了准确预测其变化,本文在每个路由器节点中,为缓存空间中的每项内容设计一个计数器,用来统计每个周期内该内容被命中的次数,同时设计一个总计数器来统计节点收到的总请求数。然后基于指数加权移动平均算法(EWMA),根据上个周期内容的流行度以及当前周期内该内容的命中率来计算当前周期内容的流行度,流行度的计算公式为:pr(t)=αpr(t-1)+(1-α)hr(t)

其中,r为缓存空间中内容的编号,pr(t)表示内容r在当前周期内的流行度,pr(t-1)表示内容r在上一个周期内的流行度,α是衰减因子,0<α<1,表示上一个周期的流行度在当前周期所占的比例,hr(t)表示内容r在当前周期内的命中率,Nr(t)表示当前周期内内容r被命中的次数,NQ(t)表示当前周期内节点收到的总请求数。

内容所在节点距离内容源服务器的跳数越大,越能降低用户获取内容的请求跳数,因此在缓存替换过程中尽量避免将距源服务器较远的内容替换掉。缓存代价主要由传输成本和缓存成本两部分组成,计算公式为:

其中,Hopr表示内容r距离源服务器的跳数,Hopr越大,传输成本越高,内容的存储价值就越大,表示内容r单跳的传输成本,表示内容r的缓存成本,内容的传输成本远远大于其缓存成本。

本发明在最近最久未使用替换算法的基础上为节点中的每项内容设计了一个时间标签,用来记录该内容最近一次被访问的时间,假设当前时间为tcur,内容最近一次请求的时间为told,则:tinter=tcur-told,时间间隔tinter越短,说明该内容在当前时间段内被请求的频率越高,内容的存储价值主要取决于内容的流行度,而当间隔tinter越长时,影响内容价值的主要因素就是内容的缓存代价,内容的流行度作为次要因素。基于以上分析,内容的价值公式为:

由内容的价值公式可以看出如果短时间内该数据被频繁请求,那么时间间隔tinter很小,用户对该内容的关注度很高,说明此时该数据对象的流行度很高,应将其作为影响缓存内容价值的主要因素,反之当间隔tinter很大时,说明该内容最近被请求的次数较少,内容的流行度下降,此时应将内容的缓存代价作为影响价值函数的主要因素,将内容流行度作为次要影响因素。该缓存替换方法利用内容被请求的时间间隔作为权重因子,可以实时调整数据的流行度和缓存代价在价值函数中所占的比重,从而不仅能将高流行度的内容缓存在节点中,而且对高请求代价的数据也有很好的响应,使网络中存储的数据更加合理。

图3给出了本发明中的具体算法流程,当节点收到用户的请求后首先判断请求对象是否在CS中,如果在内容存储器就将该内容的命中次数和节点的总请求数都加1,更新内容的请求时间,然后将内容直接发送给用户。若节点上未缓存该内容,则转发兴趣包,从邻近的节点或源服务器中获取内容,将内容发送给用户。判断该节点上是否有足够的空间缓存该数据对象,如果有就将内容存储在CS中,并初始化该内容的命中次数、请求时间,记录数据包到达本节点经过的跳数。若缓存空间不足,则根据当前周期内的内容的流行度、缓存代价以及内容的请求时间间隔计算出每个内容的价值,按价值从小到大进行替换,直到有足够的空间存放新的内容。

本发明提供的一种基于内容价值的缓存替换方法,该方法综合考虑了内容的动态流行度、缓存代价以及最近被请求的时间,构建了更实际的内容价值函数,并依据该内容价值函数,设计了有效的内容存储与置换方案。具体地,当更新的缓存内容与已有内容不匹配时,对已有缓存内容按照价值从小到大进行置换。这种方法与传统算法相比,有效地提升了网络节点的缓存内容命中率,降低了用户获取内容的平均跳数。

应该注意的是,上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1