一种网络缓存线性替换方法
技术领域
本发明具体涉及一种缓存替换方法,即在缓存容量已满时对其进行合理的替换,属于信息存储与缓存替换领域。
背景技术
网络信息量的告诉增长远远超过网络速度的增长,韩向春,田玉根说现有的网络技术不能满足用户的需求,用户往往要忍受较长的访问延时,为了解决这一问题,提出了许多方法,其中网络缓存已经成为解决这一问题的主要技术。目前的替换方法中,主要是按照缓存文件的访问频率、内存大小、访问时间等因素在保证文件命中率与字节命中率的基础上来进行文件的替换,也有一些加入了预测机制。例如LFU、LRU、SIZE等方法。钮俊清教授指出,这些方法各有利弊,如LRU,它替换掉最近最少访问的对象,具有较好的时间复杂度,但没有考虑访问频率等其他因素。LRU会在成缓存垃圾的出现。所以如何有效的将各方法的高效因子进行结合,是提高缓存效率的有效方法。
衡量一个缓存替换方法的指标,一般会采取文件命中率与字节命中率,同时还要兼顾访问延时。本方法主要是结合了LFU方法与SIZE方法。韩向春在《基于预测的web缓存替换算法》(信息化技术2010,31(1))指出LFU作为经典的缓存替换方法,采用文档的流行度作为替换的依据,保留那些经常访问的web文档,其优点是实现简单,缺点是没有考虑文件的年龄、大小和获取文件的访问延迟。SIZE方法替换文件大小最大的对象,对于大小相同时,通常选取访问时间作为第二因素,但是忽略了频率因素。张俊旺在他的硕士论文《Web缓存替换策略与预取技术研究》中的实验总结里说对于缓存而言,其主要过程为,当Web缓存的存储空间都被占满时,新来的对象就没有足够的空间来进行存储,这就需要一种有效的替换侧率把当前缓存中价值最小的对象替换出去。因此如何确定缓存对象的价值也成为方法的关键因素。当要进行替换时,会按照我所提出的方法,对缓存中的文件的价值按照时间频率与大小进行计算,替换掉最边缘的。网站所接受的访问请求是不确定的,但针对同一网站,访问请求的数据类型大体一致。由于数据的变动,在方法中加入不同的动态变量,这些变量根据每一个文件的被访问次数与大小等因素进行实时的更新。确定不同的参数,可以获得不同的替换策略,做到命中率最大化。提高缓存效率,减少访问延迟。
传统的缓存替换方法,作为现有缓存技术的基础。现今大多数的方法都是在经典方法上面的修改与结合。同时也有人认为较为流行的也有加入Web缓存日志文件,用来更有效额判断缓存文件的价值。在针对不同的访问对象,可以修改各关键因素的变量值。
发明内容
本发明的所要解决的技术问题是针对传统缓存替换方法的不足。传统的缓存替换方法,在进行替换的过程依据比较单一,没能综合的考虑频率、大小、访问时间等因素,也没有考虑缓存文件的价值的计算,而过多的替换会增加访问延时。所提出的网络缓存线性替换方法,在保证文件命中率与字节命中率的基础上,结合了LRU与SIZE方法,对每一个缓存文件的价值进行判断,通过实时的更新替换策略方程中的参数,来获得更优秀的替换方法。减少了替换的次数,保留了最有价值的文件。本发明通过三层的递推,得出最优秀的缓存时间点以及缓存公式中的参数。从最原始的替换方法、一次替换到多次替换,每一步都依据上一步的论证结果。应用中不但兼顾了各主要因素,同时做到了节省带宽资源,在大数据的传输过程中具有较高的作用。
技术方案:
步骤1),建立一个网站缓存模型,规定其缓存容量大小,并给出5个大小不同的文件,编号为Pi(i=1,2,…,5),作为所要被访问的文件;
步骤2),对步骤1)所建立的模型,发送大量的文件请求来请求这五个文件,并记录请求序列,发送的请求是随机的。
步骤3),当用户发送了大量请求之后,例如请求数据的总大小为缓存容量的n倍(n远大于1),这时所请求的数据就远大于缓存的容量了。此时对所发送的每个数据请求的频率以及每个返还数据的大小进行分析记录,合理的选取要保留在缓存中的文件,这作为第一次替换,所选取的数据就放在缓存中。保留包含两个要素,最大化文件命中率与不要超出缓存容量范围,MaxΣSiYi≤S。其中Yi为0表示该文件不保存在缓存中,为1表示保存在缓存中,S为缓存的大小。在此之前,缓存的替换是随机替换。本步骤主要是对下面的替换提供依据。
步骤4),由于n的数量过大,会造成很高的访问延迟,过低会导致缓存的频繁读写,不利于性能。所以要选取合理的n。按照步骤3)的思路,进行第二步,继续发送请求数据,但是在发送的请求容量为缓存容量n/2倍时进行第一次缓存替换,相当于提前进入缓存。替换按照步骤3)的规则,既要保证最大化文件命中率,也要保证不超出缓存容量。第一次替换结束后缓存中文件为Y1i,用0和1表示,0表示不在,1表示在。再发送n/2的数据请求发送完成后,再对这n/2的数据进行分析,计算文件命中率,再替换一次,此时缓存中文件为Y2i用0和1表示。将两次的缓存结果进行对比,获取最终的缓存方案。这里将LFU与SIZE方法结合起来,来选定参数,公式为注意,在计算时只需选取Y1i为1的,以及所对应的的Y2i。因为这样可以更好的验证那些被替换掉了的数据。这里面其中C、w1、w2为参数。在接下来的请求中缓根据公式计算每一个请求数据的值,选取最小的进行替换,直到下一次参数更新。
步骤5),完成第三步,进行进一步的优化,选取的替换节点为n/m倍。即每发送数据的总量为n/m(n/m>1)后就更新一次缓存,此时所请求的数据的总的容量要大于缓存的容量。每一个断点都先根据访问请求计算一下缓存中保留的数据,再根据上一段的保留数据按照步骤4)替换一次,得出相应的替换公式。在接下来的一段里按照该公式进行替换。总体而言,每两段之间的替换按照步骤4)中方法。通过所发送的请求数据,求出各参数,公式为:并将等式右边的公式作为接下来的替换公式。
步骤6),重复步骤5)进行更细致的划分。
步骤7),分别计算并记录每一次更换时间节点后,在下一段时间段内的字节命中率、文件命中率与访问延迟时间,作对比。
步骤8),对每一次的文件命中率等进行画图,选取文件命中率最高的对应的倍数值作为以后开始执行缓存的时间。
进一步的,本发明的网络缓存线性替换方法,结合了传统的LRU与SIZE方法,步骤4)在确定替换公式时,加入了频率与文件大小两个因素,同时加入调节参数,来进行调节。
进一步的,本发明的网络缓存线性替换方法,步骤8)对于步骤5)得到的替换方法的应用:同时由于访问用户的不同等外在因素,每一序列访问请求发送完成后,都会进行重新的参数计算。
有益效果
本发明针对传统的缓存替换方法替换时依据的元素单一进行改进,理想的线性网络缓存替换方法,能够在缓存中保存使用价值最高的文件,方便请求用户较快、较准的查询到所请求的对象。该方法首先根据传统的替换方法的公式,选取其主要参数,进行结合,其次在新方法中添加了调节因数,用于针对请求的更新获取新的替换方法。在最大化字节与文件命中率的同时,减少了访问延迟,从而提升了访问速度。相比于传统的网络缓存替换方法,能够在处理大批量数据时,接受网络资源,付出较少的替换代价,能够使用户很快的获取所求数据。
附图说明
图1是网络缓存替换的过程;
图2是理想的线性网络缓存替换方法得出的过程。
具体实施方式
下面结合附图对技术方案的实施作进一步的详细描述:
结合流程图及实施案例对本发明所述的理想的线性网络缓存替换方法作进一步的详细描述。
本实施案例将LRU方法与SIZE方法相结合,进而提高缓存替换方法的效率。如图1所示,本方法包含如下步骤:
步骤10,建立一个网络缓存的网站模型,规定其缓存大小,同时准备一定数量的文件作为要请求的对象,但文件大小不得超过缓存容量大小。
步骤20,向网站中发送文件请求,总量为R,记录每一个文件的被请求次数,以及总的请求次数,并记录缓存中的文件的变化。文件用Pi表示,对应的次数用Fi表示。
步骤30,在发送了大量的请求后,通过计算来决定最后缓存中所要缓存的文件,判断标准为MaxΣSiYi≤S。其中Yi为0表示该文件不保存在缓存中,为1表示保存在缓存中,S为缓存的大小。符合标准的文件就是在新的序列的访问请求之前缓存中保存的文件
步骤301,在最后缓存一次的计算,下表为文件的大小与频率的记录。
将数据带入方程最后得出缓存文件为:{1,0,1,1,0}
步骤302,在发送相同数量的访问请求,记录各文件的访问次数。
第一次访问请求结束后,缓存中文件为{1,0,1,1,0},第二次为{1,1,0,1,0},将两组数据带入方程求取参数,由于参数只有三个,所以选取对应的三组即可。
例如:解出的方程可以应用到替换中。
步骤303,选取多组间断点,计算出各文件的访问频率,综合考虑,按照步骤20进行求解出最后的替换方程。同样,根据参数的个数,选取一定数量的文件即可,不必全部选取,会增大计算量。本实验最后验证当倍数为4时,文件命中率最高。
步骤40,继续发送请求,达到步骤20中请求数量达到R/2时更新一次缓存内容,其替换策略根据所记录的缓存中文件被访问次数与中间及结束时缓存中的文件,得出相应的参数,获得缓存方法。
步骤50,继续发送请求,并且不断地缩小进入缓存时发送的请求容量与缓存容量的倍数。计算每段缓存时缓存中的文件及其访问次数,带入方程中求出新的参数,获得下一段的缓存方法。
步骤60,将步骤50中的倍数再进一步的划分。其过程可以参照说明书附图2。
步骤70,计算并记录每一次分段后的文件命中率大小、字节命中率大小。
步骤80,画出折线图,求出最合适的倍数。
如图2所示,获得方法方程的具体过程:
以上所述的具体实施方案,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,所应理解的是,以上所述仅为本发明的具体实施方案而已,并非用以限定本发明的范围,任何本领域的技术人员,在不脱离本发明的构思和原则的前提下所做出的等同变化与修改,均应属于本发明保护的多组范围。