基于遗传算法的缓存布置系统及缓存方法与流程

文档序号:15848680发布日期:2018-11-07 09:29阅读:149来源:国知局
基于遗传算法的缓存布置系统及缓存方法与流程

本发明属于移动通信网络技术领域,具体涉及一种基于遗传算法的缓存布置系统。

背景技术

如今,移动视频服务步入高速发展期,带动着移动视频流量服务的飞速增长。视频点播已经成为有线与无线网络运营商和提供商的主要收入来源之一。视频点播业务对时延的要求较高,而为了满足这种日益增长的视频需求,如何在视频传输中实现尽可能小的延迟是至关重要的。

实现这个目标的一个有效的方法是将视频内容缓存到尽可能接近终端用户的地方,如靠近用户的移动基站。这种分布式缓存架构的思想已经被提出并用于内容发布网络和电信内容发布网络,并且近期也逐渐在蜂窝网络中有所应用。

缓存的关键问题在于如何设计最佳缓存策略。对于给定的预期内容需求,确定哪些内容文件应该被放置在哪个缓存中,以便减少实现所有请求的总内容传送延迟。本地服务器先从远端服务器下载一些内容,缓存到本地的高速缓存(cache)中,当本地的可用缓存无法满足用户的请求时,则本地服务器就需要从远端服务器来获取所需内容,这明显会提高延迟。这是一个著名的np-hard问题,经过国内外通信领域的不断研究,已经提出了许多探索式或近似算法来解决它。

如今,网络通常会向客户提供不同质量编码的视频文件。用户可以隐式地或明确地选择要求某些视频质量(例如,对于youtube视频的某些分辨率),而在其他情况下,所传送的视频质量则由运营商确定(例如,基于与内容提供商的协议)。

这些发展以及更高的用户体验质量(qoe)和视频编码技术的进步导致了高级视频编码技术的结合,相应的也影响了现有缓存算法的性能。其中一种相对成熟的编码技术就是可伸缩视频编码(scalablevideocoding,svc),它允许有多个空间分辨率(屏幕尺寸),不同的帧率或信噪比(snr)质量。利用svc,每个视频文件被编码在一系列段中,这些图层在组合播放时能够达成所需求的视频质量。需求最低视频质量的用户仅需接收基本层(baselayer),而要求更高视频质量的用户则会接收多个视频图层,从基本层开始一直到能达到该质量所需的最高层的所有层都必须传输给用户。作为目前新兴的视频技术之一,svc已经广泛用于视频流、网络服务和视频存储等应用。

利用svc技术,就有可能实现在不同的本地缓存中存储某个视频的不同图层。对于需求给定视频质量水平的用户,需要同时接收、解码并同时播放视频所需的不同图层,而不是连续接收、解码并播放。在这样的设定中,视频传输被最后传送的一层约束,即需要传输时间最长的一层。因此对于系统延迟度的度量标准就由从远端服务器中传输的所有层中延迟最大的一层来确定。由于svc,缓存策略的所有内容显著增加,因为需要决定的缓存内容不仅仅是一个视频文件,而是每个视频图层,处理的数据量成倍增加。因此,需要重新考虑缓存的布置策略。



技术实现要素:

发明目的:为解决上述技术问题,本发明提供了一种基于遗传算法的缓存布置系统及缓存方法,可以根据视频的流行度以及用户对不同质量的视频请求给出缓存策略,求出延时的优化程度来验证缓存策略的正确性,随着用户需求信息的不断更新来不断更改缓存的布置,从而确保节点持续缓存热点内容,获得渐近于理想的缓存方法的缓存命中率。

技术方案:为实现以上目的,本发明提出的一种基于遗传算法的缓存布置系统,包括用户接口、请求处理模块、缓存管理模块、本地缓存模块、缓存信息模块和信息监测和交互模块,其中,

用户接口用于接收用户的请求信息并将用户请求信息传送给请求处理模块,等待请求处理;

请求处理模块用于将用户请求传送给缓存管理模块,并根据缓存管理模块的处理结果相应接收请求内容;

缓存管理模块用于根据请求内容从缓存信息模块获取相关信息,基于遗传算法做出缓存决策,并用于在做出缓存决策后根据请求内容所在位置获取该内容;

缓存信息模块用于存放和更新区域缓存内容的当前流行度信息、不同质量视频的大小、初始缓存时间和缓存内容编号;

信息监测和交互模块用于监测用户请求信息,定期将本节点的当前接入用户信息发送给邻近节点,实现区域节点间当前接入用户信息的监测和共享。

根据上述基于遗传算法的缓存布置系统的缓存方法,包括以下步骤:

s1、信息监测和交互模块监测并收集用户请求,用户请求包含了请求时间、请求内容信息、请求用户信息,通过一段时间的监测,根据收集到的用户请求信息,获得视频流行度、不同质量视频的大小、初始缓存时间和缓存内容编号,这些信息存储在缓存信息模块中;

s2、缓存管理模块从缓存信息模块获取相关信息,基于遗传算法做出相应的缓存决策,当节点决定缓存请求内容时,将请求内容协作地缓存到节点各自的缓存空间内,同时节点间共享缓存信息;

s3、当用户请求到达时,缓存管理模块对用户请求的内容进行判断,若视频在本地缓存区则直接从本地缓存区取,若不在则从邻近节点或远端服务器下载。

其中,步骤s2中缓存管理模块基于遗传算法做出相应的缓存决策包括:

s21、将视频按照流行度进行排序,随机生成x种缓存方式,并记录相应的适应度;

s22、将这些缓存方式不断进行交配,最后选出适应度最高的一种缓存布置。

进一步地,步骤s21中不断交配并选出适应度最高的缓存布置,包括以下步骤:

s21-1)选出超过平均适应度的个体;

s21-2)这些个体两两配对产生新的个体;

s21-3)每次交配完,获得这一代的平均适应度,并跟之前的做比较,一旦比之前的大则进行替代。

步骤s3包括:

s31、读取第d个请求的请求时间t(d)时刻的本地缓存内容集ct,d;

s32、若第d个请求的请求内容f(d)包含在ct,d内,则直接从本地缓存内容集中获取视频;

s33、若第d个请求的请求内容f(d)不在ct,d内,则从邻近节点或远端服务器中获取视频。

有益效果:与现有技术相比,本发明具有以下优点:

1、本发明具有低计算复杂度特性,因为遗传算法实质是二重迭代,时间复杂度<o(n2)。

2、本发明对计算资源和存储资源要求较低,可以在边缘节点上直接进行设置,从而提高用户获取视频的速度。

3、本发明在缓存设计上考虑到了节点间的协作,在内容缓存布置时采取分层缓存的方式,即若一个节点已经缓存了一个视频的某一层,则它的邻近节点很有可能不缓存这一层,有效减少了节点间的缓存内容冗余,同时提高了存储空间的利用率。

附图说明

图1是基于遗传算法的缓存布置系统的系统结构图;

图2是基于遗传算法的缓存布置系统的缓存方法流程图。

具体实施方式

下面结合附图对本发明的技术方案作进一步说明。在以下描述中,“节点”指的是通信网络中相互通信且具备高速缓存(cache)的设备,根据用户使用网络不同,例如可以是移动通信基站或无线接入点等。本节点指的是用户所连的设备,邻近节点为根据网络拓扑与本节点相邻的节点。本节点与邻近节点形成一个区域。

图1为基于遗传算法的缓存布置系统的系统结构图,该缓存布置系统布置在节点的本地缓存(cache)中,系统包括:用户接口、请求处理模块、缓存管理模块、本地缓存模块、缓存信息模块和信息监测和交互模块。其中,缓存信息模块主要负责存放和更新区域缓存内容的当前流行度信息、不同质量视频的大小、初始缓存时间和缓存内容编号。信息监测和交互模块主要负责实现区域邻近节点间的定期信息监测和交互,定期将本节点的当前接入用户信息发送给邻近节点,最终,实现区域节点间当前接入用户信息的监测和共享。

用户接口用于接收用户的请求信息并将用户请求信息传送给请求处理模块,等待请求处理。请求处理模块用于将用户请求传送给缓存管理模块,并根据缓存管理模块的处理结果相应接收请求内容。缓存管理模块用于根据请求内容作出缓存决策,并在缓存决策后根据请求内容当前所在位置获取该内容。缓存管理模块从缓存信息模块中提取相应的信息(当前流行度信息、不同质量视频的大小、初始缓存时间和缓存内容编号),根据遗传算法做出缓存决策,存入本地缓存模块中。获取内容时,如果请求内容在本地缓存,则缓存管理模块从本地缓存中提取内容传送给请求处理模块;如果请求内容不在本地缓存,则通过信息监测与交互模块判断此请求内容是否在邻近节点中,若在,则缓存管理模块通过外部接口获得请求内容并送给请求处理模块;如果请求内容既不在本地缓存又不在邻近节点缓存,则缓存管理模块从远端服务器下载请求内容至请求处理模块。

基于上述缓存布置系统的视频缓存过程如下:(1)根据用户历史请求信息,得出其中较流行的一些视频的大小矩阵和用户需求矩阵;(2)使用遗传算法,给出这些视频的缓存策略;(3)当用户请求到达时,若视频在本地缓存区则直接从本地缓存区取,若不在则从邻近节点或远程服务器端下载;(4)算出每一次请求的总延时,得出缓存后延时的优化。

参照图2,缓存布置方法包括以下步骤:

s1、信息监测和交互模块监测并收集用户请求:信息监测和交互模块初始化监测周期时长,本地节点和邻近节点设置相同的监测周期。在每个监测周期,本地节点和邻近节点分别监测和收集自身覆盖区域的用户集,并通过节点间的信息交互得知当前周期各个节点总覆盖区域的用户集,第t个监测周期收集到的区域用户请求集标记为rt={r1,r2,…,rn}。

用户请求包含了请求时间、请求内容信息、请求用户信息。通过一段时间内的监测和收集,根据用户历史请求信息,可以获得视频流行度、不同质量视频的大小、初始缓存时间和缓存内容编号等信息,这些信息存储在缓存信息模块中。

s2、缓存管理模块对每个监测周期内的每个用户请求的内容进行判断,并做出相应的缓存决策。进行缓存决策的过程如下:将视频按照流行度进行排序,随机生成x种缓存方式,并记录相应的适应度。缓存方式以缓存布置矩阵来表示,例如一个缓存布置矩阵是[1,0,1,0],1代表缓存了视频,0代表没有缓存。若视频的某一层在本地节点和邻近节点都未被缓存,则适应度为0,若本地节点缓存而邻近节点未存适应度为a,若本地节点未存而邻近节点缓存则适应度为b,若本地节点和邻近节点都缓存了则适应度为(a+b)/2,其中a>b。将这些缓存布置不断进行交配,最后选出适应度最高的一种缓存布置。具体地,选出超过平均适应度的个体,即缓存布置矩阵;这些个体两两配对产生新的个体,即从两个矩阵里取固定长度大小的序列进行交换,例如一个缓存布置矩阵是[1,0,0,1,1,0,1],另一个是[0,1,0,0,1,1,0],取大小为三的序列进行交换,就变成[0,1,0,1,1,0,1]和[1,0,0,0,1,1,0];每次交配完,获得这一代的平均适应度,并跟之前的进行比较,一旦比之前的大则进行替代。

s3、基于上述缓存决策,当节点收到用户请求后,缓存管理模块判断请求内容当前所在位置。如果请求内容在本地缓存,则缓存管理模块从本地缓存中提取内容传送给请求处理模块;如果请求内容不在本地缓存,则通过信息监测与交互模块判断此请求内容是否在邻近节点中,若在,则缓存管理模块通过外部接口获得请求内容并送给请求处理模块;如果请求内容既不在本地缓存又不在邻近节点缓存,则缓存管理模块从远端服务器下载请求内容至请求处理模块。

当节点决定缓存请求内容时,将请求内容协作地缓存到节点各自的缓存空间内,同时节点间共享缓存信息。

s4、进一步地,可以通过以下方法来验证是否实现了延时优化。第t个周期内的第d个请求表示为reqt,d=<f(d),t(d),x(d)>,其中,f(d)为第d个请求的请求内容,t(d)为第d个请求的请求时间,x(d)为第d个请求的请求内容特征矢量(不同质量的请求次数)。首先算出在未进行缓存前,从远端服务器下载所请求的内容时使用的总延时t0,t0等于请求次数乘以从远端服务器下载的时间dn。做出缓存决策后,读取第d个请求的请求时间t(d)时刻的本地缓存内容集ct,d,若第d个请求的请求内容f(d)包含在ct,d内,则缓存管理模块直接从本地缓存内容集中获取视频,若第d个请求的请求内容f(d)不在ct,d内,则缓存管理模块从邻近节点或远端服务器中获取视频,从远端服务器下载的时间为dn,从邻近节点下载的时间为d0(d0<dn),算出总的延时t。将t和t0进行比较,若t0大于t,则此次缓存决策实现了延时的优化。

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