CN106686399B - 一种基于联合缓存架构的网络内视频缓存方法 - Google Patents

一种基于联合缓存架构的网络内视频缓存方法 Download PDF

Info

Publication number
CN106686399B
CN106686399B CN201611199493.1A CN201611199493A CN106686399B CN 106686399 B CN106686399 B CN 106686399B CN 201611199493 A CN201611199493 A CN 201611199493A CN 106686399 B CN106686399 B CN 106686399B
Authority
CN
China
Prior art keywords
video
node
cache
network
caching
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611199493.1A
Other languages
English (en)
Other versions
CN106686399A (zh
Inventor
林木森
刘涛
刘轩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shaanxi Shang Shang Mdt Infotech Ltd
Original Assignee
Shaanxi Shang Shang Mdt Infotech Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shaanxi Shang Shang Mdt Infotech Ltd filed Critical Shaanxi Shang Shang Mdt Infotech Ltd
Priority to CN201611199493.1A priority Critical patent/CN106686399B/zh
Publication of CN106686399A publication Critical patent/CN106686399A/zh
Application granted granted Critical
Publication of CN106686399B publication Critical patent/CN106686399B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种基于联合缓存架构的网络内视频缓存方法。其实现方案是:在采用联合缓存架构的网络中,预留一部分比例为α的总缓存空间来缓存最受欢迎的视频,并利用剩下空间保证网络缓存所有视频。并且,视频缓存完成后,根据视频请求模式和链路状态信息的动态变化,为视频请求者寻找最佳视频源节点。本发明有效解决了网络内视频缓存的问题,能够保证移动网络内视频数据的可靠、高效存储和调用,节省了系统带宽,并有效降低了网络时延成本。

Description

一种基于联合缓存架构的网络内视频缓存方法
技术领域
本发明属于通信技术领域,尤其涉及一种基于联合缓存架构的网络内视频缓存方法。
背景技术
随着移动互联网的迅速发展及在线视频内容的急剧增长,在网络内缓存视频时,提升终端用户体验以及降低用户费用便显得尤为重要。然而,由于互联网中视频数量和用户视频需求与有限的存储容量和链路带宽之间的矛盾,在网络内高效地缓存视频是一件比较困难的事情。
当前存在的关于网络内视频缓存问题的解决方案的不足有:(1)依赖于静态配置和时间平均请求到达率,并不能有效地解决动态请求模式中出现的问题;(2)同时解决视频缓存问题和源节点选择问题,导致算法复杂度过高,且耗费时间较长,效率过低。
发明内容
本发明的目的在于改进当前网络内视频缓存技术的不足,提出一种基于联合缓存架构的网络内视频缓存方法,让所有网络节点共同缓存用户所需的视频,从而使视频在存储容量和链路带宽受限的网络中传输的总成本最小。
本发明提出的联合缓存架构,指的是一种网络中所有节点各自开辟一定的缓存空间,并共同缓存用户所需视频资源的架构。网络节点包括直接与用户基站相连的服务节点和与外界互联网相连的分组数据网络PDN网关,下面简称节点。
为实现上述发明目的,本发明提出的技术方案是:
一种基于联合缓存架构的网络内视频缓存方法,包括以下步骤:
步骤一:在所有节点缓存特定的视频;
在基于联合缓存架构的网络中,预留一部分比例为α的空间缓存用户请求最多的视频;然后利用剩下的空间保证网络可以缓存所有视频;若节点仍有剩余空间,则继续在每个节点中缓存视频,填满所有节点缓存空间;寻找一个最佳α,使网络的总缓存命中量达到最大;
步骤二:确定获取视频的最佳源节点;
视频缓存完成后,当一个节点i接收到对视频k的请求时,节点i先在本地缓存中寻找视频k,如果有则直接将视频k发送给用户;否则在其他网络节点的缓存中寻找视频k;当存在多个其它网络节点都缓存有视频k时,根据视频请求模式和链路状态信息的动态变化,为视频用户寻找一个最佳的视频源节点。
进一步根据所述基于联合缓存架构的网络内视频缓存方法,步骤一中在所有节点缓存特定的视频:
M为网络中所有节点i的集合,N为所有需要缓存的视频k的集合,Sk为视频k的大小,λi k表示节点i中收到用户请求为视频k的概率,其中λi k∈[0,1],可通过历史统计计算或预测得到;yi k表示节点i的缓存中是否有视频k,yi k=0表示节点i的缓存中没有视频k,yi k=1表示节点i的缓存中有视频k,即yi k∈{0,1};表示总缓存空间的缓存命中量,缓存命中量越大表示缓存空间中请求概率高的视频越多,资源利用率越高,系统更高效;
在存储空间和链路带宽受限的情况下,通过合理地在各个网络节点中缓存视频数据,使本地网络节点的总缓存命中量达到最大,即取得最大值;节点缓存容量受限,Di为节点i的缓存容量,则缓存视频时必须满足
具体步骤如下:(1-1)缓存请求概率最高的视频;(1-2)保证缓存所有视频;(1-3)填满节点剩余空间;(1-4)寻找最佳分配方式。
进一步根据所述基于联合缓存架构的网络内视频缓存方法,步骤一在所有节点缓存特定的视频中的(1-1)缓存请求概率最高的视频:
将网络中所有节点i的总缓存容量中预留比例为α的部分来缓存每个网络节点中请求概率最高的视频,假设α为一个给定的数值;用Pi表示节点i缓存的视频集合,Di′表示节点i的剩余缓存容量;
对于集合M中的每个节点i,初始化集合Pi为空集,令为总容量中比例为α的部分容量,初始化集合W={(i,k)|i∈M,k∈N}为所有可能的(i,k)配对的集合,初始化节点i的剩余缓存容量Di′=Di
当D大于0且集合W不为空集时,令如果即视频k*的大小不大于节点i*的剩余缓存容量,则令即把视频k*缓存到节点i*中,同时将用来缓存请求概率最高视频的部分容量D和节点i*的剩余缓存容量均减去视频k*的大小Sk*;令W=W-{(i*,k*)},即把集合W中的(i*,k*)配对去掉,同时令表示节点i*的缓存中有视频k*
如果D大于0且集合W不为空集,则继续缓存视频;如果D等于0或者集合W为空集,则表示用来缓存请求概率最高视频的空间已经分配完,或者网络中所有的节点均分配到所有的视频;
缓存视频结束后,得到每个节点i中缓存视频的集合Pi以及全部Pi的并集N0,集合N0中的元素表示网络中任一节点缓存的视频,所有视频中请求概率最高的视频缓存完毕。
进一步根据所述基于联合缓存架构的网络内视频缓存方法,步骤一在所有节点缓存特定的视频中的(1-2)保证缓存所有视频:
令Nr表示网络中没有缓存的视频的集合,即为了利用剩余的1-α部分空间实现所有视频全覆盖,并在保证缓存全部视频的前提下使缓存命中量最大,则每个视频只需在所有网络节点中缓存唯一复本即可;
存储容量受限,则必须满足
对于集合Nr中的每一个视频k,令Yk表示所有可以用于缓存视频k的节点集合,初始化Yk=M;
在集合Yk中寻找一个使取得最大值的节点i*,即若视频k的大小Sk大于节点i*的剩余空间则令Yk=Yk-i*,即表示节点i*不可以用于缓存视频k;继续在集合Yk中寻找一个使λi k取得最大值的节点i*缓存视频,直到Yk变为空集;Yk为空集表示当前网络内没有节点具有足够的空间来缓存视频k,即网络无法保证缓存所有视频,则当前给定的α值是不合理的;
若Sk不大于节点i*的剩余空间令Nr=Nr-k,将视频k缓存到节点i*中,同时更新减去视频k的大小Sk
Nr变为空集,缓存所有视频结束。
进一步根据所述基于联合缓存架构的网络内视频缓存方法,步骤一在所有节点缓存特定的视频中的(1-3)填满节点剩余空间:
视频缓存完成后,各个节点i可能还有部分剩余空间;
Ni表示节点i没有缓存的视频的集合,Pi″表示节点i将要缓存的视频k的集合;在不超过节点i的剩余缓存容量的条件下,即将使得最大的视频加入集合Pi″中,同时将Pi″中的视频缓存到节点i中;
遍历集合M中的所有节点i,初始化集合Pi″为空集;
当Di′大于0且集合Ni不为空集时,令即Ni中最受欢迎的视频;如果视频k*的大小Sk*不大于此时节点i的剩余容量Di′,则令集合Pi″=Pi″∪k*,Ni=Ni-k*,把视频k*缓存到节点i中,将节点i剩余容量Di′更新为Di′减去Sk*;如果视频k*的大小Sk*大于此时节点i的剩余容量Di′,令集合Ni=Ni-k*,不缓存视频k*
如果Di′大于0且集合Ni不为空集,则继续按照所述方法,给节点继续缓存视频;如果Di′等于0或者集合Ni为空集,则表示节点i的剩余缓存空间已经分配完,或者节点i已经缓存所有的视频,集合Pi=Pi∪Pi″,得到节点i中缓存的全部视频;
遍历完集合M中的所有节点i后,此时所有节点的缓存空间都已经被填满,并得到全部节点i和视频k对应的yi k值;记录每个节点的缓存分配结果,即每个节点缓存的视频集合Pi,并根据节点缓存空间分配结果得到缓存命中量的值。
进一步根据所述基于联合缓存架构的网络内视频缓存方法,步骤一在所有节点缓存特定的视频中的(1-4)寻找最佳分配方式:
总缓存空间中用于缓存请求概率高的视频的空间比例α越大,缓存命中量也越大,则将缓存命中量表示为α的一个函数H(α),即
选择一个更大的α能够提升系统的性能,避免网络无法缓存全部视频,采用二分法在[0,1]区间内寻找最佳α,在保证缓存全部视频的前提下,使得目标值H(α)取得最大值,为α值设置一个下界αl=0,得到对应H(αl)的值;
若集合Yk为空集,表示当前α值不合理,即系统全部容量都无法保证覆盖全部视频,系统对容量不足的情况不作处理;
若集合Yk为空集,为α值设置一个上界αu=1,得到对应H(αu)的值,如果没有缓存视频的集合Nr为空集,则表示用系统全部容量的α倍缓存的请求概率最高的视频即为所有的视频N,因此直接得到最佳α为1;
如果有缓存视频的集合Nr为空集,在αl和αu之间使用二分查找法,若H(αl)<H(αu),则令αl=(αlu)/2,重新计算H(αl);若H(αl)>H(αu),则令αu=(αlu)/2,重新计算H(αu),直到H(αl)=H(αu),此时得到的H(α)为最大。
进一步根据所述基于联合缓存架构的网络内视频缓存方法,步骤二中确定获取视频的最佳源节点:
当一个节点i接收到对视频k的请求时,节点i先在本地缓存中寻找视频k,如果有则直接将视频k发送给用户,否则在其他网络节点的缓存中寻找视频k;当存在多个其他网络节点都缓存有视频k时,选择其中一个网络节点作为所请求视频k的最佳源节点;
把网络进行视频缓存的时间划分为若干个轮,每一轮持续时间为△t,在每一轮时间内,每个网络节点从用户端接收请求;
对于网络中的所有链路l,用fl表示链路l上的总的传输速率;用L(j,i)表示从节点j到节点i的路径;用ζl(·)表示已知的链路时延函数,是一个关于负载fl的单调递增函数,则表示从节点j发送一个单元的数据到节点i的时延成本;用Ri表示一轮时间内节点i中被请求但没有缓存的视频的集合;用rk表示视频k的传输速率;用Tk表示拥有视频k复本的所有节点的集合;用表示所有节点获取视频的加权时延成本之和;
通过为每个视频k的请求选择最佳的视频源节点,使所有节点获取视频的加权时延成本之和达到最小,即使取得最小值;
按如下步骤进行:
(2-1)建立本地负载表,网络中的路由器定期地将各条链路的负载信息,即传输速率报告给各个网络节点,每个节点接收报告后建立一个具有全部链路负载信息的本地负载表;
(2-2)根据本地负载表寻找最佳源节点,每轮时间△t结束时,网络节点i处理接收到的视频请求,假设收到对于视频k的请求,则合并节点i中对于视频k的全部请求;若节点i的本地缓存中无视频k,则节点i根据本地负载表获取每条链路的负载fl,由得到传输视频k到节点i时延成本最小的节点j*,其中每条链路l必须满足fl≤Cl,Cl表示链路l的容量,即该链路所允许的最大的传输速率;确定最佳源节点j*后,节点i向节点j*请求发送视频k;
(2-3)更新本地负载表,节点i向节点j*发送对于视频k的请求后,节点i和节点j*更新节点i和节点j*的本地负载表,将路径L(j*,i)经过的所有链路l的负载fl变成fl+rk,并将更新消息发送给网络中的路由器;路由器将更新消息广播给网络中的每一个节点,各个节点收到更新消息后更新本地负载表;
为节点i中的对视频k的请求找到了最佳的源节点j*,用户通过最佳源节点j*得到所请求的视频。
本发明的有益效果:
(1)本发明提出了一个可以解决网络内视频缓存问题的联合缓存架构,能够保证移动网络内视频数据的可靠、高效存储和调用;
(2)本发明通过决定网络中各个节点应该缓存的视频,使网络总缓存命中量达到最大值,从而节省了系统带宽,提高资源利用率;
(3)本发明考虑了视频请求模式和链路状态信息的动态变化,为用户在网络中选择一个最佳的视频源节点,有效地降低了网络时延成本。
附图说明
图1为本发明所述基于联合缓存架构的网络内视频缓存方法的流程图。
具体实施方式
以下结合附图对本发明的技术方案进行详细的描述,以使本领域技术人员能够更加清楚地理解本发明的方案,但并不因此限制本发明的保护范围。
如图1所示,本发明所述基于联合缓存架构的网络内视频缓存方法,具体如下:
步骤一:在所有节点缓存特定的视频。
为了便于描述,令M为网络中所有节点i的集合;N为所有需要缓存的视频k的集合;Sk为视频k的大小;λi k表示节点i中收到用户请求为视频k的概率,其中λi k∈[0,1],可通过历史统计计算或预测得到;yi k表示节点i的缓存中是否有视频k,yi k=0表示节点i的缓存中没有视频k,yi k=1表示节点i的缓存中有视频k,即yik {0,1};表示总缓存空间的缓存命中量,缓存命中量越大表示缓存空间中请求概率高的视频越多,资源利用率越高,系统更高效。
在存储空间和链路带宽受限的情况下,通过合理地在各个网络节点中缓存视频数据,使本地网络节点的总缓存命中量达到最大,即取得最大值。由于节点缓存容量受限,令Di为节点i的缓存容量,则缓存视频时必须满足
如图1所示,在所有节点缓存特定的视频,具体步骤如下:
(1-1)缓存请求概率最高的视频。
将网络中所有节点i的总缓存容量中预留比例为α的部分来缓存每个网络节点中请求概率最高的视频,假设α为一个给定的数值。用Pi表示节点i缓存的视频集合,Di′表示节点i的剩余缓存容量。
对于集合M中的每个节点i,初始化集合Pi为空集,令为总容量中比例为α的部分容量,初始化集合W={(i,k)|i∈M,k∈N}为所有可能的(i,k)配对的集合,初始化节点i的剩余缓存容量Di′=Di
当D大于0且集合W不为空集时,令如果即视频k*的大小不大于节点i*的剩余缓存容量,则令即把视频k*缓存到节点i*中,同时将用来缓存请求概率最高视频的部分容量D和节点i*的剩余缓存容量均减去视频k*的大小Sk*;令W=W-{(i*,k*)},即把集合W中的(i*,k*)配对去掉,同时令表示节点i*的缓存中有视频k*。如果D大于0且集合W不为空集,则继续缓存视频;如果D等于0或者集合W为空集,则表示用来缓存请求概率最高视频的空间已经分配完,或者网络中所有的节点均分配到所有的视频。
缓存视频结束后,得到每个节点i中缓存视频的集合Pi以及全部Pi的并集N0,集合N0中的元素表示网络中任一节点缓存的视频,所有视频中请求概率最高的视频缓存完毕。
(1-2)保证缓存所有视频。
令Nr表示网络中没有缓存的视频的集合,即为了利用剩余的1-α部分空间实现所有视频全覆盖,并在保证缓存全部视频的前提下使缓存命中量最大,则每个视频只需在所有网络节点中缓存唯一复本即可。由于存储容量受限,则必须满足
对于集合Nr中的每一个视频k,令Yk表示所有可以用于缓存视频k的节点的集合,初始化Yk=M。
在集合Yk中寻找一个使取得最大值的节点i*,即若视频k的大小Sk大于节点i*的剩余空间则令Yk=Yk-i*,即表示节点i*不可以用于缓存视频k;继续在集合Yk中寻找一个使λi k取得最大值的节点i*缓存视频,直到Yk变为空集。Yk为空集表示当前网络内没有节点具有足够的空间来缓存视频k,即网络无法保证缓存所有视频,则当前给定的α值是不合理的。
若Sk不大于节点i*的剩余空间令Nr=Nr-k,将视频k缓存到节点i*中,同时更新减去视频k的大小Sk。Nr变为空集,缓存所有视频结束。
(1-3)填满节点剩余空间。
视频缓存完成后,各个节点i可能还有部分剩余空间。Ni表示节点i没有缓存的视频集合,Pi″表示节点i将要缓存的视频k的集合。在不超过节点i的剩余缓存容量的条件下,即将使得最大的视频加入集合Pi″中,同时将Pi″中的视频缓存到节点i中。
遍历集合M中的所有节点i,初始化集合Pi″为空集。
当Di′大于0且集合Ni不为空集时,令即Ni中最受欢迎的视频;如果视频k*的大小Sk*不大于此时节点i的剩余容量Di′,则令集合Pi″=Pi″∪k*,Ni=Ni-k*,把视频k*缓存到节点i中,将节点i剩余容量Di′更新为Di′减去Sk*;如果视频k*的大小Sk*大于此时节点i的剩余容量Di′,令集合Ni=Ni-k*,不缓存视频k*
如果Di′大于0且集合Ni不为空集,则继续按照所述方法,给节点继续缓存视频;如果Di′等于0或者集合Ni为空集,则表示节点i的剩余缓存空间已经分配完,或者节点i已经缓存所有的视频,令集合Pi=Pi∪Pi″,得到节点i中缓存的全部视频。
遍历完集合M中的所有节点i后,此时所有节点的缓存空间都已经被填满,并得到全部节点i和视频k对应的yi k值。记录每个节点的缓存分配结果,即每个节点缓存的视频集合Pi,并根据节点缓存空间分配结果得到缓存命中量的值。
(1-4)寻找最佳分配方式。
总缓存空间中用于缓存请求概率高的视频的空间比例α越大,缓存命中量也越大,则将缓存命中量表示为α的一个函数H(α),即
选择一个更大的α能够提升系统的性能,避免网络无法缓存全部视频,采用二分法在[0,1]区间内寻找最佳α,在保证缓存全部视频的前提下,使得目标值H(α)取得最大值。为α值设置一个下界αl=0,得到对应H(αl)的值。
如果集合Yk为空集,表示当前α值不合理,即系统全部容量都无法保证覆盖全部视频,系统对容量不足的情况不作处理。
如果集合Yk为空集,为α值设置一个上界αu=1,得到对应H(αu)的值,如果没有缓存视频的集合Nr为空集,则表示用系统全部容量的α倍缓存的请求概率最高的视频即为所有的视频N,因此直接得到最佳α为1。
如果有缓存视频的集合Nr为空集,在αl和αu之间使用二分查找法,若H(αl)<H(αu),则令αl=(αlu)/2,重新计算H(αl);若H(αl)>H(αu),则令αu=(αlu)/2,重新计算H(αu),直到H(αl)=H(αu),此时得到的H(α)为最大。
所有网络节点都缓存了特定的视频。
步骤二:确定获取视频的最佳源节点。
当一个节点i接收到对视频k的请求时,节点i先在本地缓存中寻找视频k,如果有则直接将视频k发送给用户;否则在其他网络节点的缓存中寻找视频k。当存在多个其他网络节点都缓存有视频k时,选择其中一个网络节点作为所请求视频k的最佳源节点。把网络进行视频缓存的时间划分为若干个轮,每一轮持续时间为△t。在每一轮时间内,每个网络节点从用户端接收请求。
对于网络中的所有链路l,用fl表示链路l上的总的传输速率;用L(j,i)表示从节点j到节点i的路径;用ζl(·)表示已知的链路时延函数,是一个关于负载fl的单调递增函数,则表示从节点j发送一个单元的数据到节点i的时延成本;用Ri表示一轮时间内节点i中被请求但没有缓存的视频的集合;用rk表示视频k的传输速率;用Tk表示拥有视频k复本的所有节点的集合;用表示所有节点获取视频的加权时延成本之和。
通过为每个视频k的请求选择最佳的视频源节点,使所有节点获取视频的加权时延成本之和达到最小,即使取得最小值。
如图1所示,确定获取视频的最佳源节点,按如下步骤进行:
(2-1)建立本地负载表。网络中的路由器定期地将各条链路的负载信息,即传输速率报告给各个网络节点,每个节点接收报告后建立一个具有全部链路负载信息的本地负载表。
(2-2)根据本地负载表寻找最佳源节点。每轮时间△t结束时,网络节点i处理接收到的视频请求,假设收到对于视频k的请求,则合并节点i中对于视频k的全部请求。若节点i的本地缓存中无视频k,则节点i根据本地负载表获取每条链路的负载fl,由得到传输视频k到节点i时延成本最小的节点j*,其中每条链路l必须满足fl≤Cl,Cl表示链路l的容量,即该链路所允许的最大的传输速率。确定最佳源节点j*后,节点i向节点j*请求发送视频k。
(2-3)更新本地负载表。节点i向节点j*发送对于视频k的请求后,节点i和节点j*更新节点i和节点j*的本地负载表,将路径L(j*,i)经过的所有链路l的负载fl变成fl+rk,并将更新消息发送给网络中的路由器;路由器将更新消息广播给网络中的每一个节点,各个节点收到更新消息后更新本地负载表。
为节点i中的对视频k的请求找到了最佳的源节点j*,用户通过最佳源节点j*得到所请求的视频。
以上仅是对本发明的优选实施方式进行了描述,并不将本发明的技术方案限制于此,本领域技术人员在本发明的主要技术构思的基础上所做的任何公知变形都属于本发明所要保护的技术范畴,本发明具体的保护范围以权利要求书的记载为准。

Claims (7)

1.一种基于联合缓存架构的网络内视频缓存方法,其特征在于,包括以下步骤:
步骤一:在所有节点缓存特定的视频;
在基于联合缓存架构的网络中,预留一部分比例为α的空间缓存用户请求最多的视频;然后利用剩下的空间保证网络可以缓存所有视频;若节点仍有剩余空间,则继续在每个节点中缓存视频,填满所有节点缓存空间;寻找一个最佳α,使网络的总缓存命中量达到最大;
步骤二:确定获取视频的最佳源节点;
视频缓存完成后,当一个节点i接收到对视频k的请求时,节点i先在本地缓存中寻找视频k,如果有则直接将视频k发送给用户;否则在其他网络节点的缓存中寻找视频k;当存在多个其它网络节点都缓存有视频k时,根据视频请求模式和链路状态信息的动态变化,为视频用户寻找一个最佳的视频源节点。
2.根据权利要求1所述基于联合缓存架构的网络内视频缓存方法,其特征在于,步骤一中在所有节点缓存特定的视频:
M为网络中所有节点i的集合,N为所有需要缓存的视频k的集合,Sk为视频k的大小,表示节点i中收到用户请求为视频k的概率,其中可通过历史统计计算或预测得到;表示节点i的缓存中是否有视频k, 表示节点i的缓存中没有视频k,表示节点i的缓存中有视频k,即 表示总缓存空间的缓存命中量,缓存命中量越大表示缓存空间中请求概率高的视频越多,资源利用率越高,系统更高效;
在存储空间和链路带宽受限的情况下,通过合理地在各个网络节点中缓存视频数据,使本地网络节点的总缓存命中量达到最大,即取得最大值;节点缓存容量受限,Di为节点i的缓存容量,则缓存视频时必须满足
具体步骤如下:
(1-1)缓存请求概率最高的视频;
(1-2)保证缓存所有视频;
(1-3)填满节点剩余空间;
(1-4)寻找最佳分配方式。
3.根据权利要求2所述基于联合缓存架构的网络内视频缓存方法,其特征在于,步骤一在所有节点缓存特定的视频中的(1-1)缓存请求概率最高的视频:
将网络中所有节点i的总缓存容量中预留比例为α的部分来缓存每个网络节点中请求概率最高的视频,假设α为一个给定的数值;用Pi表示节点i缓存的视频集合,Di′表示节点i的剩余缓存容量;
对于集合M中的每个节点i,初始化集合Pi为空集,令为总容量中比例为α的部分容量,初始化集合W={(i,k)|i∈M,k∈N}为所有可能的(i,k)配对的集合,初始化节点i的剩余缓存容量Di′=Di;
当D大于0且集合W不为空集时,令如果即视频k*的大小不大于节点i*的剩余缓存容量,则令即把视频k*缓存到节点i*中,同时将用来缓存请求概率最高视频的部分容量D和节点i*的剩余缓存容量均减去视频k*的大小Sk*;令W=W-{(i*,k*)},即把集合W中的(i*,k*)配对去掉,同时令表示节点i*的缓存中有视频k*
如果D大于0且集合W不为空集,则继续缓存视频;如果D等于0或者集合W为空集,则表示用来缓存请求概率最高视频的空间已经分配完,或者网络中所有的节点均分配到所有的视频;
缓存视频结束后,得到每个节点i中缓存视频的集合Pi以及全部Pi的并集N0,集合N0中的元素表示网络中任一节点缓存的视频,所有视频中请求概率最高的视频缓存完毕。
4.根据权利要求2所述基于联合缓存架构的网络内视频缓存方法,其特征在于,步骤一在所有节点缓存特定的视频中的(1-2)保证缓存所有视频:
令Nr表示网络中没有缓存的视频的集合,即为了利用剩余的1-α部分空间实现所有视频全覆盖,并在保证缓存全部视频的前提下使缓存命中量最大,则每个视频只需在所有网络节点中缓存唯一复本即可;
存储容量受限,则必须满足
对于集合Nr中的每一个视频k,令Yk表示所有可以用于缓存视频k的节点集合,初始化Yk=M;
在集合Yk中寻找一个使取得最大值的节点i*,即若视频k的大小Sk大于节点i*的剩余空间则令Yk=Yk-i*,即表示节点i*不可以用于缓存视频k;继续在集合Yk中寻找一个使取得最大值的节点i*缓存视频,直到Yk变为空集;Yk为空集表示当前网络内没有节点具有足够的空间来缓存视频k,即网络无法保证缓存所有视频,则当前给定的α值是不合理的;
若Sk不大于节点i*的剩余空间令Nr=Nr-k,将视频k缓存到节点i*中,同时更新减去视频k的大小Sk
Nr变为空集,缓存所有视频结束。
5.根据权利要求2所述基于联合缓存架构的网络内视频缓存方法,其特征在于,步骤一在所有节点缓存特定的视频中的(1-3)填满节点剩余空间:
视频缓存完成后,各个节点i可能还有部分剩余空间;
Ni表示节点i没有缓存的视频的集合,Pi″表示节点i将要缓存的视频k的集合;在不超过节点i的剩余缓存容量的条件下,即将使得最大的视频加入集合Pi″中,同时将Pi″中的视频缓存到节点i中;
遍历集合M中的所有节点i,初始化集合Pi″为空集;
当Di′大于0且集合Ni不为空集时,令即Ni中最受欢迎的视频;如果视频k*的大小Sk*不大于此时节点i的剩余容量Di′,则令集合Pi″=Pi″∪k*,Ni=Ni-k*,把视频k*缓存到节点i中,将节点i剩余容量Di′更新为Di′减去Sk*;如果视频k*的大小Sk*大于此时节点i的剩余容量Di′,令集合Ni=Ni-k*,不缓存视频k*
如果Di′大于0且集合Ni不为空集,则继续按照所述方法,给节点继续缓存视频;如果Di′等于0或者集合Ni为空集,则表示节点i的剩余缓存空间已经分配完,或者节点i已经缓存所有的视频,集合Pi=Pi∪Pi″,得到节点i中缓存的全部视频;
遍历完集合M中的所有节点i后,此时所有节点的缓存空间都已经被填满,并得到全部节点i和视频k对应的yi k值;记录每个节点的缓存分配结果,即每个节点缓存的视频集合Pi,并根据节点缓存空间分配结果得到缓存命中量的值。
6.根据权利要求2所述基于联合缓存架构的网络内视频缓存方法,其特征在于,步骤一在所有节点缓存特定的视频中的(1-4)寻找最佳分配方式:
总缓存空间中用于缓存请求概率高的视频的空间比例α越大,缓存命中量也越大,则将缓存命中量表示为α的一个函数H(α),即
选择一个更大的α能够提升系统的性能,避免网络无法缓存全部视频,采用二分法在[0,1]区间内寻找最佳α,在保证缓存全部视频的前提下,使得目标值H(α)取得最大值,为α值设置一个下界αl=0,得到对应H(αl)的值;
若集合Yk为空集,表示当前α值不合理,即系统全部容量都无法保证覆盖全部视频,系统对容量不足的情况不作处理;
若集合Yk为空集,为α值设置一个上界αu=1,得到对应H(αu)的值,如果没有缓存视频的集合Nr为空集,则表示用系统全部容量的α倍缓存的请求概率最高的视频即为所有的视频N,因此直接得到最佳α为1;
如果有缓存视频的集合Nr为空集,在αl和αu之间使用二分查找法,若H(αl)<H(αu),则令αl=(αlu)/2,重新计算H(αl);若H(αl)>H(αu),则令αu=(αlu)/2,重新计算H(αu),直到H(αl)=H(αu),此时得到的H(α)为最大。
7.根据权利要求1所述基于联合缓存架构的网络内视频缓存方法,其特征在于,步骤二中确定获取视频的最佳源节点:
当一个节点i接收到对视频k的请求时,节点i先在本地缓存中寻找视频k,如果有则直接将视频k发送给用户,否则在其他网络节点的缓存中寻找视频k;当存在多个其他网络节点都缓存有视频k时,选择其中一个网络节点作为所请求视频k的最佳源节点;
把网络进行视频缓存的时间划分为若干个轮,每一轮持续时间为△t,在每一轮时间内,每个网络节点从用户端接收请求;
对于网络中的所有链路l,用fl表示链路l上的总的传输速率;用L(j,i)表示从节点j到节点i的路径;用ζl(·)表示已知的链路时延函数,是一个关于负载fl的单调递增函数,则表示从节点j发送一个单元的数据到节点i的时延成本;用Ri表示一轮时间内节点i中被请求但没有缓存的视频的集合;用rk表示视频k的传输速率;用Tk表示拥有视频k复本的所有节点的集合;用表示所有节点获取视频的加权时延成本之和;
通过为每个视频k的请求选择最佳的视频源节点,使所有节点获取视频的加权时延成本之和达到最小,即使取得最小值;
按如下步骤进行:
(2-1)建立本地负载表,网络中的路由器定期地将各条链路的负载信息,即传输速率报告给各个网络节点,每个节点接收报告后建立一个具有全部链路负载信息的本地负载表;
(2-2)根据本地负载表寻找最佳源节点,每轮时间△t结束时,网络节点i处理接收到的视频请求,假设收到对于视频k的请求,则合并节点i中对于视频k的全部请求;若节点i的本地缓存中无视频k,则节点i根据本地负载表获取每条链路的负载fl,由得到传输视频k到节点i时延成本最小的节点j*,其中每条链路l必须满足fl≤Cl,Cl表示链路l的容量,即该链路所允许的最大的传输速率;确定最佳源节点j*后,节点i向节点j*请求发送视频k;
(2-3)更新本地负载表,节点i向节点j*发送对于视频k的请求后,节点i和节点j*更新节点i和节点j*的本地负载表,将路径L(j*,i)经过的所有链路l的负载fl变成fl+rk,并将更新消息发送给网络中的路由器;路由器将更新消息广播给网络中的每一个节点,各个节点收到更新消息后更新本地负载表;
为节点i中的对视频k的请求找到了最佳的源节点j*,用户通过最佳源节点j*得到所请求的视频。
CN201611199493.1A 2016-12-22 2016-12-22 一种基于联合缓存架构的网络内视频缓存方法 Active CN106686399B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611199493.1A CN106686399B (zh) 2016-12-22 2016-12-22 一种基于联合缓存架构的网络内视频缓存方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611199493.1A CN106686399B (zh) 2016-12-22 2016-12-22 一种基于联合缓存架构的网络内视频缓存方法

Publications (2)

Publication Number Publication Date
CN106686399A CN106686399A (zh) 2017-05-17
CN106686399B true CN106686399B (zh) 2019-07-02

Family

ID=58871443

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611199493.1A Active CN106686399B (zh) 2016-12-22 2016-12-22 一种基于联合缓存架构的网络内视频缓存方法

Country Status (1)

Country Link
CN (1) CN106686399B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107295070B (zh) * 2017-05-31 2019-10-29 上海交通大学 文件大小异构的分布式编码缓存放置方法及系统
CN107889160B (zh) * 2017-11-15 2020-03-17 北京邮电大学 一种考虑用户时延的小小区网络边缘部分缓存方法
CN110475289B (zh) * 2018-05-10 2023-12-01 中国信息通信研究院 一种面向超密集组网的负载均衡方法及系统
CN109788305B (zh) * 2018-12-10 2021-03-02 北京爱奇艺科技有限公司 一种缓存数据的刷新方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102326161A (zh) * 2009-02-20 2012-01-18 阿尔卡特朗讯 拓扑敏感的缓存协作
CN103974138A (zh) * 2014-04-15 2014-08-06 上海聚力传媒技术有限公司 用于在内容分发网络中预加载视频的方法与设备
CN105022700A (zh) * 2015-07-17 2015-11-04 哈尔滨工程大学 一种基于缓存空间划分和内容相似度的命名数据网络缓存管理系统和管理方法
CN105610941A (zh) * 2015-12-28 2016-05-25 安徽工业大学 一种移动网络中基于节点分组的数据分片缓存方法
CN105897828A (zh) * 2015-11-27 2016-08-24 乐视云计算有限公司 节点缓存机制的确定方法及系统
CN106131182A (zh) * 2016-07-12 2016-11-16 重庆邮电大学 命名数据网络中一种基于流行度预测的协作缓存方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110107030A1 (en) * 2009-10-29 2011-05-05 Simon Borst Self-organizing methodology for cache cooperation in video distribution networks

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102326161A (zh) * 2009-02-20 2012-01-18 阿尔卡特朗讯 拓扑敏感的缓存协作
CN103974138A (zh) * 2014-04-15 2014-08-06 上海聚力传媒技术有限公司 用于在内容分发网络中预加载视频的方法与设备
CN105022700A (zh) * 2015-07-17 2015-11-04 哈尔滨工程大学 一种基于缓存空间划分和内容相似度的命名数据网络缓存管理系统和管理方法
CN105897828A (zh) * 2015-11-27 2016-08-24 乐视云计算有限公司 节点缓存机制的确定方法及系统
CN105610941A (zh) * 2015-12-28 2016-05-25 安徽工业大学 一种移动网络中基于节点分组的数据分片缓存方法
CN106131182A (zh) * 2016-07-12 2016-11-16 重庆邮电大学 命名数据网络中一种基于流行度预测的协作缓存方法

Also Published As

Publication number Publication date
CN106686399A (zh) 2017-05-17

Similar Documents

Publication Publication Date Title
CN106686399B (zh) 一种基于联合缓存架构的网络内视频缓存方法
CN109947545B (zh) 一种基于用户移动性的任务卸载及迁移的决策方法
CN110098969B (zh) 一种面向物联网的雾计算任务卸载方法
EP2704402B1 (en) Method and node for distributing electronic content in a content distribution network
CN109951869B (zh) 一种基于云雾混合计算的车联网资源分配方法
WO2018108166A1 (en) Data pre-fetching in mobile networks
CN107181734B (zh) 一种cdn-p2p网络架构的流媒体缓存替换方法
CN108834080B (zh) 异构网络中基于多播技术的分布式缓存和用户关联方法
CN105979274B (zh) 动态自适应视频流媒体的分布式缓存放置方法
CN108259628B (zh) 异构蜂窝网络中内容缓存与用户关联联合优化方法
CN107708152B (zh) 异构蜂窝网络的任务卸载方法
CN104507124A (zh) 一种基站缓存的管理方法及用户访问的处理方法
CN108307446B (zh) 一种基于软件定义的无线网络边缘协作缓存系统与方法
CN106851741B (zh) 蜂窝网络中基于社交关系的分布式移动节点文件缓存方法
CN107820278B (zh) 蜂窝网络时延与成本均衡的任务卸载方法
CN109495865B (zh) 一种基于d2d辅助的自适应缓存内容放置方法及系统
CN110913239B (zh) 一种精细化的移动边缘计算的视频缓存更新方法
CN116963182A (zh) 时延最优任务卸载方法、装置、电子设备和存储介质
CN109672626B (zh) 一种基于排队延迟利用的服务聚合方法
WO2017113373A1 (zh) 一种缓存的方法及分组数据网关
CN106790638B (zh) 命名数据网络中基于主动缓存的数据传输方法及系统
CN107295103B (zh) 基于集中式p2p系统的节点管理方法
Yao et al. Joint caching in fronthaul and backhaul constrained C-RAN
CN115858142A (zh) 基于边缘计算的分布式流行数据缓存分配方法
WO2018090315A1 (zh) 数据请求的处理方法及缓存系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant