CN101951395B - 一种基于访问预测的P2P VoD系统服务端的数据缓存策略 - Google Patents

一种基于访问预测的P2P VoD系统服务端的数据缓存策略 Download PDF

Info

Publication number
CN101951395B
CN101951395B CN 201010267680 CN201010267680A CN101951395B CN 101951395 B CN101951395 B CN 101951395B CN 201010267680 CN201010267680 CN 201010267680 CN 201010267680 A CN201010267680 A CN 201010267680A CN 101951395 B CN101951395 B CN 101951395B
Authority
CN
China
Prior art keywords
data
request
node
pull
service end
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
CN 201010267680
Other languages
English (en)
Other versions
CN101951395A (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.)
Zhengzhou Xinrand Network Technology Co ltd
Original Assignee
Institute of Acoustics CAS
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 Institute of Acoustics CAS filed Critical Institute of Acoustics CAS
Priority to CN 201010267680 priority Critical patent/CN101951395B/zh
Publication of CN101951395A publication Critical patent/CN101951395A/zh
Application granted granted Critical
Publication of CN101951395B publication Critical patent/CN101951395B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种基于访问预测的P2P VoD系统服务端的数据缓存策略,该策略包括数据访问分类及预测策略、数据预取策略和缓存队列维护策略。其中,数据访问分类及预测子策略负责将对本服务端的数据请求分类,并根据VoD应用的特点对不同类别请求使用不同方法进行访问预测,预测进行数据请求的节点在未来时刻的数据访问目标;缓存队列维护子策略负责维护一个定长缓存队列,使用基于未来访问频率的缓存替换算法进行缓存队列的插入删除及替换操作,未来访问频率的计算综合该缓存项未来被顺序、随机访问到的概率,并将P2P VoD系统中节点上下线及更换服务端等数据访问稳定性方面的影响因素计算在内。

Description

一种基于访问预测的P2P VoD系统服务端的数据缓存策略
技术领域
本发明涉及信息技术领域中的流媒体点播技术应用,特别涉及一种基于访问预测的P2P VoD系统服务端的数据缓存策略。
背景技术
VoD(Video-on-Demand)系统是因特网最重要的多媒体应用之一。近年来P2P架构的VoD系统逐渐兴起。
为降低响应延迟,增大并发能力,VoD服务器广泛使用磁盘I/O数据缓存技术:通过将部分磁盘数据缓存于内存等高速存储设备来降低对相对低速的磁盘的I/O次数,进而降低服务流程所耗用时间。在使用节点磁盘缓存的P2P VoD系统中,普通节点可作为轻量级服务器为其他节点服务。以下将P2P VoD系统中的服务器及使用硬盘缓存对外服务的节点统称为服务端。
数据缓存层是一种提供透明数据存取服务的中间层。它利用数据访问预测及数据预取、缓存队列维护等技术,使得上层软件能以最快的速度读取到其所需要的数据,可解决存储设备I/O带宽不足问题,提高响应速度和服务器并发能力。
在C/S架构VoD系统中,所有节点均向服务器请求数据,使得服务器的数据访问有持续性的良好顺序模式。而P2P VoD系统中由于存在大量服务端,导致对各服务端的数据请求中混杂了顺序模式访问与随机无序的访问,并且P2P VoD系统中节点可以更换向其提供数据的服务端,导致对服务端的数据访问持续性变差。
应用于C/S架构VoD系统的服务器数据缓存策略多利用VoD的顺序访问模式,在连续出现前后2个对同一媒体文件的顺序访问时,将前一序列访问过的数据缓存供后一序列使用,典型的如基于访问间隔的缓存策略及其改进方法。但在P2P VoD系统的数据访问模式下,传统C/S架构VoD系统所使用的数据缓存策略将无法有效降低磁盘I/O次数。由于磁盘I/O操作是数据服务流程中的主要耗时阶段,在相同数据请求负载下,I/O次数的上升将导致服务端特别是服务器的服务周期变长,响应延迟加大,所以需要针对P2PVoD特有的数据访问模式设计新的数据缓存策略。
发明内容
本发明的目的在于,解决P2P VoD系统的特殊数据访问模式带来的现有数据缓存策略不适用的问题,从而降低P2P VoD系统服务端服务流程所耗时间,使得上层软件能以最快的速度读取到其所需要的数据,并可解决存储设备I/O带宽不足问题,提高响应速度和服务器并发能力。
为实现上述发明目的,本发明提出一种基于访问预测的P2P VoD系统服务端的数据缓存策略。
所述的基于访问预测的P2P VoD系统服务端的数据缓存策略,包括数据访问分类及预测策略、数据预取策略和缓存队列维护策略,其特征在于:
所述的数据访问分类及预测策略,根据推模式下、拉模式下或推拉结合模式下的数据传输的特征,以及VoD应用无VCR操作时节点按顺序依次访问视频数据的特点,对向本服务端进行数据请求的各节点进行分类,按照该节点的数据请求整体趋势,将节点分类为处于顺序请求状态的节点与处于随机请求状态的节点;
对处于顺序请求状态下的节点发送来的数据请求,判断该数据请求中所请求的各个数据片段是否依次处于该节点顺序请求序列中:对依次处于该节点顺序请求序列中的数据片段,判定为节点对顺序数据的请求,按照该节点的历史平均数据请求速度估算其未来数据访问目标;对未依次处于该节点顺序请求序列中的数据片段,判定为节点对随机数据的请求,并进行进一步的分类与预测,判断此数据片段是否为播放点前的紧急数据:如果是播放点前的紧急数据,按照影片平均码率及数据请求周期来估算其未来随机数据访问目标;若不是,则服务端不主动预测来自请求端的下一次随机数据请求什么时刻发生,而是服务端在被动接收到请求端发出的随机数据请求时直接进行数据读取、发送等处理;
对处于随机请求状态的节点发送来的数据请求,服务端不主动预测来自请求端的下一次数据请求什么时刻发生,而是服务端在被动接收到请求端发出的数据请求时直接进行数据读取和发送处理;
所述的缓存队列维护策略,使用基于未来访问频率的缓存替换算法进行缓存队列的插入、删除及替换操作,缓存项权值的计算需要综合该项未来被顺序与随机访问到的概率,以及P2P VoD系统中节点上下线及更换服务端对数据访问稳定性方面的影响因素。
在推模式或推拉结合模式数据调度策略下,所述的数据访问分类及预测策略包括步骤:
步骤(1):当本服务端接收到一个来自某节点P的推模式下的数据请求报文Push_Req={M,[sb,se],Tstart,Tend},表示需要服务端在Tstart到Tend时间内,将视频M的[sb,se]区间内的数据段按顺序匀速发送给节点P;因此,判定在时间[Tstart,Tend]内,节点P处于顺序数据请求状态,顺序请求速度为Vseq=(sb-se)/(Tend-Tstart);
步骤(2):在满足步骤(1)中的条件后,计算sb之后的数据sb+i的预期被访问时间为(sb+i-sb)/Vseq
步骤(3):在Tstart到Tend时间内,判定节点P发送来的所有拉模式下的数据请求均处于P的依次顺序请求序列中,即:将节点P发送来的所有拉模式下的数据请求分类为对随机数据的请求;
步骤(4):在时间[Tstart,Tend]内,若本服务端接收到节点P发送来取消数据请求报文,或未接收到该节点发送来的后续推模式下的数据请求报文,则判定节点P顺序请求状态结束,变为处于随机请求状态,并重新开始对来自节点P的数据请求进行顺序判断;
步骤(5):对未被判定处于顺序请求状态的节点,将该节点判定为处于随机请求状态。服务端不主动提前预测来自该节点的下一次数据请求什么时刻发生,而是服务端在被动接收该节点发出的数据请求并直接进行数据读取、发送处理。
在拉模式数据调度策略下,所述的数据访问分类及预测策略包括步骤:
步骤(1):设节点P以时长TpullCycle为周期向服务端发出拉模式数据请求报文Pulli={M,{si1,si2,...,sin}},请求服务端在接下来的TpullCycle时长内向节点P发送视频M的数据si1~sin。若在P的连续Δ个拉模式下的数据请求中均具有相对连续区间
Figure BSA00000251251200031
且每两个相邻请求的相对连续区间满足式(1),则判定该节点的拉模式下的数据请求处于顺序请求状态;
s b ( i ) ≤ s e ( i + 1 ) - N lim s e ( i ) ≥ s b ( i + 1 ) s e ( i ) - s b ( i ) ≥ N lim ( s e ( i + 1 ) - s b ( i + 1 ) ) ≥ ( 1 - α ) × ( s e ( i ) - s b ( i ) ) ( s e ( i + 1 ) - s b ( i + 1 ) ) ≤ ( 1 - α ) × ( s e ( i ) - s b ( i ) ) - - - ( 1 )
相对连续区间的定义为:对于正整数集合A={a1,a2,...,an},若a1<a2<...<an,且A的任意两个相邻元素的差满足max(ai+1-ai)=σ,则称A为一个度为σ的相对连续区间,记做
Figure BSA00000251251200033
式(1)中,sl_b、sl_e、sl-1_b、sl-1_e分别为节点P最近两次请求的相对连续区间上下限;此时,顺序请求速度
Figure BSA00000251251200041
步骤(2):在满足式(1)条件后,计算sb(i)之后的数据sb(i)+k的预期被访问时间为(sb(i)+k-sb(i))/Vseq
步骤(3):在满足式(1)条件后,对于节点P的拉式数据请求Pullj中的元素sjx,若sjx不满足
Figure BSA00000251251200042
判定sjx不在P的依次顺序请求序列中,,将节点P对sjx请求分类为对随机数据请求;
步骤(4):在节点P被判定处于顺序请求状态之后,一旦节点P在某一周期未按时间发送拉模式数据请求,或某次请求Pullj与其前一次请求Pullj-1不满足式(1)所列条件,则判定节点P的顺序请求状态结束,变为处于随机请求状态,并重新开始对来自节点P的数据请求进行顺序判断;
步骤(5):对未被判定处于顺序请求状态的节点,将该节点判定为处于随机请求状态。服务端不主动提前预测来自该节点的下一次数据请求什么时刻发生,而是服务端被动接收该节点发出的数据请求并直接进行数据读取、发送处理。
所述的对随机数据请求分类及预测包括步骤:
步骤(1):对未依次处于该节点顺序请求序列中的数据片段,判定为节点对随机数据请求,并进一步判断请求的数据片段是否为播放点前的紧急数据,只有节点采用拉模式下的顺序数据调度策略,并且该数据片段是在拉模式下数据请求中处于相对连续区间
Figure BSA00000251251200043
起点sb(i)之前的数据,才判断节点请求的该随机数据片段是播放前的紧急数据;
步骤(2):在没有VCR操作的情况下,播放点的前进速度是匀速,采用按照影片平均码率及数据请求周期来估算其未来随机数据访问目标;因此,若在T时刻节点P向服务端请求了其播放点前的紧急数据sx,则做出以下预测:在T+TpullCycle时刻,节点P的下一次拉模式下的请求将请求P播放点前的紧急数据段sx+TpullCycle×R/Lseg,R为该视频的平均码率;
步骤(3):对于使用除顺序数据调度策略之外的拉模式下的随机数据请求,此时,服务端不主动提前预测来自该请求端的下一次随机数据请求什么时刻发生,而是服务端被动接收请求端发出的数据请求并直接进行数据读取、发送处理。
所述的缓存队列维护策略包括步骤:
步骤(1):当向缓存队列插入一缓存项Ix时,若缓存队列未满,则直接将该缓存项插入缓存队列,缓存添加结束,否则转至步骤(2)进行缓存替换操作;
步骤(2):若缓存队列已满,则按以下公式计算缓存队列中各缓存项的未来被访问频率Uitem
U rand ( Tcur ) = n T cur - T 1 × min ( 1 , ( T cur - T 1 ) / n T cur - T r )
POn=1-λOn(Tdur-Tcur)
Figure BSA00000251251200052
U seq ( Tcur ) = Σ i P on × P serve T dur ( i ) - T cur ;
Uitem(Tcur)=Urand(Tcur)+Useq(Tcur)
以上公式中,Tcur为当前时间,λOn为使用负指数分布拟合VoD系统节点在线时长分布的参数;
Figure BSA00000251251200054
为P2P VoD系统中节点在由服务器进行的状态与由普通节点进行服务的状态之间变化的状态转移矩阵,该状态转移矩阵的状态转移时间步长为拉方式请求的请求周期TpullCycle;维护数据项Tcreate的物理意义为:该项被创建时间;维护数据项T1的物理意义:该项第一次被访问时间;维护数据项Tr的物理意义:该项最后一次被访问时间;维护数据项n的物理意义:该项被随机访问过的次数;维护数据项DUR={<ID(i),Tdur(i)>}的物理意义:该项预计被访问的节点<ID-时间>集合;
步骤(3):找出缓存队列中未来被访问频率值Uitem最小的缓存项Imin,设其Uitem值为Umin,若Ix的未来被访问频率值Ux与Umin相比满足以下条件之一:
Figure BSA00000251251200055
则将Imin从缓存中删除并将Ix添入缓存,缓存替换结束;否则放弃添加Ix,缓存替换结束。
本发明的优点在于,该数据缓存策略降低了P2P VoD系统服务端的服务流程所耗时间,增大并发服务能力,使之能同时为更多用户提供服务。
附图说明
图1基于访问预测的P2P VoD系统服务端的数据缓存策略的结构示意图;
图2基于访问预测的P2P VoD系统服务端的数据缓存策略的流程图;
图3基于访问预测的P2P VoD系统服务端的数据缓存策略中缓存队列维护策略的缓存队列插入操作流程图。
具体实施方式
下面结合附图和具体实施例对本发明提出的基于访问预测的P2P VoD系统服务端的数据缓存策略进行详细的说明。
基于访问预测的P2P VoD系统服务端的数据缓存策略的结构示意图,如图1所示,所述的数据访问分类及预测策略,根据推模式下、拉模式下或推拉结合模式下的数据传输的特征,以及VoD应用无VCR操作时节点按顺序依次访问视频数据的特点,对向本服务端进行数据请求的各节点进行分类,按照该节点的数据请求整体趋势,将节点分类为处于顺序请求状态的节点与处于随机请求状态的节点。
对处于顺序请求状态下的节点发送来的数据请求,判断该数据请求中所请求的各个数据片段是否依次处于该节点顺序请求序列中:对依次处于该节点顺序请求序列中的数据片段,判定为节点对顺序数据的请求,按照该节点的历史平均数据请求速度估算其未来数据访问目标;对未依次处于该节点顺序请求序列中的数据片段,判定为节点对随机数据的请求,并进一步的分类与预测,判断此数据片段是否为播放点前的紧急数据:如果是播放点前的紧急数据,按照影片平均码率及数据请求周期来估算其未来随机数据访问目标;若不是,则服务端不主动预测来自请求端的下一次随机数据请求什么时刻发生,而是服务端在被动接收到请求端发出的数据请求时直接进行数据读取、发送等处理。
对处于随机请求状态的节点发送的数据请求,则服务端不主动预测来自请求端的下一次数据请求什么时刻发生,而是服务端在被动接收到请求端发出的数据请求时直接进行数据读取和发送处理。
所述的基于访问预测的P2P VoD系统服务端的数据缓存策略整体工作包括如下步骤:
步骤(1):当本服务端接收到来自节点P的数据请求时,按照以上所述数据访问分类及预测策略对节点P的访问状态以及数据请求内对各数据项的请求性质进行分类,更新访问节点列表中节点P的状态;按照以上所述数据访问分类及预测策略的访问预测结果,将预测到的未来访问区间内的数据按照异步预取等通用预取算法预取到缓存队列中。转至步骤(2);
步骤(2):当服务端在时刻T须向节点P主动推送或被动发送某数据项sx时,判断该数据项是否在缓存队列中,若在,转至步骤(2.1);若不存在,转至步骤(2.2);
步骤(2.1):若节点P当前处于顺序访问状态且当前需访问的数据项为对顺序数据区间的访问,则转至步骤(2.1.1),否则转至步骤(2.1.2);
步骤(2.1.1):本次为对于顺序数据的访问命中,删除该缓存项中对应当前访问的访问记录;若本数据项的后续一个数据项不在缓存队列中,则按异步预取等通用预取算法取后续数据。转至步骤(3);
步骤(2.1.2):本次为对于随机数据的访问命中,更新对应的缓存项的访问计数及最后被访问时间值。若本次访问被数据访问分类及预测子策略判定为播放点前的紧急数据,则将与本数据项相距一个拉请求周期影片播放量的数据项放入缓存队列,并向该缓存项添加预期访问记录。转至步骤(3);
步骤(2.2):若节点P当前处于顺序访问状态且当前需访问的数据项为对顺序数据区间的访问,则转至步骤(2.2.1),否则转至步骤(2.2.2);
步骤(2.2.1):本次为顺序访问脱靶,从磁盘读入数据并将数据发送给请求该数据的节点;为本数据项生成临时缓存项,更新该临时缓存项的访问计数及最后被访问时间值,以缓存队列管理子策略的缓存队列插入步骤将该临时缓存项插入缓存队列,按异步预取等通用预取算法预取本数据项之后的后续数据。转至步骤(3);
步骤(2.2.2):本次为随机访问脱靶,从磁盘读取当前数据项及后续一个拉请求周期播放量的数据;为当前访问的数据项生成对应的临时缓存项,更新该临时缓存项的访问计数以及最后被访问时间值;按缓存队列管理子策略的缓存项插入步骤将该临时缓存项存入缓存;将与本数据项相距一个拉请求周期影片播放量的数据项放入缓存队列,并向该缓存项添加预期访问记录。转至步骤(3);
步骤(3):若本服务端仍需向节点P主动推送或被动发送其他数据,转至步骤(2);否则转至步骤(1)。
基于访问预测的P2P VoD系统服务端的数据缓存策略的流程图,如图2所示,基于访问预测的P2P VoD系统服务端的数据缓存策略的具体实施步骤如下:
步骤(1):进行程序初始化缓存队列项数M,设定初始节点在线时长参数λOn、P2P节点状态转移概率矩阵
Figure BSA00000251251200081
拉式请求顺序判断阈值Δ,转步骤(2):
步骤(2):当本服务端接收到P2P VoD网络中某节点P发送来的数据请求报文时,转步骤(3);
步骤(3):使用数据访问分类及预测子策略判断节点P的访问状态、判断节点P本次数据访问中对各数据项的访问状态、预测节点P的未来数据访问目标。首先判断该报文的类型:若为推式数据订阅报文转至步骤(3.1),若为取消数据订阅报文转步骤(3.2),若为拉式数据请求报文转至步骤(3.3);
步骤(3.1):节点P的推式数据订阅报文Push_Req={M,[sb,se],Tstart,Tend},表示需要服务端在Tstart到Tend时间内,将影片M的[sb,se]区间内的数据段按顺序匀速发送给节点P。若节点P不在本服务端维护的接受服务节点列表里,将P插入该列表。将该列表中节点P的访问状态修改为“顺序请求状态”,记录P的顺序请求有效时间区间为[Tstart,Tend],记录P的顺序请求起点为sb,顺序请求速度为Vseq=(sb-se)/(Tend-Tstart),转到步骤(3.1.1);
步骤(3.1.1):计算[sb,se]区间内各数据的预期被访问时间,sb+i的预期被访问时间设定为(sb+i-sb)/Vseq。转至步骤(4);
步骤(3.2):接收到节点P的取消数据订阅报文后,将P从本服务端的接受服务节点列表里删除,转回至步骤(2);
步骤(3.3):接收到节点P的拉式数据请求报文后,检查节点P是否存在于本服务端的接受服务节点列表里,若在则转到步骤(3.3.1),不在则转到步骤(3.3.2);
步骤(3.3.1):更新接受服务节点列表中P的最后一次拉式请求时间TlastPull。若节点P的状态为“随机请求状态”,转至步骤(3.3.1.1);若本P2P VoD系统采用推或推拉结合数据调度策略,且节点P的状态为“顺序请求状态”,则将P节点本次发送的拉式数据请求中的所有数据请求项均判定为“对于随机数据的请求”,转至步骤(4);若本P2P VoD系统采用拉式数据调度策略,且节点P的状态为“顺序请求状态”,转至步骤(3.3.1.2);
步骤(3.3.1.1):节点P的拉模式数据请求Pulli={M,{si1,si2,...,sin}},请求周期为TpullCycle,该请求意义为:要求服务端在接下来的TpullCycle时长内向其发送影片M的数据si1~sin。若在P的最近Δ个连续拉式数据请求中均具有相对连续区间
Figure BSA00000251251200082
且每两个相邻请求的相对连续区间满足下式:
s b ( i ) &le; s e ( i + 1 ) - N lim s e ( i ) &GreaterEqual; s b ( i + 1 ) s e ( i ) - s b ( i ) &GreaterEqual; N lim ( s e ( i + 1 ) - s b ( i + 1 ) ) &GreaterEqual; ( 1 - &alpha; ) &times; ( s e ( i ) - s b ( i ) ) ( s e ( i + 1 ) - s b ( i + 1 ) ) &le; ( 1 - &alpha; ) &times; ( s e ( i ) - s b ( i ) ) 公式(1)
则判定该节点的拉模式数据请求处于“顺序请求状态”,将本服务端的接受服务节点列表中节点P的访问状态修改为“顺序请求状态”,记录P的顺序请求起点为sb(i),顺序请求速度为
Figure BSA00000251251200092
sl_b、sl_e、sl-1_b、sl-1_e分别为节点P最近两次请求的相对连续区间上下限。
其中,相对连续区间的定义如下:
定义:对于正整数集合A={a1,a2,...,an},若a1<a2<...<an,且A的任意两个相邻元素的差满足max(ai+1-ai)=σ,则称A为一个度为σ的相对连续区间,记做
Figure BSA00000251251200093
转至步骤(3.3.1.1.1);
步骤(3.3.1.1.1):标记[sb(i),se(i)]区间内各数据的预期被访问时间,sb(i)+j的预期被访问时间为(sb(i)+j-sb(i))/Vseq;转至步骤(3.3.1.1.2);
步骤(3.3.1.1.2):对于节点P的拉式数据请求Pullj中的元素sjx,若sjx不满足视sjx为对于随机数据的请求。转至步骡(4);
步骤(3.3.1.2):若本次拉式数据请求Pullj与其前一次请求Pullj-1不满足公式(1)所列条件,或当前时间与P的TlastPull时间之差大于TpullCycle的α倍(1.0<α<1.5),转至步骤(3.3.1.2.1),否则转至步骤(3.3.1.2.2);
步骤(3.3.1.2.1):判定节点P的顺序请求状态结束,将本服务端的接受服务节点列表中节点P的访问状态修改为“随机请求状态”,记录P的本次拉式请求的相对连续区间的sb、se值,将本次请求报文内对所有数据项的请求均视为随机数据请求,转至步骤(4);
步骤(3.3.1.2.2):维持节点P的“顺序请求状态”,并记录P的本次拉式请求的相对连续区间的sb、se值,将本次请求Pullj中携带的对相对连续区间起点sb之前数据项的请求视为随机数据请求,转至步骤(4);
步骤(3.3.2):节点P不在本服务端的接受服务节点列表中,在该列表中添加节点P记录,将节点P的状态标识为“随机请求状态”,记录P的拉式请求时间TlastPull,以及本次拉式请求中相对连续区间的首尾值sb、se,将本次请求报文内对所有数据项的请求均视为随机数据请求,转至步骤(4);
步骤(4):进行数据预取,分为对连续数据的预取与随机请求数据的预取。将[sb,se]区间内的数据从磁盘内读出,将该区间内的各项由前到后依次按缓存队列管理子策略的缓存队列插入步骤插入缓存队列,转至步骤(5);
步骤(5):当本服务端在当前时刻T须向节点P发送数据项sx时,判断sx是否在缓存队列中,若在,转至步骤(5.1);若不在,转至步骤(5.2);
步骤(5.1):若节点P当前处于顺序请求状态且当前需访问的数据项为对顺序数据区间的访问,则转至步骤(5.1.1),否则转至步骤(5.1.2);
步骤(5.1.1):对于顺序请求命中,删除该缓存项中对应当前访问的预期访问记录,若本数据项的后续一个数据项不在缓存队列中,则按异步预取等通用预取算法取后续数据。转至步骤(6);
步骤(5.1.2):对于随机访问命中,更新对应的缓存项的访问计数及最后被访问时间值,若本P2P VoD系统采用顺序请求的拉式传输数据调度策略,节点P处于“顺序请求状态”,且sx处于其对应拉式数据请求报文Pullj的相对连续区间之前,则将数据项sx+TpullCycle×R预取入缓存队列,并为该缓存项添加预期访问时间TpullCycle+Tcur。转至步骤(6);
步骤(5.2):从磁盘读取[sx,sx+TpullCycle×R]区间内的数据,转至步骤(5.2.1);
步骤(5.2.1):为sx生成临时缓存项,设置该临时缓存项的访问计数为1,设置该临时缓存项的最后被访问时间值为当前时间,转至步骤(5.2.2);
步骤(5.2.2):以缓存队列管理子策略的缓存队列插入步骤将该临时缓存项插入缓存队列。对于顺序请求脱靶,从磁盘读入sx,转至步骤(5.2.3);
步骤(5.2.3):若节点P当前处于顺序请求状态且sx为对顺序数据区间的访问,转至步骤(5.2.3.1),否则转至步骤(5.2.3.2);
步骤(5.2.3.1):按异步预取等通用预取算法预取本数据项之后[sx+1,sx+TpullCycle×R]区间的数据。转至步骤(6);
步骤(5.2.3.2):为数据项sx+TpullCycle×R生成临时缓存项,向该临时缓存项添加预期访问时间TpullCycle+Tcur,并尝试以缓存队列管理子策略的缓存队列插入步骤将该临时缓存项插入缓存队列。转至步骤(6);
步骤(6):若在sx之后还有对其他数据项请求,转至步骤(5),否则转至步骤(2)。
基于访问预测的P2P VoD系统服务端的数据缓存策略中缓存队列维护策略的缓存队列插入操作流程图,如图3所示,基于访问预测的P2P VoD系统服务端的数据缓存策略中缓存队列维护策略的缓存队列插入操作流程步骤如下:
所述缓存队列维护策略维护一个M项的缓存队列,每个缓存项的大小均为Lseg Bytes。每个缓存项维护表1所示各信息:
表1缓存项所维护的信息
维护数据项   物理意义
Tcreate   该项被创建时间
T1   该项第一次被访问时间
Tr   该项最后一次被访问时间
n   该项被随机访问过的次数
DUR={<ID(i),Tdur(i)>}   该项预计被访问的节点<ID-时间>集合
步骤(1):当向缓存队列插入一缓存项Ix时,若缓存队列未满,则直接将该缓存项插入缓存队列,缓存添加结束,否则转至步骤(2)进行缓存替换操作;
步骤(2):若缓存队列已满,则按按以下公式计算缓存队列中各缓存项的未来被访问频率Uitem
U rand ( Tcur ) = n T cur - T 1 &times; min ( 1 , ( T cur - T 1 ) / n T cur - T r )
POn=1-λOn(Tdur-Tcur)
Figure BSA00000251251200112
U seq ( Tcur ) = &Sigma; i P on &times; P serve T dur ( i ) - T cur
Uitem(Tcur)=Urand(Tcur)+Useq(Tcur)
以上公式中:Tcur为当前时间,λOn为使用负指数分布拟合VoD系统节点在线时长分布的参数。
Figure BSA00000251251200114
为P2P VoD系统中节点在由服务器进行的状态与由普通节点进行服务的状态之间变化的状态转移矩阵,该状态转移矩阵的状态转移时间步长为拉方式请求的请求周期TpullCycle
转至步骤(3);
步骤(3):找出缓存队列中未来被访问频率值Uitem最小的缓存项Imin,设其Uitem值为Umin,若Ix的未来被访问频率值值Ux与Umin相比满足以下条件之一:
Figure BSA00000251251200121
则将Imin从缓存中删除并将Ix添入缓存,缓存替换结束;否则放弃添加Ix,缓存替换结束。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (4)

1.一种基于访问预测的P2P VoD系统服务端的数据缓存方法,数据缓存方法包括数据访问分类及预测方法、数据预取方法和缓存队列维护方法,其特征在于:
所述的数据访问分类及预测方法,根据推模式下、拉模式下或推拉结合模式下的数据传输的特征,以及VoD应用无VCR操作时节点按顺序依次访问视频数据的特点,对向本服务端进行数据请求的各节点进行分类,按照该节点的数据请求整体趋势,将节点分类为处于顺序请求状态的节点与处于随机请求状态的节点;
对处于顺序请求状态下的节点发送来的数据请求,判断该数据请求中所请求的各个数据片段是否依次处于该节点顺序请求序列中:对依次处于该节点顺序请求序列中的数据片段,判定为节点对顺序数据的请求,按照该节点的历史平均数据请求速度估算其未来数据访问目标;对未依次处于该节点顺序请求序列中的数据片段,判定为节点对随机数据的请求,并进行进一步的分类与预测,判断此数据片段是否为播放点前的紧急数据:如果是播放点前的紧急数据,按照影片平均码率及数据请求周期来估算其未来随机数据访问目标;若不是,则服务端在被动接收到请求端发出的随机数据请求时直接进行数据读取、发送处理;
对处于随机请求状态的节点发送的数据请求,服务端在被动接收到请求端发出的数据请求时直接进行数据读取和发送处理;
所述的缓存队列维护方法,使用基于未来被访问频率值Uitem的最小值Umin的缓存替换算法进行缓存队列的插入、删除及替换操作,缓存项权值的计算需要综合该项未来被顺序与随机访问到的概率,以及P2P VoD系统中节点上下线及更换服务端对数据访问稳定性方面的影响因素;
所述的缓存队列维护方法包括步骤:
步骤(1):当向缓存队列插入一缓存项Ix时,若缓存队列未满,则直接将该缓存项插入缓存队列,缓存添加结束,否则转至步骤(2)进行缓存替换操作;
步骤(2):若缓存队列已满,则按以下公式计算缓存队列中各缓存项的未来被访问频率Uitem
U rand ( Tcur ) = n T cur - T 1 &times; min ( 1 , ( T cur - T 1 ) / n T cur - T r )
P On = 1 - &lambda; On ( T dur - T cur )
Figure FDA00003180410100013
U seq ( Tcur ) = &Sigma; i P on &times; P serve T dur ( i ) - T cur ;
U item ( Tcur ) = U rand ( Tcur ) + U seq ( Tcur )
以上公式中,M表示缓存队列项数,Tcur为当前时间,λOn为使用负指数分布拟合VoD系统节点在线时长分布的参数; p pp p ps p sp p ss 为P2P VoD系统中节点在由服务器进行服务的状态与由普通节点进行服务的状态之间变化的状态转移矩阵,该状态转移矩阵的状态转移时间步长为拉方式请求的请求周期TpullCycle;维护数据项Tcreate的物理意义:该项被创建时间;维护数据项T1的物理意义:该项第一次被访问时间;维护数据项Tr的物理意义:该项最后一次被访问时间;维护数据项n的物理意义:该项被随机访问过的次数;维护数据项DUR={<ID(i),Tdur(i)>}的物理意义:该项预计被访问的节点<ID-时间>集合;
步骤(3):找出缓存队列中未来被访问频率值Uitem最小的缓存项Imin,设其Uitem值为Umin,若Ix的未来被访问频率值Ux与Umin相比满足以下条件之一:
Figure FDA00003180410100024
则将Imin从缓存中删除并将Ix添入缓存,缓存替换结束;否则放弃添加Ix,缓存替换结束。
2.根据权利要求1所述的基于访问预测的P2P VoD系统服务端的数据缓存方法,其特征在于:在推模式或推拉结合模式数据调度方法下,所述的数据访问分类及预测方法包括步骤:
步骤(1):当本服务端接收到一个来自某节点P的推模式下的数据请求报文Push_Req={M,[sb,se],Tstart,Tend},表示需要服务端在Tstart到Tend时间内,将视频M的[sb,se]区间内的数据段按顺序匀速发送给节点P;因此,判定在时间[Tstart,Tend]内,节点P处于顺序数据请求状态,顺序请求速度为Vseq=(sb-se)/(Tend-Tstart);
步骤(2):在满足步骤(1)中的条件后,计算sb之后的数据sb+i的预期被访问时间为(sb+i-sb)/Vseq
步骤(3):在Tstart到Tend时间内,判定节点P发送来的推模式下的数据请求均处于P的依次顺序请求序列中,即:将节点P发送来的推模式的数据请求分类为对顺序数据请求;
步骤(4):在时间[Tstart,Tend]内,若本服务端接收到节点P发送来取消数据请求报文,或未接收到该节点发送来的后续推模式下的数据请求报文,则判定节点P顺序请求状态结束,变为处于随机请求状态,并重新开始对来自节点P的数据请求进行顺序判断;
步骤(5):对未被判定处于顺序请求状态的节点,将该节点判定为处于随机请求状态,服务端不主动提前预测来自该节点的下一次数据请求什么时刻发生,而是服务端被动接收该节点发出的数据请求并直接进行数据读取、发送处理。
3.根据权利要求1所述的基于访问预测的P2P VoD系统服务端的数据缓存方法,其特征在于:在拉模式数据调度方法下,所述的数据访问分类及预测方法包括步骤:
步骤(1):设节点P以时长TpullCycle为周期向服务端发出拉模式数据请求报文Pulli={M,{si1,si2,...,sin}},请求服务端在接下来的TpullCycle时长内向节点P发送视频M的数据si1~sin,若在P的连续Δ个拉模式下的数据请求中均具有相对连续区间
Figure FDA00003180410100031
且每两个相邻请求的相对连续区间满足式(1),则判定该节点的拉模式下的数据请求处于顺序请求状态;
s b ( i ) &le; s e ( i + 1 ) - N lim s e ( i ) &GreaterEqual; s b ( i + 1 ) s e ( i ) - s b ( i ) &GreaterEqual; N lim ( s e ( i + 1 ) - s b ( i + 1 ) ) &GreaterEqual; ( 1 - &alpha; ) &times; ( s e ( i ) - s b ( i ) ) ( s e ( i + 1 ) - s b ( i + 1 ) ) &le; ( 1 + &alpha; ) &times; ( s e ( i ) - s b ( i ) ) - - - ( 1 )
Nlim表示起限制作用的自然数,相对连续区间的定义为:对于正整数集合A={a1,a2,...,an},若a1<a2<...<an,且A的任意两个相邻元素的差满足max(ai+1-ai)=σ,则称A为一个度为σ的相对连续区间,记做
Figure FDA00003180410100033
式(1)中,sl_b、sl_e、sl-1_b、sl-1_e分别为节点P最近两次请求的相对连续区间上下限;此时,顺序请求速度 V seq = ( s l _ e - s l _ b + s l - 1 _ e - s l - 1 _ b ) 2 &times; T pullCycle ;
步骤(2):在满足式(1)条件后,计算sb(i)之后的数据sb(i)+k的被访问时间为(sb(i)+k-sb(i))/Vseq
步骤(3):在满足式(1)条件后,对于节点P的拉式数据请求Pullj中的元素sjx,若sjx不满足 V seq &times; T pullCycle 2 &le; s jx - s j _ b + s j _ e 2 &le; 3 V seq &times; T pullCycle 2 , 判定sjx不在P的依次顺序请求序列中,将节点P对sjx请求分类为对随机数据请求;
步骤(4):在节点P被判定处于顺序请求状态之后,一旦节点P在某一周期未按时间发送拉模式数据请求,或某次请求Pullj与其前一次请求Pullj-1不满足式(1)所列条件,则判定节点P的顺序请求状态结束,变为处于随机请求状态,并重新开始对来自节点P的数据请求进行顺序判断;
步骤(5):对未被判定处于顺序请求状态的节点,将该节点判定为处于随机请求状态,服务端不主动提前预测来自该节点的下一次数据请求什么时刻发生,而是服务端被动接收该节点发出的数据请求并直接进行数据读取、发送处理。
4.根据权利要求1所述的基于访问预测的P2P VoD系统服务端的数据缓存方法,其特征在于:所述的对随机数据请求分类及预测包括步骤:
步骤(1):对未依次处于该节点顺序请求序列中的数据片段,判定为节点对随机数据请求,并进一步判断请求的数据片段是否为播放点前的紧急数据,只有节点采用拉模式下的顺序数据调度方法,并且该数据片段是在拉模式下数据请求中处于相对连续区间
Figure FDA00003180410100042
起点sb(i)之前的数据,才判断节点请求的该随机数据片段是播放前的紧急数据,其中,对于正整数集合A={sb(i),se(i)},若sb(i)<se(i)且A的任意两个相邻元素的差满足max(si+1-si)=σ,则称A为一个度为σ的相对连续区间,记作 A = [ s b ( i ) , s e ( i ) ] &OverBar; &sigma; ;
步骤(2):在没有VCR操作的情况下,播放点的前进速度是匀速,采用按照影片平均码率及数据请求周期来估算其未来随机数据访问目标;因此,若在T时刻节点P向服务端请求了其播放点前的紧急数据sx,则做出以下预测:在T+TpullCycle时刻,节点P的下一次拉模式下的请求将请求P播放点前的紧急数据段sx+TpullCycle×R/Lseg,R为该视频的平均码率;其中,TpullCycle表示请求周期,Lseg表示数据长度;
步骤(3):对于使用除顺序数据调度方法之外的拉模式下的随机数据请求,此时,服务端不主动提前预测来自该请求端的下一次随机数据请求什么时刻发生,而是服务端被动接收请求端发出的数据请求并直接进行数据读取、发送处理。
CN 201010267680 2010-08-30 2010-08-30 一种基于访问预测的P2P VoD系统服务端的数据缓存策略 Active CN101951395B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010267680 CN101951395B (zh) 2010-08-30 2010-08-30 一种基于访问预测的P2P VoD系统服务端的数据缓存策略

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010267680 CN101951395B (zh) 2010-08-30 2010-08-30 一种基于访问预测的P2P VoD系统服务端的数据缓存策略

Publications (2)

Publication Number Publication Date
CN101951395A CN101951395A (zh) 2011-01-19
CN101951395B true CN101951395B (zh) 2013-08-21

Family

ID=43454753

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010267680 Active CN101951395B (zh) 2010-08-30 2010-08-30 一种基于访问预测的P2P VoD系统服务端的数据缓存策略

Country Status (1)

Country Link
CN (1) CN101951395B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102323898A (zh) * 2011-09-02 2012-01-18 深圳中兴网信科技有限公司 一种缓存调度方法和系统
US9749403B2 (en) * 2012-02-10 2017-08-29 International Business Machines Corporation Managing content distribution in a wireless communications environment
CN103945278A (zh) * 2013-01-21 2014-07-23 中国科学院声学研究所 一种视频内容及内容源爬取方法
CN103428267B (zh) * 2013-07-03 2016-08-10 北京邮电大学 一种智慧缓存系统及其区分用户喜好相关性的方法
CN107168891B (zh) * 2014-07-23 2020-08-14 华为技术有限公司 一种i/o特征识别方法以及装置
CN105007281A (zh) * 2015-08-10 2015-10-28 武汉中元华电软件有限公司 一种基于时间预测的网络同步报文md5加密装置及加密方法
CN106060009B (zh) * 2016-05-12 2019-06-28 桂林电子科技大学 对等网络流媒体点播节点请求转移与缓存替换方法
US11290755B2 (en) 2017-01-10 2022-03-29 Qualcomm Incorporated Signaling data for prefetching support for streaming media data
CN106991060B (zh) * 2017-02-27 2020-04-14 华为技术有限公司 一种读cache的淘汰优化方法及装置
CN107563514A (zh) * 2017-09-25 2018-01-09 郑州云海信息技术有限公司 一种预测数据访问频率的方法及装置
CN108093056B (zh) * 2017-12-25 2020-11-10 重庆邮电大学 信息中心无线网络虚拟化网络中节点缓存替换方法
CN108183867B (zh) * 2017-12-25 2021-08-10 重庆邮电大学 信息中心网络节点缓存替换方法
CN108322768B (zh) * 2018-01-25 2020-12-01 南京邮电大学 基于cdn的视频空间分配方法
CN109451344A (zh) * 2018-12-28 2019-03-08 扬州大学 P2p流媒体系统中基于关联规则的缓存替换方法
CN109815294B (zh) * 2019-02-14 2019-12-20 北京谷数科技有限公司 一种无主节点分布并行数据存储方法和系统
CN110825520B (zh) * 2019-10-18 2023-08-29 山东省计算中心(国家超级计算济南中心) 一种实现资源高效利用的集群极速弹性伸缩方法
CN110968603B (zh) * 2019-11-29 2023-07-04 中国银行股份有限公司 一种数据访问方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101715650B (zh) * 2007-06-28 2012-03-21 纽约市哥伦比亚大学信托人 机顶盒对等端辅助的视频点播
CN100568957C (zh) * 2007-10-17 2009-12-09 华中科技大学 一种基于p2p技术的视频点播节目缓存方法
CN101540884B (zh) * 2009-04-23 2010-12-08 南京大学 一种基于跳图的对等化VoD系统构建方法

Also Published As

Publication number Publication date
CN101951395A (zh) 2011-01-19

Similar Documents

Publication Publication Date Title
CN101951395B (zh) 一种基于访问预测的P2P VoD系统服务端的数据缓存策略
Wu et al. Mobility-aware cooperative caching in vehicular edge computing based on asynchronous federated and deep reinforcement learning
US8078729B2 (en) Media streaming with online caching and peer-to-peer forwarding
WO2020253664A1 (zh) 视频传输方法、系统和存储介质
CN109982104A (zh) 一种移动边缘计算中移动感知的视频预取与缓存替换决策方法
CN104166630B (zh) 一种面向内容中心网络中基于预测的最优化缓存放置方法
CN103927136B (zh) 输入输出io类型的识别方法和装置
Yan et al. Distributed edge caching with content recommendation in fog-rans via deep reinforcement learning
CN117221403A (zh) 一种基于用户移动和联邦缓存决策的内容缓存方法
CN113496422B (zh) 一种基于区块链的推广资源分配方法及大数据信息云平台
CN113992770A (zh) 雾无线接入网中基于策略的联邦强化学习的协作缓存方法
Peng et al. Value‐aware cache replacement in edge networks for Internet of Things
Ugwuanyi et al. A novel predictive-collaborative-replacement (PCR) intelligent caching scheme for multi-access edge computing
Ju et al. Video prediction strategy based on Markov modified model
JP6146279B2 (ja) データ配信装置及びデータ配信方法
Li et al. Predictive edge caching through deep mining of sequential patterns in user content retrievals
Lei et al. Deep deterministic policy gradient-based edge caching: An inherent performance tradeoff
Si et al. Edge Caching Strategy Based on User's Long and Short Term Interests
US11977488B2 (en) Cache prefetching method and system based on K-Truss graph for storage system, and medium
Ma et al. Deep reinforcement learning based dynamic content placement and bandwidth allocation in Internet of Vehicles
Xie et al. The improvement of cache replacement algorithm in P2P streaming media system
Vivekanandan et al. Hybrid Harris Hawk‐Salp swarm optimization algorithm‐based integrated optimal data placement and task scheduling for improving the user experience in edge computing
Niknia et al. Edge Caching Based on Deep Reinforcement Learning
Abdennadher et al. Accurate prediction of mobility into publish/subscribe
Liu et al. PCR: caching replacement algorithm in proxy server

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210804

Address after: Room 1601, 16th floor, East Tower, Ximei building, No. 6, Changchun Road, high tech Industrial Development Zone, Zhengzhou, Henan 450001

Patentee after: Zhengzhou xinrand Network Technology Co.,Ltd.

Address before: 100190, No. 21 West Fourth Ring Road, Beijing, Haidian District

Patentee before: INSTITUTE OF ACOUSTICS, CHINESE ACADEMY OF SCIENCES