專利名稱:一種基于訪問預(yù)測(cè)的P2P VoD系統(tǒng)服務(wù)端的數(shù)據(jù)緩存策略的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息技術(shù)領(lǐng)域中的流媒體點(diǎn)播技術(shù)應(yīng)用,特別涉及一種基于訪問預(yù)測(cè) 的P2P VoD系統(tǒng)服務(wù)端的數(shù)據(jù)緩存策略。
背景技術(shù):
VoD(Video-on-Demand)系統(tǒng)是因特網(wǎng)最重要的多媒體應(yīng)用之一。近年來P2P架構(gòu) 的VoD系統(tǒng)逐漸興起。為降低響應(yīng)延遲,增大并發(fā)能力,VoD服務(wù)器廣泛使用磁盤I/O數(shù)據(jù)緩存技術(shù)通 過將部分磁盤數(shù)據(jù)緩存于內(nèi)存等高速存儲(chǔ)設(shè)備來降低對(duì)相對(duì)低速的磁盤的I/O次數(shù),進(jìn)而 降低服務(wù)流程所耗用時(shí)間。在使用節(jié)點(diǎn)磁盤緩存的P2P VoD系統(tǒng)中,普通節(jié)點(diǎn)可作為輕量 級(jí)服務(wù)器為其他節(jié)點(diǎn)服務(wù)。以下將P2P VoD系統(tǒng)中的服務(wù)器及使用硬盤緩存對(duì)外服務(wù)的節(jié) 點(diǎn)統(tǒng)稱為服務(wù)端。數(shù)據(jù)緩存層是一種提供透明數(shù)據(jù)存取服務(wù)的中間層。它利用數(shù)據(jù)訪問預(yù)測(cè)及數(shù)據(jù) 預(yù)取、緩存隊(duì)列維護(hù)等技術(shù),使得上層軟件能以最快的速度讀取到其所需要的數(shù)據(jù),可解決 存儲(chǔ)設(shè)備I/O帶寬不足問題,提高響應(yīng)速度和服務(wù)器并發(fā)能力。在C/S架構(gòu)VoD系統(tǒng)中,所有節(jié)點(diǎn)均向服務(wù)器請(qǐng)求數(shù)據(jù),使得服務(wù)器的數(shù)據(jù)訪問有 持續(xù)性的良好順序模式。而P2P VoD系統(tǒng)中由于存在大量服務(wù)端,導(dǎo)致對(duì)各服務(wù)端的數(shù)據(jù) 請(qǐng)求中混雜了順序模式訪問與隨機(jī)無序的訪問,并且P2P VoD系統(tǒng)中節(jié)點(diǎn)可以更換向其提 供數(shù)據(jù)的服務(wù)端,導(dǎo)致對(duì)服務(wù)端的數(shù)據(jù)訪問持續(xù)性變差。應(yīng)用于C/S架構(gòu)VoD系統(tǒng)的服務(wù)器數(shù)據(jù)緩存策略多利用VoD的順序訪問模式,在 連續(xù)出現(xiàn)前后2個(gè)對(duì)同一媒體文件的順序訪問時(shí),將前一序列訪問過的數(shù)據(jù)緩存供后一序 列使用,典型的如基于訪問間隔的緩存策略及其改進(jìn)方法。但在P2P VoD系統(tǒng)的數(shù)據(jù)訪問 模式下,傳統(tǒng)C/S架構(gòu)VoD系統(tǒng)所使用的數(shù)據(jù)緩存策略將無法有效降低磁盤I/O次數(shù)。由 于磁盤I/O操作是數(shù)據(jù)服務(wù)流程中的主要耗時(shí)階段,在相同數(shù)據(jù)請(qǐng)求負(fù)載下,I/O次數(shù)的上 升將導(dǎo)致服務(wù)端特別是服務(wù)器的服務(wù)周期變長(zhǎng),響應(yīng)延遲加大,所以需要針對(duì)P2PVoD特有 的數(shù)據(jù)訪問模式設(shè)計(jì)新的數(shù)據(jù)緩存策略。
發(fā)明內(nèi)容
本發(fā)明的目的在于,解決P2P VoD系統(tǒng)的特殊數(shù)據(jù)訪問模式帶來的現(xiàn)有數(shù)據(jù)緩存 策略不適用的問題,從而降低P2P VoD系統(tǒng)服務(wù)端服務(wù)流程所耗時(shí)間,使得上層軟件能以最 快的速度讀取到其所需要的數(shù)據(jù),并可解決存儲(chǔ)設(shè)備I/O帶寬不足問題,提高響應(yīng)速度和 服務(wù)器并發(fā)能力。為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明提出一種基于訪問預(yù)測(cè)的P2P VoD系統(tǒng)服務(wù)端的數(shù) 據(jù)緩存策略。所述的基于訪問預(yù)測(cè)的P2P VoD系統(tǒng)服務(wù)端的數(shù)據(jù)緩存策略,包括數(shù)據(jù)訪問分類 及預(yù)測(cè)策略、數(shù)據(jù)預(yù)取策略和緩存隊(duì)列維護(hù)策略,其特征在于
5
所述的數(shù)據(jù)訪問分類及預(yù)測(cè)策略,根據(jù)推模式下、拉模式下或推拉結(jié)合模式下的 數(shù)據(jù)傳輸?shù)奶卣鳎约癡oD應(yīng)用無VCR操作時(shí)節(jié)點(diǎn)按順序依次訪問視頻數(shù)據(jù)的特點(diǎn),對(duì)向本 服務(wù)端進(jìn)行數(shù)據(jù)請(qǐng)求的各節(jié)點(diǎn)進(jìn)行分類,按照該節(jié)點(diǎn)的數(shù)據(jù)請(qǐng)求整體趨勢(shì),將節(jié)點(diǎn)分類為 處于順序請(qǐng)求狀態(tài)的節(jié)點(diǎn)與處于隨機(jī)請(qǐng)求狀態(tài)的節(jié)點(diǎn);對(duì)處于順序請(qǐng)求狀態(tài)下的節(jié)點(diǎn)發(fā)送來的數(shù)據(jù)請(qǐng)求,判斷該數(shù)據(jù)請(qǐng)求中所請(qǐng)求的各 個(gè)數(shù)據(jù)片段是否依次處于該節(jié)點(diǎn)順序請(qǐng)求序列中對(duì)依次處于該節(jié)點(diǎn)順序請(qǐng)求序列中的 數(shù)據(jù)片段,判定為節(jié)點(diǎn)對(duì)順序數(shù)據(jù)的請(qǐng)求,按照該節(jié)點(diǎn)的歷史平均數(shù)據(jù)請(qǐng)求速度估算其未 來數(shù)據(jù)訪問目標(biāo);對(duì)未依次處于該節(jié)點(diǎn)順序請(qǐng)求序列中的數(shù)據(jù)片段,判定為節(jié)點(diǎn)對(duì)隨機(jī)數(shù) 據(jù)的請(qǐng)求,并進(jìn)行進(jìn)一步的分類與預(yù)測(cè),判斷此數(shù)據(jù)片段是否為播放點(diǎn)前的緊急數(shù)據(jù)如果 是播放點(diǎn)前的緊急數(shù)據(jù),按照影片平均碼率及數(shù)據(jù)請(qǐng)求周期來估算其未來隨機(jī)數(shù)據(jù)訪問目 標(biāo);若不是,則服務(wù)端不主動(dòng)預(yù)測(cè)來自請(qǐng)求端的下一次隨機(jī)數(shù)據(jù)請(qǐng)求什么時(shí)刻發(fā)生,而是服 務(wù)端在被動(dòng)接收到請(qǐng)求端發(fā)出的隨機(jī)數(shù)據(jù)請(qǐng)求時(shí)直接進(jìn)行數(shù)據(jù)讀取、發(fā)送等處理;對(duì)處于隨機(jī)請(qǐng)求狀態(tài)的節(jié)點(diǎn)發(fā)送來的數(shù)據(jù)請(qǐng)求,服務(wù)端不主動(dòng)預(yù)測(cè)來自請(qǐng)求端的 下一次數(shù)據(jù)請(qǐng)求什么時(shí)刻發(fā)生,而是服務(wù)端在被動(dòng)接收到請(qǐng)求端發(fā)出的數(shù)據(jù)請(qǐng)求時(shí)直接進(jìn) 行數(shù)據(jù)讀取和發(fā)送處理;所述的緩存隊(duì)列維護(hù)策略,使用基于未來訪問頻率的緩存替換算法進(jìn)行緩存隊(duì)列 的插入、刪除及替換操作,緩存項(xiàng)權(quán)值的計(jì)算需要綜合該項(xiàng)未來被順序與隨機(jī)訪問到的概 率,以及P2P VoD系統(tǒng)中節(jié)點(diǎn)上下線及更換服務(wù)端對(duì)數(shù)據(jù)訪問穩(wěn)定性方面的影響因素。在推模式或推拉結(jié)合模式數(shù)據(jù)調(diào)度策略下,所述的數(shù)據(jù)訪問分類及預(yù)測(cè)策略包括 步驟步驟⑴當(dāng)本服務(wù)端接收到一個(gè)來自某節(jié)點(diǎn)P的推模式下的數(shù)據(jù)請(qǐng)求報(bào)文Push_ Req = {Μ, [sb, se],Tstart, Tend},表示需要服務(wù)端在Tstmt到Tmd時(shí)間內(nèi),將視頻M的[sb,se] 區(qū)間內(nèi)的數(shù)據(jù)段按順序勻速發(fā)送給節(jié)點(diǎn)P ;因此,判定在時(shí)間[Tstmt,Tend]內(nèi),節(jié)點(diǎn)P處于順 序數(shù)據(jù)請(qǐng)求狀態(tài),順序請(qǐng)求速度為(sb-se)/(Tend-Tstart);步驟(2)在滿足步驟(1)中的條件后,計(jì)算Sb之后的數(shù)據(jù)sb+i的預(yù)期被訪問時(shí)間 為(sb+i-sb) /Vseq ;步驟⑶在Tstart到Tend時(shí)間內(nèi),判定節(jié)點(diǎn)P發(fā)送來的所有拉模式下的數(shù)據(jù)請(qǐng)求均 處于P的依次順序請(qǐng)求序列中,即將節(jié)點(diǎn)P發(fā)送來的所有拉模式下的數(shù)據(jù)請(qǐng)求分類為對(duì)隨 機(jī)數(shù)據(jù)的請(qǐng)求;步驟(4)在時(shí)間[Tstmt,Tend]內(nèi),若本服務(wù)端接收到節(jié)點(diǎn)P發(fā)送來取消數(shù)據(jù)請(qǐng)求 報(bào)文,或未接收到該節(jié)點(diǎn)發(fā)送來的后續(xù)推模式下的數(shù)據(jù)請(qǐng)求報(bào)文,則判定節(jié)點(diǎn)P順序請(qǐng)求 狀態(tài)結(jié)束,變?yōu)樘幱陔S機(jī)請(qǐng)求狀態(tài),并重新開始對(duì)來自節(jié)點(diǎn)P的數(shù)據(jù)請(qǐng)求進(jìn)行順序判斷;步驟(5)對(duì)未被判定處于順序請(qǐng)求狀態(tài)的節(jié)點(diǎn),將該節(jié)點(diǎn)判定為處于隨機(jī)請(qǐng)求 狀態(tài)。服務(wù)端不主動(dòng)提前預(yù)測(cè)來自該節(jié)點(diǎn)的下一次數(shù)據(jù)請(qǐng)求什么時(shí)刻發(fā)生,而是服務(wù)端在 被動(dòng)接收該節(jié)點(diǎn)發(fā)出的數(shù)據(jù)請(qǐng)求并直接進(jìn)行數(shù)據(jù)讀取、發(fā)送處理。在拉模式數(shù)據(jù)調(diào)度策略下,所述的數(shù)據(jù)訪問分類及預(yù)測(cè)策略包括步驟步驟⑴設(shè)節(jié)點(diǎn)P以時(shí)長(zhǎng)Tpull。y &為周期向服務(wù)端發(fā)出拉模式數(shù)據(jù)請(qǐng)求報(bào)文 Pulli = {M,{sn, si2, ... , sin}},請(qǐng)求服務(wù)端在接下來的Tpullcyde時(shí)長(zhǎng)內(nèi)向節(jié)點(diǎn)P發(fā)送視 頻M的數(shù)據(jù)Sil sin。若在P的連續(xù)Δ個(gè)拉模式下的數(shù)據(jù)請(qǐng)求中均具有相對(duì)連續(xù)區(qū)間
6[ ,),·^)]σ,且每?jī)蓚€(gè)相鄰請(qǐng)求的相對(duì)連續(xù)區(qū)間滿足式(1),則判定該節(jié)點(diǎn)的拉模式下的數(shù)
據(jù)請(qǐng)求處于順序請(qǐng)求狀態(tài);
Sb(i) - ^(/+1) _ Nlim
Se(i)— (/+1)
‘^ii)-sKO ^ n^⑴
— sKM))乏(1 — ) X (^(0 - ^(0) - w)) < (1 + ) X (^(0 - sb(i))相對(duì)連續(xù)區(qū)間的定義為對(duì)于正整數(shù)集合A = Ia1, a2,...,an},若ai < a2 < ...<an,且A的任意兩個(gè)相鄰元素的差滿足maX(ai+1-ai) = σ,則稱A為一個(gè)度為ο 的相對(duì)連續(xù)區(qū)間,記做A= K,ω丄;式(1)中,S1 b、S1 e、Sl_i b、Sl_Le分別為節(jié)點(diǎn)P最近兩次請(qǐng)求的相對(duì)連續(xù)區(qū)間上下 限;此時(shí),順序請(qǐng)求速度ν叫= ( υ-η。);
pullCycle步驟⑵在滿足式⑴條件后,計(jì)算sb(i)之后的數(shù)據(jù)sb(i)+k的預(yù)期被訪問時(shí)間為
(sb(i)+k_sb(i))/Vseq ;步驟(3)在滿足式(1)條件后,對(duì)于節(jié)點(diǎn)P的拉式數(shù)據(jù)請(qǐng)求Pullj中的元素Sjx,
ν χτs +s 2V χΤ
若不滿足,^ulicycle < sjx - J-b 2 j-e < seq 2pullCycIe,判定 不在P的依次順序請(qǐng)求
序列中,,將節(jié)點(diǎn)P對(duì)Sjx請(qǐng)求分類為對(duì)隨機(jī)數(shù)據(jù)請(qǐng)求;步驟(4)在節(jié)點(diǎn)P被判定處于順序請(qǐng)求狀態(tài)之后,一旦節(jié)點(diǎn)P在某一周期未按時(shí) 間發(fā)送拉模式數(shù)據(jù)請(qǐng)求,或某次請(qǐng)求Pul^與其前一次請(qǐng)求PuIIh不滿足式(D所列條件, 則判定節(jié)點(diǎn)P的順序請(qǐng)求狀態(tài)結(jié)束,變?yōu)樘幱陔S機(jī)請(qǐng)求狀態(tài),并重新開始對(duì)來自節(jié)點(diǎn)P的數(shù) 據(jù)請(qǐng)求進(jìn)行順序判斷;步驟(5)對(duì)未被判定處于順序請(qǐng)求狀態(tài)的節(jié)點(diǎn),將該節(jié)點(diǎn)判定為處于隨機(jī)請(qǐng)求 狀態(tài)。服務(wù)端不主動(dòng)提前預(yù)測(cè)來自該節(jié)點(diǎn)的下一次數(shù)據(jù)請(qǐng)求什么時(shí)刻發(fā)生,而是服務(wù)端被 動(dòng)接收該節(jié)點(diǎn)發(fā)出的數(shù)據(jù)請(qǐng)求并直接進(jìn)行數(shù)據(jù)讀取、發(fā)送處理。所述的對(duì)隨機(jī)數(shù)據(jù)請(qǐng)求分類及預(yù)測(cè)包括步驟步驟(1)對(duì)未依次處于該節(jié)點(diǎn)順序請(qǐng)求序列中的數(shù)據(jù)片段,判定為節(jié)點(diǎn)對(duì)隨機(jī) 數(shù)據(jù)請(qǐng)求,并進(jìn)一步判斷請(qǐng)求的數(shù)據(jù)片段是否為播放點(diǎn)前的緊急數(shù)據(jù),只有節(jié)點(diǎn)采用拉模 式下的順序數(shù)據(jù)調(diào)度策略,并且該數(shù)據(jù)片段是在拉模式下數(shù)據(jù)請(qǐng)求中處于相對(duì)連續(xù)區(qū)間 [ ,),、)]σ起點(diǎn)sba)之前的數(shù)據(jù),才判斷節(jié)點(diǎn)請(qǐng)求的該隨機(jī)數(shù)據(jù)片段是播放前的緊急數(shù)據(jù);步驟⑵在沒有VCR操作的情況下,播放點(diǎn)的前進(jìn)速度是勻速,采用按照影片平 均碼率及數(shù)據(jù)請(qǐng)求周期來估算其未來隨機(jī)數(shù)據(jù)訪問目標(biāo);因此,若在T時(shí)刻節(jié)點(diǎn)P向服務(wù)端 請(qǐng)求了其播放點(diǎn)前的緊急數(shù)據(jù)Sx,則做出以下預(yù)測(cè)在T+Tpulley&時(shí)刻,節(jié)點(diǎn)P的下一次拉模 式下的請(qǐng)求將請(qǐng)求P播放點(diǎn)前的緊急數(shù)據(jù)段sx+Tpulley。leXR/Lseg,R為該視頻的平均碼率;
步驟(3)對(duì)于使用除順序數(shù)據(jù)調(diào)度策略之外的拉模式下的隨機(jī)數(shù)據(jù)請(qǐng)求,此時(shí), 服務(wù)端不主動(dòng)提前預(yù)測(cè)來自該請(qǐng)求端的下一次隨機(jī)數(shù)據(jù)請(qǐng)求什么時(shí)刻發(fā)生,而是服務(wù)端被 動(dòng)接收請(qǐng)求端發(fā)出的數(shù)據(jù)請(qǐng)求并直接進(jìn)行數(shù)據(jù)讀取、發(fā)送處理。所述的緩存隊(duì)列維護(hù)策略包括步驟步驟(1):當(dāng)向緩存隊(duì)列插入一緩存項(xiàng)Ix時(shí),若緩存隊(duì)列未滿,則直接將該緩存項(xiàng) 插入緩存隊(duì)列,緩存添加結(jié)束,否則轉(zhuǎn)至步驟(2)進(jìn)行緩存替換操作;步驟(2):若緩存隊(duì)列已滿,則按以下公式計(jì)算緩存隊(duì)列中各緩存項(xiàng)的未來被訪
問頻率Uitem
rand (Tcur)Umnaucun
1Cur -1IP0n= I-A0n(Tdur-Tcur)
n XWinil^/n)
Tcur Tr
Pserve —χ
'PppPpsM X"0"PspPss-1_
,如果本服務(wù)端為服務(wù)器
J
,如果本服務(wù)端為普通節(jié)點(diǎn) U
seq (Tcur)
Σ
Pon X Pse‘
Tdw (Γ) Tcur Uitem(Tcur) 一 Urand(Tcur) +Useq(Tcur)
以上公式中,Tcm為當(dāng)前時(shí)間,λ
分布的參數(shù);
P
PP
為Ρ2Ρ VoD系統(tǒng)中節(jié)點(diǎn)在由服務(wù)器進(jìn)行的狀態(tài)與由普通節(jié)點(diǎn)進(jìn)行
0 為使用負(fù)指數(shù)分布擬合V0D系統(tǒng)節(jié)點(diǎn)在線時(shí)長(zhǎng)
P;
P Sp P SS
服務(wù)的狀態(tài)之間變化的狀態(tài)轉(zhuǎn)移矩陣,該狀態(tài)轉(zhuǎn)移矩陣的狀態(tài)轉(zhuǎn)移時(shí)間步長(zhǎng)為拉方式請(qǐng)求 的請(qǐng)求周期Tpull。y& ;維護(hù)數(shù)據(jù)項(xiàng)的物理意義為該項(xiàng)被創(chuàng)建時(shí)間;維護(hù)數(shù)據(jù)項(xiàng)T1的物 理意義該項(xiàng)第一次被訪問時(shí)間;維護(hù)數(shù)據(jù)項(xiàng) ;的物理意義該項(xiàng)最后一次被訪問時(shí)間;維 護(hù)數(shù)據(jù)項(xiàng)η的物理意義該項(xiàng)被隨機(jī)訪問過的次數(shù);維護(hù)數(shù)據(jù)項(xiàng)DUR = {<ID(i), Tdur(i)>}的 物理意義該項(xiàng)預(yù)計(jì)被訪問的節(jié)點(diǎn)<ID-時(shí)間 > 集合;步驟(3):找出緩存隊(duì)列中未來被訪問頻率值Uitem最小的緩存項(xiàng)Imin,設(shè)其Ultem值 為Umin,若Ix的未來被訪問頻率值Ux與Umin相比滿足以下條件之一
ux>ua
Ux = ^min — O && Tcreate^ > Tcre她(min)
Ux=Umm^O &&Tr{x)<Tr(mm)則將Imin從緩存中刪除并將Ix添入緩存,緩存替換結(jié)束;否則放棄添加Ix,緩存替 換結(jié)束。本發(fā)明的優(yōu)點(diǎn)在于,該數(shù)據(jù)緩存策略降低了 P2P VoD系統(tǒng)服務(wù)端的服務(wù)流程所耗 時(shí)間,增大并發(fā)服務(wù)能力,使之能同時(shí)為更多用戶提供服務(wù)。
8
圖1基于訪問預(yù)測(cè)的P2P VoD系統(tǒng)服務(wù)端的數(shù)據(jù)緩存策略的結(jié)構(gòu)示意圖;圖2基于訪問預(yù)測(cè)的P2P VoD系統(tǒng)服務(wù)端的數(shù)據(jù)緩存策略的流程圖;圖3基于訪問預(yù)測(cè)的P2P VoD系統(tǒng)服務(wù)端的數(shù)據(jù)緩存策略中緩存隊(duì)列維護(hù)策略的 緩存隊(duì)列插入操作流程圖。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明提出的基于訪問預(yù)測(cè)的P2P VoD系統(tǒng)服務(wù)端 的數(shù)據(jù)緩存策略進(jìn)行詳細(xì)的說明?;谠L問預(yù)測(cè)的P2P VoD系統(tǒng)服務(wù)端的數(shù)據(jù)緩存策略的結(jié)構(gòu)示意圖,如圖1所示, 所述的數(shù)據(jù)訪問分類及預(yù)測(cè)策略,根據(jù)推模式下、拉模式下或推拉結(jié)合模式下的數(shù)據(jù)傳輸 的特征,以及VoD應(yīng)用無VCR操作時(shí)節(jié)點(diǎn)按順序依次訪問視頻數(shù)據(jù)的特點(diǎn),對(duì)向本服務(wù)端進(jìn) 行數(shù)據(jù)請(qǐng)求的各節(jié)點(diǎn)進(jìn)行分類,按照該節(jié)點(diǎn)的數(shù)據(jù)請(qǐng)求整體趨勢(shì),將節(jié)點(diǎn)分類為處于順序 請(qǐng)求狀態(tài)的節(jié)點(diǎn)與處于隨機(jī)請(qǐng)求狀態(tài)的節(jié)點(diǎn)。對(duì)處于順序請(qǐng)求狀態(tài)下的節(jié)點(diǎn)發(fā)送來的數(shù)據(jù)請(qǐng)求,判斷該數(shù)據(jù)請(qǐng)求中所請(qǐng)求的各 個(gè)數(shù)據(jù)片段是否依次處于該節(jié)點(diǎn)順序請(qǐng)求序列中對(duì)依次處于該節(jié)點(diǎn)順序請(qǐng)求序列中的數(shù) 據(jù)片段,判定為節(jié)點(diǎn)對(duì)順序數(shù)據(jù)的請(qǐng)求,按照該節(jié)點(diǎn)的歷史平均數(shù)據(jù)請(qǐng)求速度估算其未來 數(shù)據(jù)訪問目標(biāo);對(duì)未依次處于該節(jié)點(diǎn)順序請(qǐng)求序列中的數(shù)據(jù)片段,判定為節(jié)點(diǎn)對(duì)隨機(jī)數(shù)據(jù) 的請(qǐng)求,并進(jìn)一步的分類與預(yù)測(cè),判斷此數(shù)據(jù)片段是否為播放點(diǎn)前的緊急數(shù)據(jù)如果是播放 點(diǎn)前的緊急數(shù)據(jù),按照影片平均碼率及數(shù)據(jù)請(qǐng)求周期來估算其未來隨機(jī)數(shù)據(jù)訪問目標(biāo);若 不是,則服務(wù)端不主動(dòng)預(yù)測(cè)來自請(qǐng)求端的下一次隨機(jī)數(shù)據(jù)請(qǐng)求什么時(shí)刻發(fā)生,而是服務(wù)端 在被動(dòng)接收到請(qǐng)求端發(fā)出的數(shù)據(jù)請(qǐng)求時(shí)直接進(jìn)行數(shù)據(jù)讀取、發(fā)送等處理。對(duì)處于隨機(jī)請(qǐng)求狀態(tài)的節(jié)點(diǎn)發(fā)送的數(shù)據(jù)請(qǐng)求,則服務(wù)端不主動(dòng)預(yù)測(cè)來自請(qǐng)求端的 下一次數(shù)據(jù)請(qǐng)求什么時(shí)刻發(fā)生,而是服務(wù)端在被動(dòng)接收到請(qǐng)求端發(fā)出的數(shù)據(jù)請(qǐng)求時(shí)直接進(jìn) 行數(shù)據(jù)讀取和發(fā)送處理。所述的基于訪問預(yù)測(cè)的P2P VoD系統(tǒng)服務(wù)端的數(shù)據(jù)緩存策略整體工作包括如下步驟步驟(1)當(dāng)本服務(wù)端接收到來自節(jié)點(diǎn)P的數(shù)據(jù)請(qǐng)求時(shí),按照以上所述數(shù)據(jù)訪問 分類及預(yù)測(cè)策略對(duì)節(jié)點(diǎn)P的訪問狀態(tài)以及數(shù)據(jù)請(qǐng)求內(nèi)對(duì)各數(shù)據(jù)項(xiàng)的請(qǐng)求性質(zhì)進(jìn)行分類,更 新訪問節(jié)點(diǎn)列表中節(jié)點(diǎn)P的狀態(tài);按照以上所述數(shù)據(jù)訪問分類及預(yù)測(cè)策略的訪問預(yù)測(cè)結(jié) 果,將預(yù)測(cè)到的未來訪問區(qū)間內(nèi)的數(shù)據(jù)按照異步預(yù)取等通用預(yù)取算法預(yù)取到緩存隊(duì)列中。 轉(zhuǎn)至步驟⑵;步驟(2)當(dāng)服務(wù)端在時(shí)刻T須向節(jié)點(diǎn)P主動(dòng)推送或被動(dòng)發(fā)送某數(shù)據(jù)項(xiàng)Sx時(shí),判斷 該數(shù)據(jù)項(xiàng)是否在緩存隊(duì)列中,若在,轉(zhuǎn)至步驟(2. 1);若不存在,轉(zhuǎn)至步驟(2.2);步驟(2. 1)若節(jié)點(diǎn)P當(dāng)前處于順序訪問狀態(tài)且當(dāng)前需訪問的數(shù)據(jù)項(xiàng)為對(duì)順序數(shù) 據(jù)區(qū)間的訪問,則轉(zhuǎn)至步驟(2. 1. 1),否則轉(zhuǎn)至步驟(2. 1.2);步驟(2. 1. 1)本次為對(duì)于順序數(shù)據(jù)的訪問命中,刪除該緩存項(xiàng)中對(duì)應(yīng)當(dāng)前訪問 的訪問記錄;若本數(shù)據(jù)項(xiàng)的后續(xù)一個(gè)數(shù)據(jù)項(xiàng)不在緩存隊(duì)列中,則按異步預(yù)取等通用預(yù)取算 法取后續(xù)數(shù)據(jù)。轉(zhuǎn)至步驟(3);步驟(2. 1. 2)本次為對(duì)于隨機(jī)數(shù)據(jù)的訪問命中,更新對(duì)應(yīng)的緩存項(xiàng)的訪問計(jì)數(shù)
9及最后被訪問時(shí)間值。若本次訪問被數(shù)據(jù)訪問分類及預(yù)測(cè)子策略判定為播放點(diǎn)前的緊急數(shù) 據(jù),則將與本數(shù)據(jù)項(xiàng)相距一個(gè)拉請(qǐng)求周期影片播放量的數(shù)據(jù)項(xiàng)放入緩存隊(duì)列,并向該緩存 項(xiàng)添加預(yù)期訪問記錄。轉(zhuǎn)至步驟(3);步驟(2. 2)若節(jié)點(diǎn)P當(dāng)前處于順序訪問狀態(tài)且當(dāng)前需訪問的數(shù)據(jù)項(xiàng)為對(duì)順序數(shù) 據(jù)區(qū)間的訪問,則轉(zhuǎn)至步驟(2.2. 1),否則轉(zhuǎn)至步驟(2.2.2);步驟(2. 2. 1)本次為順序訪問脫靶,從磁盤讀入數(shù)據(jù)并將數(shù)據(jù)發(fā)送給請(qǐng)求該數(shù) 據(jù)的節(jié)點(diǎn);為本數(shù)據(jù)項(xiàng)生成臨時(shí)緩存項(xiàng),更新該臨時(shí)緩存項(xiàng)的訪問計(jì)數(shù)及最后被訪問時(shí)間 值,以緩存隊(duì)列管理子策略的緩存隊(duì)列插入步驟將該臨時(shí)緩存項(xiàng)插入緩存隊(duì)列,按異步預(yù) 取等通用預(yù)取算法預(yù)取本數(shù)據(jù)項(xiàng)之后的后續(xù)數(shù)據(jù)。轉(zhuǎn)至步驟(3);步驟(2. 2. 2)本次為隨機(jī)訪問脫靶,從磁盤讀取當(dāng)前數(shù)據(jù)項(xiàng)及后續(xù)一個(gè)拉請(qǐng)求 周期播放量的數(shù)據(jù);為當(dāng)前訪問的數(shù)據(jù)項(xiàng)生成對(duì)應(yīng)的臨時(shí)緩存項(xiàng),更新該臨時(shí)緩存項(xiàng)的訪 問計(jì)數(shù)以及最后被訪問時(shí)間值;按緩存隊(duì)列管理子策略的緩存項(xiàng)插入步驟將該臨時(shí)緩存項(xiàng) 存入緩存;將與本數(shù)據(jù)項(xiàng)相距一個(gè)拉請(qǐng)求周期影片播放量的數(shù)據(jù)項(xiàng)放入緩存隊(duì)列,并向該 緩存項(xiàng)添加預(yù)期訪問記錄。轉(zhuǎn)至步驟(3);步驟(3)若本服務(wù)端仍需向節(jié)點(diǎn)P主動(dòng)推送或被動(dòng)發(fā)送其他數(shù)據(jù),轉(zhuǎn)至步驟(2); 否則轉(zhuǎn)至步驟(1)。基于訪問預(yù)測(cè)的P2P VoD系統(tǒng)服務(wù)端的數(shù)據(jù)緩存策略的流程圖,如圖2所示,基于 訪問預(yù)測(cè)的P2P VoD系統(tǒng)服務(wù)端的數(shù)據(jù)緩存策略的具體實(shí)施步驟如下步驟(1)進(jìn)行程序初始化緩存隊(duì)列項(xiàng)數(shù)M,設(shè)定初始節(jié)點(diǎn)在線時(shí)長(zhǎng)參數(shù)λ to、P2P
節(jié)點(diǎn)狀態(tài)轉(zhuǎn)移概率矩陣A胃=PpS,拉式請(qǐng)求順序判斷閾值Δ,轉(zhuǎn)步驟(2)步驟(2)當(dāng)本服務(wù)端接收到Ρ2Ρ VoD網(wǎng)絡(luò)中某節(jié)點(diǎn)P發(fā)送來的數(shù)據(jù)請(qǐng)求報(bào)文時(shí), 轉(zhuǎn)步驟⑶;步驟(3)使用數(shù)據(jù)訪問分類及預(yù)測(cè)子策略判斷節(jié)點(diǎn)P的訪問狀態(tài)、判斷節(jié)點(diǎn)P本 次數(shù)據(jù)訪問中對(duì)各數(shù)據(jù)項(xiàng)的訪問狀態(tài)、預(yù)測(cè)節(jié)點(diǎn)P的未來數(shù)據(jù)訪問目標(biāo)。首先判斷該報(bào)文 的類型若為推式數(shù)據(jù)訂閱報(bào)文轉(zhuǎn)至步驟(3. 1),若為取消數(shù)據(jù)訂閱報(bào)文轉(zhuǎn)步驟(3. 2),若 為拉式數(shù)據(jù)請(qǐng)求報(bào)文轉(zhuǎn)至步驟(3. 3);步驟(3.1)節(jié)點(diǎn) P 的推式數(shù)據(jù)訂閱報(bào)文 Push_Req = {Μ, [sb, sj,Tstart,Tend},表 示需要服務(wù)端在Tstart到Tmd時(shí)間內(nèi),將影片M的[sb,sj區(qū)間內(nèi)的數(shù)據(jù)段按順序勻速發(fā)送 給節(jié)點(diǎn)P。若節(jié)點(diǎn)P不在本服務(wù)端維護(hù)的接受服務(wù)節(jié)點(diǎn)列表里,將P插入該列表。將該列 表中節(jié)點(diǎn)P的訪問狀態(tài)修改為“順序請(qǐng)求狀態(tài)”,記錄P的順序請(qǐng)求有效時(shí)間區(qū)間為[Tstmt, Tend],記錄P的順序請(qǐng)求起點(diǎn)為sb,順序請(qǐng)求速度為= (Sb-Se) / (Tend-Tstart),轉(zhuǎn)到步驟 (3. 1. 1);步驟(3. 1. 1)計(jì)算[sb,se]區(qū)間內(nèi)各數(shù)據(jù)的預(yù)期被訪問時(shí)間,sb+i的預(yù)期被訪問 時(shí)間設(shè)定為(sb+i_sb)/Vse(1。轉(zhuǎn)至步驟⑷;步驟(3.2)接收到節(jié)點(diǎn)P的取消數(shù)據(jù)訂閱報(bào)文后,將P從本服務(wù)端的接受服務(wù)節(jié) 點(diǎn)列表里刪除,轉(zhuǎn)回至步驟(2);步驟(3. 3)接收到節(jié)點(diǎn)P的拉式數(shù)據(jù)請(qǐng)求報(bào)文后,檢查節(jié)點(diǎn)P是否存在于本服務(wù) 端的接受服務(wù)節(jié)點(diǎn)列表里,若在則轉(zhuǎn)到步驟(3. 3. 1),不在則轉(zhuǎn)到步驟(3. 3. 2);
步驟(3. 3. 1)更新接受服務(wù)節(jié)點(diǎn)列表中P的最后一次拉式請(qǐng)求時(shí)間TlastPull。若 節(jié)點(diǎn)P的狀態(tài)為“隨機(jī)請(qǐng)求狀態(tài)”,轉(zhuǎn)至步驟(3.3. 1. 1);若本P2P VoD系統(tǒng)采用推或推拉結(jié) 合數(shù)據(jù)調(diào)度策略,且節(jié)點(diǎn)P的狀態(tài)為“順序請(qǐng)求狀態(tài)”,則將P節(jié)點(diǎn)本次發(fā)送的拉式數(shù)據(jù)請(qǐng)求 中的所有數(shù)據(jù)請(qǐng)求項(xiàng)均判定為“對(duì)于隨機(jī)數(shù)據(jù)的請(qǐng)求”,轉(zhuǎn)至步驟(4);若本P2P VoD系統(tǒng)采 用拉式數(shù)據(jù)調(diào)度策略,且節(jié)點(diǎn)P的狀態(tài)為“順序請(qǐng)求狀態(tài)”,轉(zhuǎn)至步驟(3. 3. 1. 2);步驟(3. 3. 1.1)節(jié)點(diǎn)P的拉模式數(shù)據(jù)請(qǐng)求Pulli= {M,{sn,Si2,...,sj },請(qǐng)求 周期為Tpulley。le,該請(qǐng)求意義為要求服務(wù)端在接下來的Tpull。y。le時(shí)長(zhǎng)內(nèi)向其發(fā)送影片M的數(shù) 據(jù)Sil sin。若在P的最近Δ個(gè)連續(xù)拉式數(shù)據(jù)請(qǐng)求中均具有相對(duì)連續(xù)區(qū)間,且 每?jī)蓚€(gè)相鄰請(qǐng)求的相對(duì)連續(xù)區(qū)間滿足下式
Sb(i) ~ Se(i+l) - Nlim Se(i) ~ Sb(i+l)^ ^ew > Nlim公式(1) (^( + ) - sb(M))乏(1 - α) X - Sb(i))
、( W) -+ (^(0 - sm)則判定該節(jié)點(diǎn)的拉模式數(shù)據(jù)請(qǐng)求處于“順序請(qǐng)求狀態(tài)”,將本服務(wù)端的接受服務(wù)節(jié) 點(diǎn)列表中節(jié)點(diǎn)P的訪問狀態(tài)修改為“順序請(qǐng)求狀態(tài)”,記錄P的順序請(qǐng)求起點(diǎn)為sb(i),順序請(qǐng)
求速度為Vseq =,S1 b、S1^ S1 i b、Si i e分別為節(jié)點(diǎn)ρ最近兩次請(qǐng)求
L X IpullCycle
的相對(duì)連續(xù)區(qū)間上下限。其中,相對(duì)連續(xù)區(qū)間的定義如下定義對(duì)于正整數(shù)集合A= {a1; a2,. . .,an},若ai < a2 < . . . < an,且A的任意 兩個(gè)相鄰元素的差滿足maX(ai+1-ai) = σ,則稱A為一個(gè)度為σ的相對(duì)連續(xù)區(qū)間,記做
A= K,αJt7。轉(zhuǎn)至步驟(3.3. 1. 1. 1);步驟(3. 3. 1. 1. 1)標(biāo)記[%ω,\ω]區(qū)間內(nèi)各數(shù)據(jù)的預(yù)期被訪問時(shí)間,sb(i)+j的預(yù) 期被訪問時(shí)間為(SMihj-SMi)VVsrai ;轉(zhuǎn)至步驟(3. 3. 1. 1. 2);步驟(3.3.1.1.2)對(duì)于節(jié)點(diǎn)P的拉式數(shù)據(jù)請(qǐng)求Pullj中的元素Sjx,若Sjx不滿足
KeqXTpulicyde ^ s] h+sJ e ^VseqXT llCycle,視為對(duì)于隨機(jī)數(shù)據(jù)的請(qǐng)求。轉(zhuǎn)至步驟⑷; 2 JX 2 2步驟(3. 3. 1. 2)若本次拉式數(shù)據(jù)請(qǐng)求Pullj與其前一次請(qǐng)求PuIIh不滿足公式 (1)所列條件,或當(dāng)前時(shí)間與P的Tlastpull時(shí)間之差大于Tpullcyde的α倍(1. O < α < 1. 5), 轉(zhuǎn)至步驟(3. 3. 1. 2. 1),否則轉(zhuǎn)至步驟(3. 3. 1. 2. 2);步驟(3. 3. 1. 2. 1)判定節(jié)點(diǎn)P的順序請(qǐng)求狀態(tài)結(jié)束,將本服務(wù)端的接受服務(wù)節(jié)點(diǎn) 列表中節(jié)點(diǎn)P的訪問狀態(tài)修改為“隨機(jī)請(qǐng)求狀態(tài)”,記錄P的本次拉式請(qǐng)求的相對(duì)連續(xù)區(qū)間 的Sb、Se值,將本次請(qǐng)求報(bào)文內(nèi)對(duì)所有數(shù)據(jù)項(xiàng)的請(qǐng)求均視為隨機(jī)數(shù)據(jù)請(qǐng)求,轉(zhuǎn)至步驟(4);步驟(3. 3. 1. 2. 2)維持節(jié)點(diǎn)P的“順序請(qǐng)求狀態(tài)”,并記錄P的本次拉式請(qǐng)求的相 對(duì)連續(xù)區(qū)間的sb、S值,將本次請(qǐng)求Pulh中攜帶的對(duì)相對(duì)連續(xù)區(qū)間起點(diǎn)sb之前數(shù)據(jù)項(xiàng)的
11請(qǐng)求視為隨機(jī)數(shù)據(jù)請(qǐng)求,轉(zhuǎn)至步驟(4);步驟(3.3.2)節(jié)點(diǎn)P不在本服務(wù)端的接受服務(wù)節(jié)點(diǎn)列表中,在該列表中添加節(jié)點(diǎn) P記錄,將節(jié)點(diǎn)P的狀態(tài)標(biāo)識(shí)為“隨機(jī)請(qǐng)求狀態(tài)”,記錄P的拉式請(qǐng)求時(shí)間Tlastaill,以及本次 拉式請(qǐng)求中相對(duì)連續(xù)區(qū)間的首尾值sb、se,將本次請(qǐng)求報(bào)文內(nèi)對(duì)所有數(shù)據(jù)項(xiàng)的請(qǐng)求均視為隨 機(jī)數(shù)據(jù)請(qǐng)求,轉(zhuǎn)至步驟(4);步驟(4)進(jìn)行數(shù)據(jù)預(yù)取,分為對(duì)連續(xù)數(shù)據(jù)的預(yù)取與隨機(jī)請(qǐng)求數(shù)據(jù)的預(yù)取。將[sb, se]區(qū)間內(nèi)的數(shù)據(jù)從磁盤內(nèi)讀出,將該區(qū)間內(nèi)的各項(xiàng)由前到后依次按緩存隊(duì)列管理子策略 的緩存隊(duì)列插入步驟插入緩存隊(duì)列,轉(zhuǎn)至步驟(5);步驟(5)當(dāng)本服務(wù)端在當(dāng)前時(shí)刻T須向節(jié)點(diǎn)P發(fā)送數(shù)據(jù)項(xiàng)Sx時(shí),判斷Sx是否在 緩存隊(duì)列中,若在,轉(zhuǎn)至步驟(5. 1);若不在,轉(zhuǎn)至步驟(5.2);步驟(5. 1)若節(jié)點(diǎn)P當(dāng)前處于順序請(qǐng)求狀態(tài)且當(dāng)前需訪問的數(shù)據(jù)項(xiàng)為對(duì)順序數(shù) 據(jù)區(qū)間的訪問,則轉(zhuǎn)至步驟(5. 1. 1),否則轉(zhuǎn)至步驟(5. 1.2);步驟(5. 1. 1)對(duì)于順序請(qǐng)求命中,刪除該緩存項(xiàng)中對(duì)應(yīng)當(dāng)前訪問的預(yù)期訪問記 錄,若本數(shù)據(jù)項(xiàng)的后續(xù)一個(gè)數(shù)據(jù)項(xiàng)不在緩存隊(duì)列中,則按異步預(yù)取等通用預(yù)取算法取后續(xù) 數(shù)據(jù)。轉(zhuǎn)至步驟(6);步驟(5. 1.2):對(duì)于隨機(jī)訪問命中,更新對(duì)應(yīng)的緩存項(xiàng)的訪問計(jì)數(shù)及最后被訪 問時(shí)間值,若本P2P VoD系統(tǒng)采用順序請(qǐng)求的拉式傳輸數(shù)據(jù)調(diào)度策略,節(jié)點(diǎn)P處于“順序 請(qǐng)求狀態(tài)”,且sx處于其對(duì)應(yīng)拉式數(shù)據(jù)請(qǐng)求報(bào)文Pul^的相對(duì)連續(xù)區(qū)間之前,則將數(shù)據(jù)項(xiàng) sx+TpullCycle X R預(yù)取入緩存隊(duì)列,并為該緩存項(xiàng)添加預(yù)期訪問時(shí)間Tpu皿y。le+T。m。轉(zhuǎn)至步驟 (6);步驟(5. 2)從磁盤讀取[sx,sx+TpullCycleXR]區(qū)間內(nèi)的數(shù)據(jù),轉(zhuǎn)至步驟(5. 2. 1);步驟(5. 2. 1)為Sx生成臨時(shí)緩存項(xiàng),設(shè)置該臨時(shí)緩存項(xiàng)的訪問計(jì)數(shù)為1,設(shè)置該 臨時(shí)緩存項(xiàng)的最后被訪問時(shí)間值為當(dāng)前時(shí)間,轉(zhuǎn)至步驟(5.2.2);步驟(5. 2. 2)以緩存隊(duì)列管理子策略的緩存隊(duì)列插入步驟將該臨時(shí)緩存項(xiàng)插入 緩存隊(duì)列。對(duì)于順序請(qǐng)求脫靶,從磁盤讀入Sx,轉(zhuǎn)至步驟(5.2.3);步驟(5. 2. 3)若節(jié)點(diǎn)P當(dāng)前處于順序請(qǐng)求狀態(tài)且^為對(duì)順序數(shù)據(jù)區(qū)間的訪問,轉(zhuǎn) 至步驟(5. 2. 3. 1),否則轉(zhuǎn)至步驟(5. 2. 3. 2);步驟(5.2.3. 1)按異步預(yù)取等通用預(yù)取算法預(yù)取本數(shù)據(jù)項(xiàng)之后[sx+1, sx+TpullCycleXR]區(qū)間的數(shù)據(jù)。轉(zhuǎn)至步驟(6);步驟(5. 2. 3. 2)為數(shù)據(jù)項(xiàng)sx+TpullCy。leXR生成臨時(shí)緩存項(xiàng),向該臨時(shí)緩存項(xiàng)添加 預(yù)期訪問時(shí)間TpullM1JTcm,并嘗試以緩存隊(duì)列管理子策略的緩存隊(duì)列插入步驟將該臨時(shí)緩 存項(xiàng)插入緩存隊(duì)列。轉(zhuǎn)至步驟(6);步驟(6)若在^之后還有對(duì)其他數(shù)據(jù)項(xiàng)請(qǐng)求,轉(zhuǎn)至步驟(5),否則轉(zhuǎn)至步驟(2)?;谠L問預(yù)測(cè)的P2P VoD系統(tǒng)服務(wù)端的數(shù)據(jù)緩存策略中緩存隊(duì)列維護(hù)策略的緩存 隊(duì)列插入操作流程圖,如圖3所示,基于訪問預(yù)測(cè)的P2P VoD系統(tǒng)服務(wù)端的數(shù)據(jù)緩存策略中 緩存隊(duì)列維護(hù)策略的緩存隊(duì)列插入操作流程步驟如下所述緩存隊(duì)列維護(hù)策略維護(hù)一個(gè)M項(xiàng)的緩存隊(duì)列,每個(gè)緩存項(xiàng)的大小均為L(zhǎng)seg Bytes0每個(gè)緩存項(xiàng)維護(hù)表1所示各信息表1緩存項(xiàng)所維護(hù)的信息
1權(quán)利要求
一種基于訪問預(yù)測(cè)的P2P VoD系統(tǒng)服務(wù)端的數(shù)據(jù)緩存策略,數(shù)據(jù)緩存策略包括數(shù)據(jù)訪問分類及預(yù)測(cè)策略、數(shù)據(jù)預(yù)取策略和緩存隊(duì)列維護(hù)策略,其特征在于所述的數(shù)據(jù)訪問分類及預(yù)測(cè)策略,根據(jù)推模式下、拉模式下或推拉結(jié)合模式下的數(shù)據(jù)傳輸?shù)奶卣?,以及VoD應(yīng)用無VCR操作時(shí)節(jié)點(diǎn)按順序依次訪問視頻數(shù)據(jù)的特點(diǎn),對(duì)向本服務(wù)端進(jìn)行數(shù)據(jù)請(qǐng)求的各節(jié)點(diǎn)進(jìn)行分類,按照該節(jié)點(diǎn)的數(shù)據(jù)請(qǐng)求整體趨勢(shì),將節(jié)點(diǎn)分類為處于順序請(qǐng)求狀態(tài)的節(jié)點(diǎn)與處于隨機(jī)請(qǐng)求狀態(tài)的節(jié)點(diǎn);對(duì)處于順序請(qǐng)求狀態(tài)下的節(jié)點(diǎn)發(fā)送來的數(shù)據(jù)請(qǐng)求,判斷該數(shù)據(jù)請(qǐng)求中所請(qǐng)求的各個(gè)數(shù)據(jù)片段是否依次處于該節(jié)點(diǎn)順序請(qǐng)求序列中對(duì)依次處于該節(jié)點(diǎn)順序請(qǐng)求序列中的數(shù)據(jù)片段,判定為節(jié)點(diǎn)對(duì)順序數(shù)據(jù)的請(qǐng)求,按照該節(jié)點(diǎn)的歷史平均數(shù)據(jù)請(qǐng)求速度估算其未來數(shù)據(jù)訪問目標(biāo);對(duì)未依次處于該節(jié)點(diǎn)順序請(qǐng)求序列中的數(shù)據(jù)片段,判定為節(jié)點(diǎn)對(duì)隨機(jī)數(shù)據(jù)的請(qǐng)求,并進(jìn)行進(jìn)一步的分類與預(yù)測(cè),判斷此數(shù)據(jù)片段是否為播放點(diǎn)前的緊急數(shù)據(jù)如果是播放點(diǎn)前的緊急數(shù)據(jù),按照影片平均碼率及數(shù)據(jù)請(qǐng)求周期來估算其未來隨機(jī)數(shù)據(jù)訪問目標(biāo);若不是,則服務(wù)端在被動(dòng)接收到請(qǐng)求端發(fā)出的隨機(jī)數(shù)據(jù)請(qǐng)求時(shí)直接進(jìn)行數(shù)據(jù)讀取、發(fā)送處理;對(duì)處于隨機(jī)請(qǐng)求狀態(tài)的節(jié)點(diǎn)發(fā)送的數(shù)據(jù)請(qǐng)求,服務(wù)端在被動(dòng)接收到請(qǐng)求端發(fā)出的數(shù)據(jù)請(qǐng)求時(shí)直接進(jìn)行數(shù)據(jù)讀取和發(fā)送處理;所述的緩存隊(duì)列維護(hù)策略,使用基于未來訪問頻率的緩存替換算法進(jìn)行緩存隊(duì)列的插入、刪除及替換操作,緩存項(xiàng)權(quán)值的計(jì)算需要綜合該項(xiàng)未來被順序與隨機(jī)訪問到的概率,以及P2P VoD系統(tǒng)中節(jié)點(diǎn)上下線及更換服務(wù)端對(duì)數(shù)據(jù)訪問穩(wěn)定性方面的影響因素。
2.根據(jù)權(quán)利要求1所述的基于訪問預(yù)測(cè)的P2PVoD系統(tǒng)服務(wù)端的數(shù)據(jù)緩存策略,其特 征在于在推模式或推拉結(jié)合模式數(shù)據(jù)調(diào)度策略下,所述的數(shù)據(jù)訪問分類及預(yù)測(cè)策略包括 步驟步驟(1)當(dāng)本服務(wù)端接收到一個(gè)來自某節(jié)點(diǎn)P的推模式下的數(shù)據(jù)請(qǐng)求報(bào)文Push_Req ={Μ, [sb,sj,Tstart, Tend},表示需要服務(wù)端在Tstot到Tmd時(shí)間內(nèi),將視頻M的[sb,sj區(qū)間 內(nèi)的數(shù)據(jù)段按順序勻速發(fā)送給節(jié)點(diǎn)P;因此,判定在時(shí)間[Tstot,Tmd]內(nèi),節(jié)點(diǎn)P處于順序數(shù) 據(jù)請(qǐng)求狀態(tài),順序請(qǐng)求速度為¥_= (sb-se)/(Tend-Tstart);步驟(2)在滿足步驟(1)中的條件后,計(jì)算Sb之后的數(shù)據(jù)sb+i的預(yù)期被訪問時(shí)間為(Sb+i_Sb) /Vseq ;步驟⑶在Tstart到Tmd時(shí)間內(nèi),判定節(jié)點(diǎn)P發(fā)送來的所有拉模式下的數(shù)據(jù)請(qǐng)求均處于 P的依次順序請(qǐng)求序列中,即將節(jié)點(diǎn)P發(fā)送來的所有拉模式下的數(shù)據(jù)請(qǐng)求分類為對(duì)隨機(jī)數(shù) 據(jù)請(qǐng)求;步驟⑷在時(shí)間[Tstmt,Tmd]內(nèi),若本服務(wù)端接收到節(jié)點(diǎn)P發(fā)送來取消數(shù)據(jù)請(qǐng)求報(bào)文, 或未接收到該節(jié)點(diǎn)發(fā)送來的后續(xù)推模式下的數(shù)據(jù)請(qǐng)求報(bào)文,則判定節(jié)點(diǎn)P順序請(qǐng)求狀態(tài)結(jié) 束,變?yōu)樘幱陔S機(jī)請(qǐng)求狀態(tài),并重新開始對(duì)來自節(jié)點(diǎn)P的數(shù)據(jù)請(qǐng)求進(jìn)行順序判斷;步驟(5)對(duì)未被判定處于順序請(qǐng)求狀態(tài)的節(jié)點(diǎn),將該節(jié)點(diǎn)判定為處于隨機(jī)請(qǐng)求狀態(tài)。 服務(wù)端不主動(dòng)提前預(yù)測(cè)來自該節(jié)點(diǎn)的下一次數(shù)據(jù)請(qǐng)求什么時(shí)刻發(fā)生,而是服務(wù)端被動(dòng)接收 該節(jié)點(diǎn)發(fā)出的數(shù)據(jù)請(qǐng)求并直接進(jìn)行數(shù)據(jù)讀取、發(fā)送處理。
3.根據(jù)權(quán)利要求1所述的基于訪問預(yù)測(cè)的P2PVoD系統(tǒng)服務(wù)端的數(shù)據(jù)緩存策略,其特 征在于在拉模式數(shù)據(jù)調(diào)度策略下,所述的數(shù)據(jù)訪問分類及預(yù)測(cè)策略包括步驟步驟(1)設(shè)節(jié)點(diǎn)P以時(shí)長(zhǎng)Tpull。y&為周期向服務(wù)端發(fā)出拉模式數(shù)據(jù)請(qǐng)求報(bào)文Pulli = {M,{sn, si2, . . .,sj },請(qǐng)求服務(wù)端在接下來的Tpullcyde時(shí)長(zhǎng)內(nèi)向節(jié)點(diǎn)P發(fā)送視頻M的數(shù)據(jù) Sil Sin,若在P的連續(xù)Δ個(gè)拉模式下的數(shù)據(jù)請(qǐng)求中均具有相對(duì)連續(xù)區(qū)間[ ), )]σ,且每 兩個(gè)相鄰請(qǐng)求的相對(duì)連續(xù)區(qū)間滿足式(1),則判定該節(jié)點(diǎn)的拉模式下的數(shù)據(jù)請(qǐng)求處于順序 請(qǐng)求狀態(tài);
4.根據(jù)權(quán)利要求1所述的基于訪問預(yù)測(cè)的P2P VoD系統(tǒng)服務(wù)端的數(shù)據(jù)緩存策略,其特 征在于所述的對(duì)隨機(jī)數(shù)據(jù)請(qǐng)求分類及預(yù)測(cè)包括步驟步驟(1)對(duì)未依次處于該節(jié)點(diǎn)順序請(qǐng)求序列中的數(shù)據(jù)片段,判定為節(jié)點(diǎn)對(duì)隨機(jī)數(shù) 據(jù)請(qǐng)求,并進(jìn)一步判斷請(qǐng)求的數(shù)據(jù)片段是否為播放點(diǎn)前的緊急數(shù)據(jù),只有節(jié)點(diǎn)采用拉模 式下的順序數(shù)據(jù)調(diào)度策略,并且該數(shù)據(jù)片段是在拉模式下數(shù)據(jù)請(qǐng)求中處于相對(duì)連續(xù)區(qū)間 [ ,), ,山起點(diǎn)sb(i)之前的數(shù)據(jù),才判斷節(jié)點(diǎn)請(qǐng)求的該隨機(jī)數(shù)據(jù)片段是播放前的緊急數(shù)據(jù); 步驟(2)在沒有VCR操作的情況下,播放點(diǎn)的前進(jìn)速度是勻速,采用按照影片平均碼 率及數(shù)據(jù)請(qǐng)求周期來估算其未來隨機(jī)數(shù)據(jù)訪問目標(biāo);因此,若在T時(shí)刻節(jié)點(diǎn)P向服務(wù)端請(qǐng)求了其播放點(diǎn)前的緊急數(shù)據(jù)Sx,則做出以下預(yù)測(cè)在T+T, 下的請(qǐng)求將請(qǐng)求P播放點(diǎn)前的緊急數(shù)據(jù)段sx+TpullCycle時(shí)刻,節(jié)點(diǎn)P的下一次拉模式pulICycl ■:XR/L_,R為該視頻的平均碼率;步驟(3)對(duì)于使用除順序數(shù)據(jù)調(diào)度策略之外的拉模式下的隨機(jī)數(shù)據(jù)請(qǐng)求,此時(shí),服務(wù) 端不主動(dòng)提前預(yù)測(cè)來自該請(qǐng)求端的下一次隨機(jī)數(shù)據(jù)請(qǐng)求什么時(shí)刻發(fā)生,而是服務(wù)端被動(dòng)接 收請(qǐng)求端發(fā)出的數(shù)據(jù)請(qǐng)求并直接進(jìn)行數(shù)據(jù)讀取、發(fā)送處理。
5.根據(jù)權(quán)利要求1所述的基于訪問預(yù)測(cè)的P2P VoD系統(tǒng)服務(wù)端的數(shù)據(jù)緩存策略,其特 征在于所述的緩存隊(duì)列維護(hù)策略包括步驟步驟(1)當(dāng)向緩存隊(duì)列插入一緩存項(xiàng)Ix時(shí),若緩存隊(duì)列未滿,則直接將該緩存項(xiàng)插入 緩存隊(duì)列,緩存添加結(jié)束,否則轉(zhuǎn)至步驟(2)進(jìn)行緩存替換操作;步驟(2)若緩存隊(duì)列已滿,則按以下公式計(jì)算緩存隊(duì)列中各緩存項(xiàng)的未來被訪問頻 鑾II -午
全文摘要
本發(fā)明涉及一種基于訪問預(yù)測(cè)的P2P VoD系統(tǒng)服務(wù)端的數(shù)據(jù)緩存策略,該策略包括數(shù)據(jù)訪問分類及預(yù)測(cè)策略、數(shù)據(jù)預(yù)取策略和緩存隊(duì)列維護(hù)策略。其中,數(shù)據(jù)訪問分類及預(yù)測(cè)子策略負(fù)責(zé)將對(duì)本服務(wù)端的數(shù)據(jù)請(qǐng)求分類,并根據(jù)VoD應(yīng)用的特點(diǎn)對(duì)不同類別請(qǐng)求使用不同方法進(jìn)行訪問預(yù)測(cè),預(yù)測(cè)進(jìn)行數(shù)據(jù)請(qǐng)求的節(jié)點(diǎn)在未來時(shí)刻的數(shù)據(jù)訪問目標(biāo);緩存隊(duì)列維護(hù)子策略負(fù)責(zé)維護(hù)一個(gè)定長(zhǎng)緩存隊(duì)列,使用基于未來訪問頻率的緩存替換算法進(jìn)行緩存隊(duì)列的插入刪除及替換操作,未來訪問頻率的計(jì)算綜合該緩存項(xiàng)未來被順序、隨機(jī)訪問到的概率,并將P2P VoD系統(tǒng)中節(jié)點(diǎn)上下線及更換服務(wù)端等數(shù)據(jù)訪問穩(wěn)定性方面的影響因素計(jì)算在內(nèi)。
文檔編號(hào)H04L29/08GK101951395SQ201010267680
公開日2011年1月19日 申請(qǐng)日期2010年8月30日 優(yōu)先權(quán)日2010年8月30日
發(fā)明者任浩, 馮偵探, 尤佳莉, 李曉林, 王勁林, 蘇杭 申請(qǐng)人:中國(guó)科學(xué)院聲學(xué)研究所