发明名称 一种基于访问预测的P2P VoD系统服务端的数据缓存策略
摘要 本发明涉及一种基于访问预测的P2P VoD系统服务端的数据缓存策略,该策略包括数据访问分类及预测策略、数据预取策略和缓存队列维护策略。其中,数据访问分类及预测子策略负责将对本服务端的数据请求分类,并根据VoD应用的特点对不同类别请求使用不同方法进行访问预测,预测进行数据请求的节点在未来时刻的数据访问目标;缓存队列维护子策略负责维护一个定长缓存队列,使用基于未来访问频率的缓存替换算法进行缓存队列的插入删除及替换操作,未来访问频率的计算综合该缓存项未来被顺序、随机访问到的概率,并将P2P VoD系统中节点上下线及更换服务端等数据访问稳定性方面的影响因素计算在内。
申请公布号 CN101951395B 申请公布日期 2013.08.21
申请号 CN201010267680.5 申请日期 2010.08.30
申请人 中国科学院声学研究所 发明人 王劲林;苏杭;尤佳莉;冯侦探;任浩;李晓林
分类号 H04L29/08(2006.01)I;H04L29/06(2006.01)I 主分类号 H04L29/08(2006.01)I
代理机构 北京法思腾知识产权代理有限公司 11318 代理人 杨小蓉;高宇
主权项 1.一种基于访问预测的P2P VoD系统服务端的数据缓存方法,数据缓存方法包括数据访问分类及预测方法、数据预取方法和缓存队列维护方法,其特征在于:所述的数据访问分类及预测方法,根据推模式下、拉模式下或推拉结合模式下的数据传输的特征,以及VoD应用无VCR操作时节点按顺序依次访问视频数据的特点,对向本服务端进行数据请求的各节点进行分类,按照该节点的数据请求整体趋势,将节点分类为处于顺序请求状态的节点与处于随机请求状态的节点;对处于顺序请求状态下的节点发送来的数据请求,判断该数据请求中所请求的各个数据片段是否依次处于该节点顺序请求序列中:对依次处于该节点顺序请求序列中的数据片段,判定为节点对顺序数据的请求,按照该节点的历史平均数据请求速度估算其未来数据访问目标;对未依次处于该节点顺序请求序列中的数据片段,判定为节点对随机数据的请求,并进行进一步的分类与预测,判断此数据片段是否为播放点前的紧急数据:如果是播放点前的紧急数据,按照影片平均码率及数据请求周期来估算其未来随机数据访问目标;若不是,则服务端在被动接收到请求端发出的随机数据请求时直接进行数据读取、发送处理;对处于随机请求状态的节点发送的数据请求,服务端在被动接收到请求端发出的数据请求时直接进行数据读取和发送处理;所述的缓存队列维护方法,使用基于未来被访问频率值U<sub>item</sub>的最小值U<sub>min</sub>的缓存替换算法进行缓存队列的插入、删除及替换操作,缓存项权值的计算需要综合该项未来被顺序与随机访问到的概率,以及P2P VoD系统中节点上下线及更换服务端对数据访问稳定性方面的影响因素;所述的缓存队列维护方法包括步骤:步骤(1):当向缓存队列插入一缓存项I<sub>x</sub>时,若缓存队列未满,则直接将该缓存项插入缓存队列,缓存添加结束,否则转至步骤(2)进行缓存替换操作;步骤(2):若缓存队列已满,则按以下公式计算缓存队列中各缓存项的未来被访问频率U<sub>item</sub>:<maths num="0001"><![CDATA[<math><mrow><msub><mi>U</mi><mrow><mi>rand</mi><mrow><mo>(</mo><mi>Tcur</mi><mo>)</mo></mrow></mrow></msub><mo>=</mo><mfrac><mi>n</mi><mrow><msub><mi>T</mi><mi>cur</mi></msub><mo>-</mo><msub><mi>T</mi><mn>1</mn></msub></mrow></mfrac><mo>&times;</mo><mi>min</mi><mrow><mo>(</mo><mn>1</mn><mo>,</mo><mfrac><mrow><mrow><mo>(</mo><msub><mi>T</mi><mi>cur</mi></msub><mo>-</mo><msub><mi>T</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>/</mo><mi>n</mi></mrow><mrow><msub><mi>T</mi><mi>cur</mi></msub><mo>-</mo><msub><mi>T</mi><mi>r</mi></msub></mrow></mfrac><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0002"><![CDATA[<math><mrow><msub><mi>P</mi><mi>On</mi></msub><mo>=</mo><mn>1</mn><mo>-</mo><msub><mi>&lambda;</mi><mi>On</mi></msub><mrow><mo>(</mo><msub><mi>T</mi><mi>dur</mi></msub><mo>-</mo><msub><mi>T</mi><mi>cur</mi></msub><mo>)</mo></mrow></mrow></math>]]></maths><img file="FDA00003180410100013.GIF" wi="1254" he="246" /><maths num="0003"><![CDATA[<math><mrow><msub><mi>U</mi><mrow><mi>seq</mi><mrow><mo>(</mo><mi>Tcur</mi><mo>)</mo></mrow></mrow></msub><mo>=</mo><munder><mi>&Sigma;</mi><mi>i</mi></munder><mfrac><mrow><msub><mi>P</mi><mi>on</mi></msub><mo>&times;</mo><msub><mi>P</mi><mi>serve</mi></msub></mrow><mrow><msub><mi>T</mi><mrow><mi>dur</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></mrow></msub><mo>-</mo><msub><mi>T</mi><mi>cur</mi></msub></mrow></mfrac><mo>;</mo></mrow></math>]]></maths><maths num="0004"><![CDATA[<math><mrow><msub><mi>U</mi><mrow><mi>item</mi><mrow><mo>(</mo><mi>Tcur</mi><mo>)</mo></mrow></mrow></msub><mo>=</mo><msub><mi>U</mi><mrow><mi>rand</mi><mrow><mo>(</mo><mi>Tcur</mi><mo>)</mo></mrow></mrow></msub><mo>+</mo><msub><mi>U</mi><mrow><mi>seq</mi><mrow><mo>(</mo><mi>Tcur</mi><mo>)</mo></mrow></mrow></msub></mrow></math>]]></maths>以上公式中,M表示缓存队列项数,T<sub>cur</sub>为当前时间,λ<sub>On</sub>为使用负指数分布拟合VoD系统节点在线时长分布的参数;<maths num="0005"><![CDATA[<math><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>p</mi><mi>pp</mi></msub></mtd><mtd><msub><mi>p</mi><mi>ps</mi></msub></mtd></mtr><mtr><mtd><msub><mi>p</mi><mi>sp</mi></msub></mtd><mtd><msub><mi>p</mi><mi>ss</mi></msub></mtd></mtr></mtable></mfenced></math>]]></maths>为P2P VoD系统中节点在由服务器进行服务的状态与由普通节点进行服务的状态之间变化的状态转移矩阵,该状态转移矩阵的状态转移时间步长为拉方式请求的请求周期T<sub>pullCycle</sub>;维护数据项T<sub>create</sub>的物理意义:该项被创建时间;维护数据项T<sub>1</sub>的物理意义:该项第一次被访问时间;维护数据项T<sub>r</sub>的物理意义:该项最后一次被访问时间;维护数据项n的物理意义:该项被随机访问过的次数;维护数据项DUR={<ID<sub>(i)</sub>,T<sub>dur(i)</sub>>}的物理意义:该项预计被访问的节点&lt;ID-时间&gt;集合;步骤(3):找出缓存队列中未来被访问频率值U<sub>item</sub>最小的缓存项I<sub>min</sub>,设其U<sub>item</sub>值为U<sub>min</sub>,若I<sub>x</sub>的未来被访问频率值U<sub>x</sub>与U<sub>min</sub>相比满足以下条件之一:<img file="FDA00003180410100024.GIF" wi="776" he="259" />则将I<sub>min</sub>从缓存中删除并将I<sub>x</sub>添入缓存,缓存替换结束;否则放弃添加I<sub>x</sub>,缓存替换结束。
地址 100190 北京市海淀区北四环西路21号