内容中心网络下的缓存替换机制研究

关于缓存替换机制的问题主要有:

1、当替换发生时,替换哪些数据比较合适?

对于这个问题,可以通过一些算法,计算出缓存中每个数据块的价值,每次替换价值最小的数据。关于如何计算缓存数据的价值问题将在下面进行介绍。

由于不同的节点可能存储相同的的数据,因而在替换数据时,不仅考虑当前路由器的状态,同时也通过缓存协同,在了解了周围路由器的信息后再做替换决策。而要实现缓存的协同,路由器中需要保存与它交互的路由器中的信息,比如,我们在每个路由器中建立一个索引表,它记录了与之交互的路由其中保存的缓存信息。

假如有一个路由器R1,现在有一个数据块O3到达R1,这时数据块O3需要存储到路由器R1中,但此时R1中没有剩余的存储空间,这样就需要将R1中价值最小的数据块删除或移动到热度低的节点。一般来说,流行度高的资源我们尽量将它移动到网络的边缘节点,而流行度低的资源我们趋向于将其移动到距离用户相对较远的节点。

关于路由器中数据块价值的计算方法,我们使用如下公式进行计算:

      Vnew=Vold+€

其中Vnew表示数据块计算后的价值,Vold表示计算数据块原来的价值,€代表价值的变化

2、缓存内容的价值何时进行刷新?

这个问题主要是研究缓存内容的刷新方式,主要有以下几种:

1) 周期刷新法。在路由器缓存中设置缓存刷新周期,在每个周期结束时,对路由中的所有缓存数据块的价值全部重新刷新一次。此方法的缺点在于,可能导致计算量很大,降低路由器整体性能;另外如果刷新周期过长会导致真正有价值的数据被移除,而价值不大的数据被保存。

  2) 替换刷新法。在每次发生替换前先刷新一遍缓存,即更新当前缓存中内容的价值。然后找出价值最低的数据进行替换。此方法的缺点在于,当替换发生频繁时,对缓存的刷新也非常的频繁,这可能导致很大的计算开销,从而降低的路由器的整体性能。

3)替换刷新法改进版1。此方法主要是为了解决方法2)中存在的缺点。在进行替换前,先设置一个最小刷新周期Tm。并且记录上次刷新时间t1,当需要发生替换时,首先判断当前时间t2距离上次刷新时间t1之间的差值是否大于我们原来设定的最小刷新周期Tm

  若Tm≥Δt,则不刷新直接将缓存中价值最小的数据进行替换。

  若Tm<Δt,则先将缓存进行刷新,然后再进行替换。

  这样就可以大大减少缓存替换频繁所带来的刷新频繁所导致的巨大计算开销。但是此方法存在一个bug,也就是,当突然出现大量数据块需要进行替换时,由于Tm≥Δt,所以导致数据块价值没有得到及时刷新,当所有那些小于数据初始价值的数据被替换后还没有被刷新,这时就会替换那些数据块价值为初值值的数据,这样就可能导致刚进入路由器的数据可能被移除。当然这种情况在Tm越大的情况下发生的概率越大。

  4)替换刷新法改进版2。对于方法3)存在的问题,此方法在处理时做了一些改进。当出现要替换的数据块的最小价值等于数据块的初始价值时,这时对缓存进行一次刷新后再找出缓存中最小的数据进行替换,而不是一定要等到Tm<Δt时才去进行刷新。这样就可以及时移除那些价值不大的数据,保留真正有价值的数据。

  最后,通过以上分析,理论上来讲,第四种方法的效果最优,也就是在两种情况下才去刷新缓存:

  A)在需要替换的数据最小价值等于数据的初始价值时,对缓存进行刷新。

  B)当Tm<Δt时,对缓存进行刷新。

3、经过上面的分析,那么如何计算缓存中内容的价值呢?

这是一个非常值得研究的问题。比较传统的方法是使用LRU,LFU等替换算法。这种方法过于僵化,很难达到一种比较理想的效果。

那么,为了替换系统的性能,我们首先分析一下,数据的价值到底与哪些因素有关:(假设现在我们分析的是路由节点i上的数据块O)

1)请求次数(n1)。数据被请求的次数越多,说明该数据块的价值也就越大,反之,其价值可能就越小。即数据块的价值与请求次数成正比。

    

  2)距离上次请求的时间(t)。若数据块长时间没有请求,则其重要性应该慢慢降低,以将宝贵的缓存空间让给其他更有价值的数据。即数据块的价值和距离上次请求的时间之间成反比,当距离上次请求的时间越长,则该数据的价值则越低。

    

  3)节点i周围邻居缓存内容O的次数(s)。周围邻居缓存的次数越多,则节点i的内容O的价值可以适当的降低,因为当节点i中的内容O被替换后,还可以很容易从其邻居节点获得该内容。因而,邻居节点中的缓存内容O的数量与节点i中的内容O的价值正反比。

    

  至于邻居节点的范围问题需要进一步研究,可以考虑与节点i的距离小于一个常数c的节点为邻居节点。

4)节点i中请求过内容O的端口数(n2)。在节点i中请求过内容O的端口再次请求内容O的概率较小,因为请求一次后下游节点会保存该内容。因而,当内容O被请求的端口越多,则该内容再次被请求的概率就越低,我们可以认为其价值就越小。故而内容O的价值与该内容被请求的端口数成反比。

    

  或许,这里看起来有点矛盾,应该说被请求的次数越多,说明内容越受欢迎,其价值应该就越大,因而更应当存储。而实际上流行度越高的数据,我们要尽量将它转移到网络的边缘节点,这样离用户更近,这样当用户需要该数据时就能快速获取。而通过这个参数n2,我们就可以实现将热门资源移向网络的边缘,从而使系统整体达到更好的性能。同理,我们尽量将流行度低的资源向网络的中间移动。

5)节点i与内容O的永久保存节点之间的距离(d)。这个有点类似参数s,只是s的值很有可能一直为0,因而,通过此参数可以从一定程度上更好的调整内容O的价值。

  当节点i与内容O的距离越近,那么下次获取内容O的代价就越小,这样替换内容O的代价就越小。因而,内容O的价值可以认为与参数d成反比。

    

4、如何根据数据块O的相关参数计算其价值V?

在上面,我们已经详细分析了价值V与哪些参数相关,以及是正相关还是负相关。那么我们如何通过这些参数,构建一个计算模型,最终得到我们想要的内容价值?

这将是下一个月的主要研究任务。。。

时间: 2024-07-29 09:13:55

内容中心网络下的缓存替换机制研究的相关文章

2017下一代数据中心网络研究报告zz

http://dy.163.com/v2/article/detail/CDG9CD7G05179LAH.html 2月2日,SDxCentral发布了2017下一代数据中心研究报告(2017 Next Gen Data Center Networking Report).这份报告系统介绍了下一代数据中心网络的发展趋势.关键功能.典型案例.行业标准以及热门产品. 下一代数据中心演进的四大驱动力 1.业务竞争驱动:企业提升自身竞争力,对敏捷性.差异化和成本节约提出了新要求 Increased Co

SharePoint 2010 隐藏个人操作Personal Action的部分内容(右上角下拉菜单)

SharePoint 2010 隐藏个人操作Personal Action的部分内容(右上角下拉菜单) 最近有个需求是隐藏个人操作Personal Action的部分内容(右上角下拉菜单),研究了一下需要更改Welcome.ascx文件. 文件位置: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\CONTROLTEMPLATES 在母版页中可以看到,母版页引用了这个ASP.NET控

linux下批量查找/替换文本内容

一般在本地电脑上批量替换文本有许多工具可以做到,比如sublime text ,但大多服务器上都是无图形界面的,为此收集了几条针对linux命令行 实现批量替换文本内容的命令: 1.批量查找某个目下文件的包含的内容,例如: #   grep -rn "要找查找的文本" ./ 2.批量查找并替换文件内容. #   sed -i "s/要找查找的文本/替换后的文本/g" `grep -rl "要找查找的文本" ./` linux下批量查找/替换文本内

Go实现查找目录下(包括子目录)替换文件内容

[功能] 按指定的目录查找出文件,如果有子目录,子目录也将进行搜索,将其中的文件内容进行替换. [缺陷] 1. 没有过滤出文本文件 2. 当文件过大时,效率不高 [代码] package main import ( "flag" "fmt" "io/ioutil" "os" "path/filepath" "strings" ) type ReplaceHelper struct { R

[转]数据中心网络虚拟化 隧道技术

http://www.sdnlab.com/12077.html SDNLAB 如何实现不同租户和应用间的地址空间和数据流量的隔离是实现数据中心网络虚拟化首先需要解决的几个问题之一.所谓地址空间的隔离是指不同租户和应用之间的网络(ip)地址之间不会产生相互干扰.换句话说,两个租户完全可以使用相同的网络地址.所谓数据流量的隔离是指任何一个租户和应用都不会感知或捕获到其他虚拟网络内部的流量.为了实现上述目的,我们可以在物理网络上面为租户构建各自的覆盖(overlay)网络,而隧道封装技术则是实现覆盖

CDN(内容分发网络)技术原理

原文转自:http://kb.cnblogs.com/page/121664/ 1. 前言 Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加,用户数量也在不断增加,受Web服务器的负荷和传输距离等因数的影响,响应速度慢还是经常抱怨和困扰.解决方案就是在网络传输上利用缓存技术使得Web服务数据流能就近访问,是优化网络数据传输非常有效的技术,从而获得高速的体验和品质保证. 网络缓存技术,其目的就是减少网络中冗余数据的

.net环境下的缓存技术-转载!

摘要: 介绍缓存的基本概念和常用的缓存技术,给出了各种技术的实现机制的简单介绍和适用范围说明,以及设计缓存方案应该考虑的问题(共17页) 1         概念 1.1   缓存能解决的问题 · 性能--将相应数据存储起来以避免数据的重复创建.处理和传输,可有效提高性能.比如将不改变的数据缓存起来,例如国家列表等,这样能明显提高web程序的反应速度: · 稳定性--同一个应用中,对同一数据.逻辑功能和用户界面的多次请求时经常发生的.当用户基数很大时,如果每次请求都进行处理,消耗的资源是很大的浪

[转]CDN(内容分发网络)技术原理

1. 前言 Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加, 用户数量也在不断增加,受Web服务器的负荷和传输距离等因数的影响,响应速度慢还是经常抱怨和困扰.解决方案就是在网络传输上利用缓存技术使得Web服 务数据流能就近访问,是优化网络数据传输非常有效的技术,从而获得高速的体验和品质保证. 网络缓存技术,其目的就是减少网络中冗余数据的重复传输,使之最小化,将广域传输转为本地或就近访问.互联网上传递的内容,大部

[转载] Google数据中心网络技术漫谈

原文: http://www.sdnlab.com/12700.html?from=timeline&isappinstalled=0#10006-weixin-1-52626-6b3bffd01fdde4900130bc5a2751b6d1&sukey=fc78a68049a14bb247c537e229e9301ea4dca80236df4f4e775535c08f0a24420a9ac4d726c99dad63a9f6e4c88271ed 真羡慕 google 强大的网络基础设施啊,