一种基于访问预测的P2PVoD系统服务端的数据缓存策略的制作方法

文档序号:7758479阅读:129来源:国知局
专利名称:一种基于访问预测的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系统服务端的数据缓存策略,包括数据访问分类 及预测策略、数据预取策略和缓存队列维护策略,其特征在于
5
所述的数据访问分类及预测策略,根据推模式下、拉模式下或推拉结合模式下的 数据传输的特征,以及VoD应用无VCR操作时节点按顺序依次访问视频数据的特点,对向本 服务端进行数据请求的各节点进行分类,按照该节点的数据请求整体趋势,将节点分类为 处于顺序请求状态的节点与处于随机请求状态的节点;对处于顺序请求状态下的节点发送来的数据请求,判断该数据请求中所请求的各 个数据片段是否依次处于该节点顺序请求序列中对依次处于该节点顺序请求序列中的 数据片段,判定为节点对顺序数据的请求,按照该节点的历史平均数据请求速度估算其未 来数据访问目标;对未依次处于该节点顺序请求序列中的数据片段,判定为节点对随机数 据的请求,并进行进一步的分类与预测,判断此数据片段是否为播放点前的紧急数据如果 是播放点前的紧急数据,按照影片平均码率及数据请求周期来估算其未来随机数据访问目 标;若不是,则服务端不主动预测来自请求端的下一次随机数据请求什么时刻发生,而是服 务端在被动接收到请求端发出的随机数据请求时直接进行数据读取、发送等处理;对处于随机请求状态的节点发送来的数据请求,服务端不主动预测来自请求端的 下一次数据请求什么时刻发生,而是服务端在被动接收到请求端发出的数据请求时直接进 行数据读取和发送处理;所述的缓存队列维护策略,使用基于未来访问频率的缓存替换算法进行缓存队列 的插入、删除及替换操作,缓存项权值的计算需要综合该项未来被顺序与随机访问到的概 率,以及P2P VoD系统中节点上下线及更换服务端对数据访问稳定性方面的影响因素。在推模式或推拉结合模式数据调度策略下,所述的数据访问分类及预测策略包括 步骤步骤⑴当本服务端接收到一个来自某节点P的推模式下的数据请求报文Push_ Req = {Μ, [sb, se],Tstart, Tend},表示需要服务端在Tstmt到Tmd时间内,将视频M的[sb,se] 区间内的数据段按顺序勻速发送给节点P ;因此,判定在时间[Tstmt,Tend]内,节点P处于顺 序数据请求状态,顺序请求速度为(sb-se)/(Tend-Tstart);步骤(2)在满足步骤(1)中的条件后,计算Sb之后的数据sb+i的预期被访问时间 为(sb+i-sb) /Vseq ;步骤⑶在Tstart到Tend时间内,判定节点P发送来的所有拉模式下的数据请求均 处于P的依次顺序请求序列中,即将节点P发送来的所有拉模式下的数据请求分类为对随 机数据的请求;步骤(4)在时间[Tstmt,Tend]内,若本服务端接收到节点P发送来取消数据请求 报文,或未接收到该节点发送来的后续推模式下的数据请求报文,则判定节点P顺序请求 状态结束,变为处于随机请求状态,并重新开始对来自节点P的数据请求进行顺序判断;步骤(5)对未被判定处于顺序请求状态的节点,将该节点判定为处于随机请求 状态。服务端不主动提前预测来自该节点的下一次数据请求什么时刻发生,而是服务端在 被动接收该节点发出的数据请求并直接进行数据读取、发送处理。在拉模式数据调度策略下,所述的数据访问分类及预测策略包括步骤步骤⑴设节点P以时长Tpull。y &为周期向服务端发出拉模式数据请求报文 Pulli = {M,{sn, si2, ... , sin}},请求服务端在接下来的Tpullcyde时长内向节点P发送视 频M的数据Sil sin。若在P的连续Δ个拉模式下的数据请求中均具有相对连续区间
6[ ,),·^)]σ,且每两个相邻请求的相对连续区间满足式(1),则判定该节点的拉模式下的数
据请求处于顺序请求状态;
Sb(i) - ^(/+1) _ Nlim
Se(i)— (/+1)
‘^ii)-sKO ^ n^⑴
— sKM))乏(1 — ) X (^(0 - ^(0) - w)) < (1 + ) X (^(0 - sb(i))相对连续区间的定义为对于正整数集合A = Ia1, a2,...,an},若ai < a2 < ...<an,且A的任意两个相邻元素的差满足maX(ai+1-ai) = σ,则称A为一个度为ο 的相对连续区间,记做A= K,ω丄;式(1)中,S1 b、S1 e、Sl_i b、Sl_Le分别为节点P最近两次请求的相对连续区间上下 限;此时,顺序请求速度ν叫= ( υ-η。);
pullCycle步骤⑵在满足式⑴条件后,计算sb(i)之后的数据sb(i)+k的预期被访问时间为
(sb(i)+k_sb(i))/Vseq ;步骤(3)在满足式(1)条件后,对于节点P的拉式数据请求Pullj中的元素Sjx,
ν χτs +s 2V χΤ
若不满足,^ulicycle < sjx - J-b 2 j-e < seq 2pullCycIe,判定 不在P的依次顺序请求
序列中,,将节点P对Sjx请求分类为对随机数据请求;步骤(4)在节点P被判定处于顺序请求状态之后,一旦节点P在某一周期未按时 间发送拉模式数据请求,或某次请求Pul^与其前一次请求PuIIh不满足式(D所列条件, 则判定节点P的顺序请求状态结束,变为处于随机请求状态,并重新开始对来自节点P的数 据请求进行顺序判断;步骤(5)对未被判定处于顺序请求状态的节点,将该节点判定为处于随机请求 状态。服务端不主动提前预测来自该节点的下一次数据请求什么时刻发生,而是服务端被 动接收该节点发出的数据请求并直接进行数据读取、发送处理。所述的对随机数据请求分类及预测包括步骤步骤(1)对未依次处于该节点顺序请求序列中的数据片段,判定为节点对随机 数据请求,并进一步判断请求的数据片段是否为播放点前的紧急数据,只有节点采用拉模 式下的顺序数据调度策略,并且该数据片段是在拉模式下数据请求中处于相对连续区间 [ ,),、)]σ起点sba)之前的数据,才判断节点请求的该随机数据片段是播放前的紧急数据;步骤⑵在没有VCR操作的情况下,播放点的前进速度是勻速,采用按照影片平 均码率及数据请求周期来估算其未来随机数据访问目标;因此,若在T时刻节点P向服务端 请求了其播放点前的紧急数据Sx,则做出以下预测在T+Tpulley&时刻,节点P的下一次拉模 式下的请求将请求P播放点前的紧急数据段sx+Tpulley。leXR/Lseg,R为该视频的平均码率;
步骤(3)对于使用除顺序数据调度策略之外的拉模式下的随机数据请求,此时, 服务端不主动提前预测来自该请求端的下一次随机数据请求什么时刻发生,而是服务端被 动接收请求端发出的数据请求并直接进行数据读取、发送处理。所述的缓存队列维护策略包括步骤步骤(1):当向缓存队列插入一缓存项Ix时,若缓存队列未满,则直接将该缓存项 插入缓存队列,缓存添加结束,否则转至步骤(2)进行缓存替换操作;步骤(2):若缓存队列已满,则按以下公式计算缓存队列中各缓存项的未来被访
问频率Uitem
rand (Tcur)Umnaucun
1Cur -1IP0n= I-A0n(Tdur-Tcur)
n XWinil^/n)
Tcur Tr
Pserve —χ
'PppPpsM X"0"PspPss-1_
,如果本服务端为服务器
J
,如果本服务端为普通节点 U
seq (Tcur)
Σ
Pon X Pse‘
Tdw (Γ) Tcur Uitem(Tcur) 一 Urand(Tcur) +Useq(Tcur)
以上公式中,Tcm为当前时间,λ
分布的参数;
P
PP
为Ρ2Ρ VoD系统中节点在由服务器进行的状态与由普通节点进行
0 为使用负指数分布拟合V0D系统节点在线时长
P;
P Sp P SS
服务的状态之间变化的状态转移矩阵,该状态转移矩阵的状态转移时间步长为拉方式请求 的请求周期Tpull。y& ;维护数据项的物理意义为该项被创建时间;维护数据项T1的物 理意义该项第一次被访问时间;维护数据项 ;的物理意义该项最后一次被访问时间;维 护数据项η的物理意义该项被随机访问过的次数;维护数据项DUR = {<ID(i), Tdur(i)>}的 物理意义该项预计被访问的节点<ID-时间 > 集合;步骤(3):找出缓存队列中未来被访问频率值Uitem最小的缓存项Imin,设其Ultem值 为Umin,若Ix的未来被访问频率值Ux与Umin相比满足以下条件之一
ux>ua
Ux = ^min — O && Tcreate^ > Tcre她(min)
Ux=Umm^O &&Tr{x)<Tr(mm)则将Imin从缓存中删除并将Ix添入缓存,缓存替换结束;否则放弃添加Ix,缓存替 换结束。本发明的优点在于,该数据缓存策略降低了 P2P VoD系统服务端的服务流程所耗 时间,增大并发服务能力,使之能同时为更多用户提供服务。
8


图1基于访问预测的P2P VoD系统服务端的数据缓存策略的结构示意图;图2基于访问预测的P2P VoD系统服务端的数据缓存策略的流程图;图3基于访问预测的P2P VoD系统服务端的数据缓存策略中缓存队列维护策略的 缓存队列插入操作流程图。
具体实施例方式下面结合附图和具体实施例对本发明提出的基于访问预测的P2P VoD系统服务端 的数据缓存策略进行详细的说明。基于访问预测的P2P VoD系统服务端的数据缓存策略的结构示意图,如图1所示, 所述的数据访问分类及预测策略,根据推模式下、拉模式下或推拉结合模式下的数据传输 的特征,以及VoD应用无VCR操作时节点按顺序依次访问视频数据的特点,对向本服务端进 行数据请求的各节点进行分类,按照该节点的数据请求整体趋势,将节点分类为处于顺序 请求状态的节点与处于随机请求状态的节点。对处于顺序请求状态下的节点发送来的数据请求,判断该数据请求中所请求的各 个数据片段是否依次处于该节点顺序请求序列中对依次处于该节点顺序请求序列中的数 据片段,判定为节点对顺序数据的请求,按照该节点的历史平均数据请求速度估算其未来 数据访问目标;对未依次处于该节点顺序请求序列中的数据片段,判定为节点对随机数据 的请求,并进一步的分类与预测,判断此数据片段是否为播放点前的紧急数据如果是播放 点前的紧急数据,按照影片平均码率及数据请求周期来估算其未来随机数据访问目标;若 不是,则服务端不主动预测来自请求端的下一次随机数据请求什么时刻发生,而是服务端 在被动接收到请求端发出的数据请求时直接进行数据读取、发送等处理。对处于随机请求状态的节点发送的数据请求,则服务端不主动预测来自请求端的 下一次数据请求什么时刻发生,而是服务端在被动接收到请求端发出的数据请求时直接进 行数据读取和发送处理。所述的基于访问预测的P2P VoD系统服务端的数据缓存策略整体工作包括如下步骤步骤(1)当本服务端接收到来自节点P的数据请求时,按照以上所述数据访问 分类及预测策略对节点P的访问状态以及数据请求内对各数据项的请求性质进行分类,更 新访问节点列表中节点P的状态;按照以上所述数据访问分类及预测策略的访问预测结 果,将预测到的未来访问区间内的数据按照异步预取等通用预取算法预取到缓存队列中。 转至步骤⑵;步骤(2)当服务端在时刻T须向节点P主动推送或被动发送某数据项Sx时,判断 该数据项是否在缓存队列中,若在,转至步骤(2. 1);若不存在,转至步骤(2.2);步骤(2. 1)若节点P当前处于顺序访问状态且当前需访问的数据项为对顺序数 据区间的访问,则转至步骤(2. 1. 1),否则转至步骤(2. 1.2);步骤(2. 1. 1)本次为对于顺序数据的访问命中,删除该缓存项中对应当前访问 的访问记录;若本数据项的后续一个数据项不在缓存队列中,则按异步预取等通用预取算 法取后续数据。转至步骤(3);步骤(2. 1. 2)本次为对于随机数据的访问命中,更新对应的缓存项的访问计数
9及最后被访问时间值。若本次访问被数据访问分类及预测子策略判定为播放点前的紧急数 据,则将与本数据项相距一个拉请求周期影片播放量的数据项放入缓存队列,并向该缓存 项添加预期访问记录。转至步骤(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,设定初始节点在线时长参数λ to、P2P
节点状态转移概率矩阵A胃=PpS,拉式请求顺序判断阈值Δ,转步骤(2)步骤(2)当本服务端接收到Ρ2Ρ VoD网络中某节点P发送来的数据请求报文时, 转步骤⑶;步骤(3)使用数据访问分类及预测子策略判断节点P的访问状态、判断节点P本 次数据访问中对各数据项的访问状态、预测节点P的未来数据访问目标。首先判断该报文 的类型若为推式数据订阅报文转至步骤(3. 1),若为取消数据订阅报文转步骤(3. 2),若 为拉式数据请求报文转至步骤(3. 3);步骤(3.1)节点 P 的推式数据订阅报文 Push_Req = {Μ, [sb, sj,Tstart,Tend},表 示需要服务端在Tstart到Tmd时间内,将影片M的[sb,sj区间内的数据段按顺序勻速发送 给节点P。若节点P不在本服务端维护的接受服务节点列表里,将P插入该列表。将该列 表中节点P的访问状态修改为“顺序请求状态”,记录P的顺序请求有效时间区间为[Tstmt, Tend],记录P的顺序请求起点为sb,顺序请求速度为= (Sb-Se) / (Tend-Tstart),转到步骤 (3. 1. 1);步骤(3. 1. 1)计算[sb,se]区间内各数据的预期被访问时间,sb+i的预期被访问 时间设定为(sb+i_sb)/Vse(1。转至步骤⑷;步骤(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,{sn,Si2,...,sj },请求 周期为Tpulley。le,该请求意义为要求服务端在接下来的Tpull。y。le时长内向其发送影片M的数 据Sil sin。若在P的最近Δ个连续拉式数据请求中均具有相对连续区间,且 每两个相邻请求的相对连续区间满足下式
Sb(i) ~ Se(i+l) - Nlim Se(i) ~ Sb(i+l)^ ^ew > Nlim公式(1) (^( + ) - sb(M))乏(1 - α) X - Sb(i))
、( W) -+ (^(0 - sm)则判定该节点的拉模式数据请求处于“顺序请求状态”,将本服务端的接受服务节 点列表中节点P的访问状态修改为“顺序请求状态”,记录P的顺序请求起点为sb(i),顺序请
求速度为Vseq =,S1 b、S1^ S1 i b、Si i e分别为节点ρ最近两次请求
L X IpullCycle
的相对连续区间上下限。其中,相对连续区间的定义如下定义对于正整数集合A= {a1; a2,. . .,an},若ai < a2 < . . . < an,且A的任意 两个相邻元素的差满足maX(ai+1-ai) = σ,则称A为一个度为σ的相对连续区间,记做
A= K,αJt7。转至步骤(3.3. 1. 1. 1);步骤(3. 3. 1. 1. 1)标记[%ω,\ω]区间内各数据的预期被访问时间,sb(i)+j的预 期被访问时间为(SMihj-SMi)VVsrai ;转至步骤(3. 3. 1. 1. 2);步骤(3.3.1.1.2)对于节点P的拉式数据请求Pullj中的元素Sjx,若Sjx不满足
KeqXTpulicyde ^ s] h+sJ e ^VseqXT llCycle,视为对于随机数据的请求。转至步骤⑷; 2 JX 2 2步骤(3. 3. 1. 2)若本次拉式数据请求Pullj与其前一次请求PuIIh不满足公式 (1)所列条件,或当前时间与P的Tlastpull时间之差大于Tpullcyde的α倍(1. O < α < 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、S值,将本次请求Pulh中携带的对相对连续区间起点sb之前数据项的
11请求视为随机数据请求,转至步骤(4);步骤(3.3.2)节点P不在本服务端的接受服务节点列表中,在该列表中添加节点 P记录,将节点P的状态标识为“随机请求状态”,记录P的拉式请求时间Tlastaill,以及本次 拉式请求中相对连续区间的首尾值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处于其对应拉式数据请求报文Pul^的相对连续区间之前,则将数据项 sx+TpullCycle X R预取入缓存队列,并为该缓存项添加预期访问时间Tpu皿y。le+T。m。转至步骤 (6);步骤(5. 2)从磁盘读取[sx,sx+TpullCycleXR]区间内的数据,转至步骤(5. 2. 1);步骤(5. 2. 1)为Sx生成临时缓存项,设置该临时缓存项的访问计数为1,设置该 临时缓存项的最后被访问时间值为当前时间,转至步骤(5.2.2);步骤(5. 2. 2)以缓存队列管理子策略的缓存队列插入步骤将该临时缓存项插入 缓存队列。对于顺序请求脱靶,从磁盘读入Sx,转至步骤(5.2.3);步骤(5. 2. 3)若节点P当前处于顺序请求状态且^为对顺序数据区间的访问,转 至步骤(5. 2. 3. 1),否则转至步骤(5. 2. 3. 2);步骤(5.2.3. 1)按异步预取等通用预取算法预取本数据项之后[sx+1, sx+TpullCycleXR]区间的数据。转至步骤(6);步骤(5. 2. 3. 2)为数据项sx+TpullCy。leXR生成临时缓存项,向该临时缓存项添加 预期访问时间TpullM1JTcm,并尝试以缓存队列管理子策略的缓存队列插入步骤将该临时缓 存项插入缓存队列。转至步骤(6);步骤(6)若在^之后还有对其他数据项请求,转至步骤(5),否则转至步骤(2)。基于访问预测的P2P VoD系统服务端的数据缓存策略中缓存队列维护策略的缓存 队列插入操作流程图,如图3所示,基于访问预测的P2P VoD系统服务端的数据缓存策略中 缓存队列维护策略的缓存队列插入操作流程步骤如下所述缓存队列维护策略维护一个M项的缓存队列,每个缓存项的大小均为Lseg Bytes0每个缓存项维护表1所示各信息表1缓存项所维护的信息
1权利要求
一种基于访问预测的P2P VoD系统服务端的数据缓存策略,数据缓存策略包括数据访问分类及预测策略、数据预取策略和缓存队列维护策略,其特征在于所述的数据访问分类及预测策略,根据推模式下、拉模式下或推拉结合模式下的数据传输的特征,以及VoD应用无VCR操作时节点按顺序依次访问视频数据的特点,对向本服务端进行数据请求的各节点进行分类,按照该节点的数据请求整体趋势,将节点分类为处于顺序请求状态的节点与处于随机请求状态的节点;对处于顺序请求状态下的节点发送来的数据请求,判断该数据请求中所请求的各个数据片段是否依次处于该节点顺序请求序列中对依次处于该节点顺序请求序列中的数据片段,判定为节点对顺序数据的请求,按照该节点的历史平均数据请求速度估算其未来数据访问目标;对未依次处于该节点顺序请求序列中的数据片段,判定为节点对随机数据的请求,并进行进一步的分类与预测,判断此数据片段是否为播放点前的紧急数据如果是播放点前的紧急数据,按照影片平均码率及数据请求周期来估算其未来随机数据访问目标;若不是,则服务端在被动接收到请求端发出的随机数据请求时直接进行数据读取、发送处理;对处于随机请求状态的节点发送的数据请求,服务端在被动接收到请求端发出的数据请求时直接进行数据读取和发送处理;所述的缓存队列维护策略,使用基于未来访问频率的缓存替换算法进行缓存队列的插入、删除及替换操作,缓存项权值的计算需要综合该项未来被顺序与随机访问到的概率,以及P2P VoD系统中节点上下线及更换服务端对数据访问稳定性方面的影响因素。
2.根据权利要求1所述的基于访问预测的P2PVoD系统服务端的数据缓存策略,其特 征在于在推模式或推拉结合模式数据调度策略下,所述的数据访问分类及预测策略包括 步骤步骤(1)当本服务端接收到一个来自某节点P的推模式下的数据请求报文Push_Req ={Μ, [sb,sj,Tstart, Tend},表示需要服务端在Tstot到Tmd时间内,将视频M的[sb,sj区间 内的数据段按顺序勻速发送给节点P;因此,判定在时间[Tstot,Tmd]内,节点P处于顺序数 据请求状态,顺序请求速度为¥_= (sb-se)/(Tend-Tstart);步骤(2)在满足步骤(1)中的条件后,计算Sb之后的数据sb+i的预期被访问时间为(Sb+i_Sb) /Vseq ;步骤⑶在Tstart到Tmd时间内,判定节点P发送来的所有拉模式下的数据请求均处于 P的依次顺序请求序列中,即将节点P发送来的所有拉模式下的数据请求分类为对随机数 据请求;步骤⑷在时间[Tstmt,Tmd]内,若本服务端接收到节点P发送来取消数据请求报文, 或未接收到该节点发送来的后续推模式下的数据请求报文,则判定节点P顺序请求状态结 束,变为处于随机请求状态,并重新开始对来自节点P的数据请求进行顺序判断;步骤(5)对未被判定处于顺序请求状态的节点,将该节点判定为处于随机请求状态。 服务端不主动提前预测来自该节点的下一次数据请求什么时刻发生,而是服务端被动接收 该节点发出的数据请求并直接进行数据读取、发送处理。
3.根据权利要求1所述的基于访问预测的P2PVoD系统服务端的数据缓存策略,其特 征在于在拉模式数据调度策略下,所述的数据访问分类及预测策略包括步骤步骤(1)设节点P以时长Tpull。y&为周期向服务端发出拉模式数据请求报文Pulli = {M,{sn, si2, . . .,sj },请求服务端在接下来的Tpullcyde时长内向节点P发送视频M的数据 Sil Sin,若在P的连续Δ个拉模式下的数据请求中均具有相对连续区间[ ), )]σ,且每 两个相邻请求的相对连续区间满足式(1),则判定该节点的拉模式下的数据请求处于顺序 请求状态;
4.根据权利要求1所述的基于访问预测的P2P VoD系统服务端的数据缓存策略,其特 征在于所述的对随机数据请求分类及预测包括步骤步骤(1)对未依次处于该节点顺序请求序列中的数据片段,判定为节点对随机数 据请求,并进一步判断请求的数据片段是否为播放点前的紧急数据,只有节点采用拉模 式下的顺序数据调度策略,并且该数据片段是在拉模式下数据请求中处于相对连续区间 [ ,), ,山起点sb(i)之前的数据,才判断节点请求的该随机数据片段是播放前的紧急数据; 步骤(2)在没有VCR操作的情况下,播放点的前进速度是勻速,采用按照影片平均码 率及数据请求周期来估算其未来随机数据访问目标;因此,若在T时刻节点P向服务端请求了其播放点前的紧急数据Sx,则做出以下预测在T+T, 下的请求将请求P播放点前的紧急数据段sx+TpullCycle时刻,节点P的下一次拉模式pulICycl ■:XR/L_,R为该视频的平均码率;步骤(3)对于使用除顺序数据调度策略之外的拉模式下的随机数据请求,此时,服务 端不主动提前预测来自该请求端的下一次随机数据请求什么时刻发生,而是服务端被动接 收请求端发出的数据请求并直接进行数据读取、发送处理。
5.根据权利要求1所述的基于访问预测的P2P VoD系统服务端的数据缓存策略,其特 征在于所述的缓存队列维护策略包括步骤步骤(1)当向缓存队列插入一缓存项Ix时,若缓存队列未满,则直接将该缓存项插入 缓存队列,缓存添加结束,否则转至步骤(2)进行缓存替换操作;步骤(2)若缓存队列已满,则按以下公式计算缓存队列中各缓存项的未来被访问频 銮II -午
全文摘要
本发明涉及一种基于访问预测的P2P VoD系统服务端的数据缓存策略,该策略包括数据访问分类及预测策略、数据预取策略和缓存队列维护策略。其中,数据访问分类及预测子策略负责将对本服务端的数据请求分类,并根据VoD应用的特点对不同类别请求使用不同方法进行访问预测,预测进行数据请求的节点在未来时刻的数据访问目标;缓存队列维护子策略负责维护一个定长缓存队列,使用基于未来访问频率的缓存替换算法进行缓存队列的插入删除及替换操作,未来访问频率的计算综合该缓存项未来被顺序、随机访问到的概率,并将P2P VoD系统中节点上下线及更换服务端等数据访问稳定性方面的影响因素计算在内。
文档编号H04L29/08GK101951395SQ201010267680
公开日2011年1月19日 申请日期2010年8月30日 优先权日2010年8月30日
发明者任浩, 冯侦探, 尤佳莉, 李晓林, 王劲林, 苏杭 申请人:中国科学院声学研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1