專利名稱:自適應(yīng)網(wǎng)絡(luò)內(nèi)容傳送系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及媒體內(nèi)容傳送。
背景技術(shù):
本部分描述的方法是可以實(shí)行的方法,但并不必然是先前已經(jīng)構(gòu)思或?qū)嵭械姆椒?。因此,除非在此另有指示,本部分描述的方法不是針?duì)本申請(qǐng)權(quán)利要求的現(xiàn)有技術(shù),并且不因?yàn)榘诒静糠种卸鴮⑵湟暈楝F(xiàn)有技術(shù)。經(jīng)過(guò)因特網(wǎng)的內(nèi)容傳送已經(jīng)通過(guò)一些不同的方式實(shí)現(xiàn)。內(nèi)容服務(wù)器已經(jīng)用于直接向提出請(qǐng)求的客戶端傳送內(nèi)容。隨著內(nèi)容服務(wù)器由于業(yè)務(wù)量需求而過(guò)載,人們采用了多個(gè)服務(wù)器之間的內(nèi)容鏡像。隨著客戶端的業(yè)務(wù)量增加超過(guò)鏡像服務(wù)器的安裝基礎(chǔ)的容量,則增加鏡像服務(wù)器。由于鏡像對(duì)于內(nèi)容提供商來(lái)說(shuō)成本較高,在內(nèi)容傳送網(wǎng)(CDN)中對(duì)內(nèi)容進(jìn)行緩存變得流行起來(lái)。內(nèi)容提供商的內(nèi)容經(jīng)過(guò)因特網(wǎng)在緩存服務(wù)器之間分布。緩存服務(wù)器在多個(gè)內(nèi)容提供商之間共享,并且由CDN提供商運(yùn)營(yíng)。緩存服務(wù)器本質(zhì)上是文件服務(wù)器,其向客戶端系統(tǒng)提供不同類型的文件。
在附圖中,本發(fā)明通過(guò)示例性而不是限定性的方式進(jìn)行描述,圖中相同的附圖標(biāo)記表示相同的元件,其中根據(jù)本發(fā)明的實(shí)施例,圖1示出了通過(guò)網(wǎng)絡(luò)與客戶端系統(tǒng)、源服務(wù)器、同級(jí)MFD和中央管理站進(jìn)行通信的媒體流導(dǎo)向器(MFD);根據(jù)本發(fā)明的實(shí)施例,圖2示出了 MFD部件和數(shù)據(jù)流結(jié)構(gòu)的示例;根據(jù)本發(fā)明的實(shí)施例,圖3示出了動(dòng)態(tài)確定內(nèi)容部分的流行程度的示例;根據(jù)本發(fā)明的實(shí)施例,圖4示出了代替?zhèn)鹘y(tǒng)的視頻服務(wù)器位置的MFD部署;根據(jù)本發(fā)明的實(shí)施例,圖5示出了向客戶端系統(tǒng)傳送內(nèi)容的MFD網(wǎng)絡(luò);根據(jù)本發(fā)明的實(shí)施例,圖6示出了可以在其上執(zhí)行實(shí)施例的計(jì)算機(jī)系統(tǒng);根據(jù)本發(fā)明的實(shí)施例,圖7示出了 HPE和服務(wù)器端播放器之間工作流的流程圖;根據(jù)本發(fā)明的實(shí)施例,圖8a示出了磁盤(pán)管理器和策略模塊、分析模塊之間的交互;根據(jù)本發(fā)明的實(shí)施例,圖8b示出了磁盤(pán)管理器和用于存儲(chǔ)設(shè)備的字典之間的交互;根據(jù)本發(fā)明的實(shí)施例,圖8c示出了磁盤(pán)管理器和反向框圖之間的交互;根據(jù)本發(fā)明的實(shí)施例,圖9示出了緩沖池和緩沖區(qū)管理器之間的交互;根據(jù)本發(fā)明的實(shí)施例,圖IOa示出了媒體管理器、緩沖區(qū)管理器和媒體提供者之間的交互;根據(jù)本發(fā)明的實(shí)施例,圖IOb示出了媒體管理器和分析模塊之間的交互,用于確定熱門(mén)的視頻片段;根據(jù)本發(fā)明的實(shí)施例,圖11示出了 MFD中的網(wǎng)絡(luò)管理器的流程圖;根據(jù)本發(fā)明的實(shí)施例,圖12示出了樹(shù)枝目錄文件中的漸進(jìn)下載的提示跟蹤位置;根據(jù)本發(fā)明的實(shí)施例,圖13示出了參數(shù)說(shuō)明屏幕的圖形用戶界面的截屏;根據(jù)本發(fā)明的實(shí)施例,圖14示出了實(shí)時(shí)字節(jié)傳送監(jiān)控圖的圖形用戶界面的截屏; 以及根據(jù)本發(fā)明的實(shí)施例,圖15是網(wǎng)絡(luò)連接性能監(jiān)控圖的圖形用戶界面的截屏。
具體實(shí)施例方式本發(fā)明描述了自適應(yīng)網(wǎng)絡(luò)內(nèi)容傳送系統(tǒng)。在下文的描述中,出于解釋的目的列出了多個(gè)具體的細(xì)節(jié),以便提供對(duì)本發(fā)明透徹的理解。然而對(duì)本領(lǐng)域技術(shù)人員顯而易見(jiàn)的是, 本發(fā)明可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)施。在其他情況下,公知的結(jié)構(gòu)和設(shè)備以框圖形式示出,以免不必要地對(duì)本發(fā)明感到費(fèi)解。在此,根據(jù)下列提綱描述實(shí)施例1. 0總體概述2. 0結(jié)構(gòu)和功能概述3.0通過(guò)網(wǎng)絡(luò)的自適應(yīng)內(nèi)容傳送3.1媒體流導(dǎo)向器結(jié)構(gòu)3. 2媒體流導(dǎo)向器布局
4. 0執(zhí)行機(jī)制——硬件概述5. 0 示例6. 0擴(kuò)展和選擇1. 0總體概述本發(fā)明描述了用于自適應(yīng)網(wǎng)絡(luò)內(nèi)容傳送系統(tǒng)的方法。在其他實(shí)施例中,本發(fā)明包括被配置為執(zhí)行上述方法的計(jì)算機(jī)設(shè)備和計(jì)算機(jī)可讀介質(zhì)。2. 0結(jié)構(gòu)和功能概述本發(fā)明描述了自適應(yīng)網(wǎng)絡(luò)內(nèi)容傳送系統(tǒng)。參照?qǐng)D1,可能的實(shí)施例提供了媒體流導(dǎo)向器(media flow director) (MFD) 103。MFD是網(wǎng)絡(luò)設(shè)備,其能夠經(jīng)由HTTP、FTP、流式傳輸或者其他協(xié)議,將視頻內(nèi)容(以及不同大小的其他類型的文件內(nèi)容,例如媒體(音頻、圖片等)、游戲、軟件、HTML、腳本等)通過(guò)網(wǎng)絡(luò)104高效傳送給多個(gè)客戶端101a、101b、101η。 視頻內(nèi)容包括這些內(nèi)容,例如長(zhǎng)篇電影、情景喜劇、綜藝節(jié)目、脫口秀、新聞、廣告等。客戶端設(shè)備101a、101b、101n可以是個(gè)人計(jì)算設(shè)備,例如臺(tái)式或膝上型計(jì)算機(jī)、機(jī)頂盒、手持式計(jì)算設(shè)備、蜂窩電話、便攜式媒體播放器、或者能夠顯示多媒體內(nèi)容的任意其他便攜式設(shè)備, 并且客戶端設(shè)備經(jīng)過(guò)任意合適的接口與網(wǎng)絡(luò)104連接。MFD 103在內(nèi)部將視頻內(nèi)容存儲(chǔ)在多個(gè)存儲(chǔ)設(shè)備(包括HDD、SSD、RAM、非易失性存儲(chǔ)器等)中。MFD 103能夠?qū)⒁曨l傳送給大量客戶端,而為每個(gè)客戶端保持高水平的觀看體驗(yàn)。通過(guò)測(cè)量客戶端最后一英里的比特率變化,MFD 103自動(dòng)調(diào)整正在傳送給客戶端 101的視頻的比特率。MFD為客戶端提供沒(méi)有緩沖停頓的流暢的視頻觀看。其使用自適應(yīng)的比特率傳送,保證了正在播放的視頻向客戶端的傳送。MFD動(dòng)態(tài)調(diào)整視頻的比特率,以便匹配最后一英里的有效帶寬并且適于為客戶端改變網(wǎng)絡(luò)狀況。MFD能夠動(dòng)態(tài)測(cè)量到達(dá)客戶端的最后一英里帶寬,以動(dòng)態(tài)調(diào)節(jié)比特率??蛻舳瞬恍枰cMFD通信的定制的視頻內(nèi)容播放器。MFD支持行業(yè)標(biāo)準(zhǔn)的視頻播放器,例如Flash、Quicktime、SilverLight、Windows Media Player 等。MFD 103提供視頻的存儲(chǔ)和傳送上的策略控制,該策略控制可以由客戶和MFD供應(yīng)商定義。MFD能夠以多種方式經(jīng)過(guò)網(wǎng)絡(luò)104部署,包括位于邊緣緩存(edge cache)位置或源服務(wù)器(origin server)位置。網(wǎng)絡(luò)104可以由在通信系統(tǒng)的設(shè)備之間提供數(shù)據(jù)交換的任意介質(zhì)或機(jī)構(gòu)實(shí)現(xiàn)。網(wǎng)絡(luò)104的示例包括但不限于,局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、以太網(wǎng)、內(nèi)聯(lián)網(wǎng)、因特網(wǎng),或者一個(gè)或多個(gè)地面、衛(wèi)星或無(wú)線鏈接。MFD 103經(jīng)過(guò)任意合適的通信接口(例如以太網(wǎng)或無(wú)線通信端口 )與網(wǎng)絡(luò)104通信??蛇x擇地或者除此之外,與網(wǎng)絡(luò)104連接的任意數(shù)量的設(shè)備還可以經(jīng)過(guò)通信鏈接彼此直接相連。例如當(dāng)客戶端101對(duì)沒(méi)有存儲(chǔ)在MFD 103的存儲(chǔ)器中的URL內(nèi)容進(jìn)行請(qǐng)求時(shí), MFD 103能夠經(jīng)由網(wǎng)絡(luò)104或者經(jīng)由本地網(wǎng)絡(luò)從源服務(wù)器102請(qǐng)求內(nèi)容,以獲取URL內(nèi)容。 此外,MFD 103能夠經(jīng)由網(wǎng)絡(luò)104或者經(jīng)由本地網(wǎng)絡(luò)與另一MFD 105通信,以獲取URL內(nèi)容、 MFD內(nèi)容信息、MFD狀態(tài)等。中央管理站106可允許管理員為MFD管理(例如緩存器管理、帶寬限制、內(nèi)容流行度確定等)制定策略。中央管理站106還允許管理員對(duì)于將內(nèi)容存儲(chǔ)在MFD的多個(gè)存儲(chǔ)設(shè)備中的何處以及如何將內(nèi)容存儲(chǔ)在MFD的多個(gè)存儲(chǔ)設(shè)備中進(jìn)行管理。中央管理站106可以經(jīng)由本地網(wǎng)絡(luò)或者經(jīng)由網(wǎng)絡(luò)104與MFD 103、105通信。管理員登錄中央管理系統(tǒng)106并且選擇管理員希望與其進(jìn)行交互的一個(gè)MFD或一組MFD。管理員能夠定義策略,并且由中央管理站106將策略發(fā)送給一個(gè)MFD或者推廣到多個(gè)MFD。可選擇地,MFD可以周期性地與中央管理站106通信,或者當(dāng)中央管理站告知對(duì)于該MFD的更新可用時(shí)與中央管理站106通信。3.0通過(guò)網(wǎng)絡(luò)的自適應(yīng)內(nèi)容傳送3.1媒體流導(dǎo)向器結(jié)構(gòu)圖2示出了可能的實(shí)施例,其中示出了內(nèi)容傳送交換的結(jié)構(gòu),其被配置為MFD以傳送視頻內(nèi)容。下面描述結(jié)構(gòu)中的部件。輸出協(xié)議引擎210輸出協(xié)議引擎210處理來(lái)自客戶端的請(qǐng)求??蛻舳讼騇FD發(fā)送請(qǐng)求(例如用于特定URL的HTTP獲取請(qǐng)求)以形成與客戶端的連接,輸出協(xié)議引擎210將請(qǐng)求URL內(nèi)容傳給服務(wù)器端播放器201。服務(wù)器端播放器201服務(wù)器端播放器201主要負(fù)責(zé)對(duì)于每個(gè)視頻流的特定視頻邏輯的封裝和實(shí)施。當(dāng)向MFD發(fā)出用于視頻流的請(qǐng)求時(shí),此類實(shí)施可以在入站側(cè)(inbound side)發(fā)生,而當(dāng)特定視頻流離開(kāi)以用于傳送時(shí),此類實(shí)施可以在出站側(cè)(outbound side)發(fā)生。服務(wù)器端播放器201解釋從輸出協(xié)議引擎210接收的URL,決定對(duì)所請(qǐng)求的視頻內(nèi)容使用多大的比特率,處理將要發(fā)送什么,以及從何處播放視頻(從視頻中的哪一幀開(kāi)始播放)。服務(wù)器端播放器201是比特率感知的(bit rate aware),并且知道其正在嘗試提供的視頻內(nèi)容的比特率。其能夠使用從優(yōu)化的網(wǎng)絡(luò)堆棧211獲取的信息,以找出對(duì)于客戶端在最后一英里中的有效帶寬。服務(wù)器端播放器201還能夠核準(zhǔn)請(qǐng)求。在可能的實(shí)施例中,使用作為查詢字符串而嵌入U(xiǎn)RL的標(biāo)記的散列鍵,以證明對(duì)請(qǐng)求進(jìn)行了核準(zhǔn)。服務(wù)器端播放器201提供有保證的比特率和服務(wù)質(zhì)量(QoQ特性。如果客戶端不得不進(jìn)行緩沖,則意味著MFD已經(jīng)在其傳送率方面落后,而客戶端已經(jīng)經(jīng)歷了沉寂時(shí)期,在沉寂時(shí)期中沒(méi)有用于播放或顯示的內(nèi)容。在一個(gè)可能的實(shí)施例中,服務(wù)器端播放器201計(jì)算已經(jīng)向客戶端發(fā)送了多少數(shù)據(jù)以及過(guò)去了多長(zhǎng)時(shí)間。服務(wù)器端播放器201跟蹤發(fā)送給每個(gè)客戶端的數(shù)據(jù)量以及正在向每個(gè)客戶端發(fā)送的視頻內(nèi)容的比特率。隨著向每個(gè)客戶端發(fā)送一定量的數(shù)據(jù),服務(wù)器端播放器201記錄發(fā)送的數(shù)據(jù)量以及最后的數(shù)據(jù)量發(fā)送之后過(guò)去的時(shí)間??蛇x擇地,服務(wù)器端播放器201能夠記錄發(fā)送給客戶端的數(shù)據(jù)總量以及在客戶端會(huì)話期間過(guò)去的總時(shí)間。使用記錄下來(lái)的信息,服務(wù)器端播放器201能夠計(jì)算其是否已經(jīng)在向特定客戶端的傳送方面落后。例如,如果服務(wù)器端播放器201已經(jīng)以某一比特率向客戶端發(fā)送了 30秒的數(shù)據(jù),而在最后的數(shù)據(jù)傳輸之后已經(jīng)過(guò)去了 31秒,則服務(wù)器端播放器 201知道其已經(jīng)落后了。在另一可能的實(shí)施例中,服務(wù)器端播放器201計(jì)算還需要向客戶端傳送多少數(shù)據(jù)以及必須在其中傳送該數(shù)據(jù)的時(shí)間窗口,以避免在客戶端進(jìn)行緩沖。該計(jì)算和前面的示例有些許不同。服務(wù)器端播放器201知道視頻文件的大小,并由此能夠計(jì)算仍然要向客戶端發(fā)送的數(shù)據(jù)量。在給定比特率和視頻文件的總大小的情況下,其還能夠計(jì)算必須向客戶端發(fā)送其余的數(shù)據(jù)量的時(shí)間。服務(wù)器端播放器201能夠計(jì)算其需要為任務(wù)設(shè)定的最終期限, 其產(chǎn)生任務(wù)是為了向客戶端傳送視頻文件的片段。MFD是基于任務(wù)的系統(tǒng),其能夠使用基于最終期限的調(diào)度。服務(wù)器端播放器201在任務(wù)中設(shè)定最終期限,其產(chǎn)生任務(wù)是為了避免客戶端緩沖。在可能的實(shí)施例中,服務(wù)器端播放器201計(jì)算有保證的流率(assured flow rate) (AFR)值(在下文描述)。AFR是需要確保流暢的觀看體驗(yàn)的傳輸率。服務(wù)器端播放器201 使用AFR值為任務(wù)設(shè)定最終期限,其產(chǎn)生任務(wù)是用于請(qǐng)求來(lái)自緩沖區(qū)管理器203的數(shù)據(jù)。服務(wù)器端播放器201計(jì)算AFR,而輸出協(xié)議引擎210管理每個(gè)連接上的傳輸率(基于AFR)并且設(shè)定任務(wù)的最終期限,從而能夠滿足AFR。在上述示例中,服務(wù)器端播放器201嘗試領(lǐng)先于AFR并且將會(huì)知道其已經(jīng)落后,例如,如果服務(wù)器端播放器201已經(jīng)發(fā)送了 30秒的數(shù)據(jù), 而在最后的傳輸之后已經(jīng)過(guò)去了 30秒,則服務(wù)器端播放器201立即知道其已經(jīng)落后了。在可選擇的實(shí)施例中,服務(wù)器端播放器201能夠掃描媒體文件,以便為媒體文件設(shè)定AFR。服務(wù)器端播放器201知道某種質(zhì)量或解析度的媒體文件需要某種傳輸率,以確保客戶端不會(huì)發(fā)生停頓。服務(wù)器端播放器201還處理取消請(qǐng)求(以便決定將來(lái)做什么)、譯碼 (transcoding)和廣告插入。與不知道視頻文件格式或視頻內(nèi)容的典型的文件服務(wù)器相比, 服務(wù)器端播放器201是視頻感知的(video aware)。當(dāng)服務(wù)器端播放器201在視頻開(kāi)始后改變比特率時(shí),服務(wù)器端播放器201已經(jīng)知道相關(guān)幀存在于不同的比特率形式中的何處, 因此服務(wù)器端播放器201能夠很容易地改變比特率,而客戶端不必為新的比特率發(fā)送不同的偏移量(offset)??赡艿膶?shí)施例以定制的格式存儲(chǔ)視頻內(nèi)容,該格式可以譯碼為其需要的任意比特率。這允許服務(wù)器端播放器201準(zhǔn)確地知道相關(guān)幀在何處,用于為每個(gè)比特率進(jìn)行譯碼。另一可能的實(shí)施例為特定的視頻內(nèi)容存儲(chǔ)一些不同的比特率形式。服務(wù)器端播放器201為每個(gè)比特率形式存儲(chǔ)索引表,因此服務(wù)器端播放器201能夠?qū)Ρ磉M(jìn)行快速查閱,以便找到用于新比特率的視頻的相關(guān)幀。服務(wù)器端播放器201能夠執(zhí)行將廣告插入視頻流中。廣告能夠作為覆蓋而放置在視頻流中。這使得廣告插入不依賴客戶端播放器。內(nèi)容能夠動(dòng)態(tài)產(chǎn)生,例如能夠動(dòng)態(tài)地完成對(duì)字幕語(yǔ)言的選擇,以及能夠動(dòng)態(tài)地對(duì)合適的字幕進(jìn)行覆蓋。服務(wù)器端播放器201能夠?qū)V告拼接到視頻中間(稱為間隙型)。服務(wù)器端播放器201還能夠利用另一信道覆蓋視頻的語(yǔ)音信道,以提供多語(yǔ)言支持,而不必存儲(chǔ)不同版本的視頻內(nèi)容。在可能的實(shí)施例中,服務(wù)器端播放器201提供兩個(gè)接口,它們都是由輸入?yún)f(xié)議引擎209中的HTTP協(xié)議引擎(HPE)訪問(wèn)的接口 北向接口 在北向接口處,服務(wù)器端播放器201對(duì)HPE分析的每個(gè)輸入請(qǐng)求進(jìn)行檢查,以驗(yàn)證該請(qǐng)求帶有其定制的特定邏輯。一旦對(duì)請(qǐng)求進(jìn)行了檢查并且實(shí)施了必要的參數(shù), 則該請(qǐng)求被發(fā)回HPE,從而其能夠向緩沖區(qū)管理器203(以及此后的其他的提供者)提出關(guān)于內(nèi)容的有效的請(qǐng)求。南向接口 在南向接口處,所有離開(kāi)的數(shù)據(jù)被發(fā)送給服務(wù)器端播放器201,以便在傳送之前進(jìn)行檢查。這是服務(wù)器端播放器201在內(nèi)容發(fā)出以用于傳送之前,能夠?qū)嵤┤魏蜗薅ǖ淖詈蟮奈恢?。在該階段,服務(wù)器端播放器201具有修改緩沖區(qū)管理器203所返回的數(shù)據(jù)緩沖的能力(如果在發(fā)送之前需要修改)。圖7示出了 HPE和服務(wù)器端播放器201之間工作流的可能的實(shí)施例。執(zhí)行以下步驟步驟1 在建立連接之后,用戶請(qǐng)求經(jīng)過(guò)優(yōu)化的網(wǎng)絡(luò)堆棧211到達(dá)HPE 701。步驟2 =HPE 701進(jìn)行盡可能少的分析,以獲得查詢字符串和名稱/值對(duì)(name/ value pairs)。步驟3 利用所述查詢字符串,ΗΡΕ 701接著啟動(dòng)對(duì)服務(wù)器端播放器201的調(diào)用。步驟3a 服務(wù)器端播放器201使得與視頻無(wú)關(guān)的文件(但是本質(zhì)上是安全訪問(wèn)文件)等(例如客戶端播放器請(qǐng)求的那些文件)通過(guò)。步驟4:對(duì)于每個(gè)新連接的每個(gè)首次調(diào)用,服務(wù)器端播放器201將查詢字符串關(guān)于指向元文件的內(nèi)部URL進(jìn)行重映射。該元文件存儲(chǔ)存在的類別(profile)數(shù)、它們的比特率、周期、以及視頻的其他信息。步驟5 服務(wù)器端播放器201將重映射的URL返回HPE 701,并且還設(shè)定標(biāo)記,該標(biāo)記向HPE 701表明并不立即發(fā)送返回的元文件,而是發(fā)回服務(wù)器端播放器201以用于進(jìn)一步處理。步驟6 =HPE 701產(chǎn)生任務(wù),以便從緩存器取回元文件。HPE 701接收元文件并且將其返回服務(wù)器端播放器201。步驟6a 服務(wù)器端播放器201將元文件中的信息存儲(chǔ)在套接字結(jié)構(gòu)(socket structure)中以用于該連接。將元文件信息存儲(chǔ)在緩存器中是取回的結(jié)果,以用于將來(lái)的快速查詢。步驟7 —旦對(duì)套接字結(jié)構(gòu)進(jìn)行填充,服務(wù)器端播放器201即能夠以翻譯邏輯插件 704對(duì)原始URL進(jìn)行重映射。翻譯邏輯插件704(進(jìn)行查找和比特率調(diào)整)使用存在于套接字連接中的服務(wù)器端播放器201結(jié)構(gòu)中的信息,以便必要地翻譯為不同的類別/程序塊 (chunk) ο
步驟8 服務(wù)器端播放器201返回重映射的URL并且在HPE 701中重新設(shè)定標(biāo)記, 以表明其可以立即取回和發(fā)送從緩存器檢索的數(shù)據(jù)。步驟9 將查詢字符串傳給服務(wù)器端播放器201。服務(wù)器端播放器201檢查套接字結(jié)構(gòu)是否已經(jīng)填充。步驟10 如果填充并且如果用于時(shí)間偏移量的名稱/值對(duì)不是最少的(存在表示取消或查找的時(shí)間偏移量或字節(jié)偏移量),則服務(wù)器端播放器201調(diào)用翻譯邏輯關(guān)于合適的URL進(jìn)行重映射并且服務(wù)器端播放器201調(diào)用HPE 701,以便取回/傳送數(shù)據(jù)。步驟11 如果查詢字符串中的名稱/值對(duì)是最少的(不存在表示取消或查找的時(shí)間偏移量或字節(jié)偏移量),則從步驟4進(jìn)行重復(fù)。調(diào)度稈序202調(diào)度程序202使用調(diào)用程序設(shè)定的最終期限,以對(duì)任務(wù)的調(diào)度進(jìn)行協(xié)調(diào)??梢源嬖跓o(wú)數(shù)任務(wù),調(diào)度程序202在其中進(jìn)行管理。其保持由最終期限協(xié)調(diào)的任務(wù)。調(diào)度程序202 對(duì)這些任務(wù)進(jìn)行監(jiān)控,以便發(fā)現(xiàn)是否有任何任務(wù)已經(jīng)錯(cuò)過(guò)其最終期限。這向調(diào)度程序202 表明MFD已經(jīng)落后。調(diào)度程序202向服務(wù)器端播放器201發(fā)送反饋,以向其表明傳送率已經(jīng)落后。調(diào)度程序202能夠發(fā)送信息,例如任務(wù)ID以及任務(wù)錯(cuò)過(guò)最終期限的時(shí)間長(zhǎng)短。在可能的實(shí)施例中,如果確定不能滿足所請(qǐng)求任務(wù)的最終期限,調(diào)度程序202可以拒絕為新的連接接受任務(wù)。這是接納控制(admission control)的一個(gè)部件,其確保MFD 資源不會(huì)過(guò)度使用并且現(xiàn)有的連接流暢地進(jìn)行播放。相似地,執(zhí)行任務(wù)的所有部件(例如緩沖區(qū)管理器、磁盤(pán)管理器和源管理器(origin manager))能夠查看它們的內(nèi)部資源承諾, 并且使得新連接的首個(gè)任務(wù)失效,以作為拒絕接受會(huì)話的方法。服務(wù)器端播放器201能夠識(shí)別哪些任務(wù)與每個(gè)客戶端相關(guān)。其能夠計(jì)算(可以使用上述計(jì)算行為)在向客戶端傳送視頻內(nèi)容方面的延遲程度,并由此調(diào)節(jié)接下來(lái)的任務(wù)的最終期限。服務(wù)器端播放器201接著能夠停止接受新的連接。在可能的實(shí)施例中,服務(wù)器端播放器201能夠(可以基于策略設(shè)定)降低某些現(xiàn)有連接的比特率,以便接受附加的連接。這些方法允許服務(wù)器端播放器201動(dòng)態(tài)測(cè)量其性能,并且由此,其不必設(shè)定客戶端連接數(shù)量的靜態(tài)上限。假定其處理很多不同的比特率,連接數(shù)量的靜態(tài)上限并不代表MFD的真實(shí)性能,因此動(dòng)態(tài)上限是更加有效的,并且允許MFD自身決定其是否能夠處理更多或更少的連接??赡艿膶?shí)施例執(zhí)行最終期限調(diào)度,其中每個(gè)任務(wù)狀態(tài)可以具有多個(gè)最終期限隊(duì)列。每個(gè)最終期限隊(duì)列能夠?qū)?yīng)固定的周期,例如1/10毫秒的程序塊。調(diào)度程序202可以使得具有最短的最終期限的隊(duì)列出棧。任務(wù)處理程序在起始時(shí)刻向調(diào)度程序202預(yù)先登記。它們總是非分塊的。分塊處理程序是另一組線程并且在下文描述。在可能的實(shí)施例中,任何任務(wù)切換不涉及線程環(huán)境切換。分塊任務(wù)放射到線程池中。無(wú)論何時(shí)存在待完成的任務(wù),來(lái)自線程池的一個(gè)線程為該任務(wù)提供服務(wù)。這時(shí),調(diào)度程序202已經(jīng)對(duì)分塊任務(wù)進(jìn)行了切換。由此,沒(méi)有其他的任務(wù)將被分塊。調(diào)度程序以WRR(加權(quán)輪叫調(diào)度(Weighted Round Robin))方式檢查相關(guān)的隊(duì)列 (狀態(tài)/最終期限隊(duì)列)。其通過(guò)調(diào)用預(yù)先登記的任務(wù)處理程序而派遣任務(wù)。通過(guò)保持對(duì)
11已過(guò)去時(shí)間的跟蹤并且使得相關(guān)隊(duì)列出棧,調(diào)度程序202根據(jù)最終期限進(jìn)行調(diào)度。最終期限調(diào)度并不是嚴(yán)格地實(shí)時(shí)的。最終期限是對(duì)調(diào)度程序202的一種推薦方式,即特定任務(wù)需要在另一任務(wù)之前進(jìn)行調(diào)度。調(diào)度程序202支持不同類型的線程。這些線程是任務(wù)線程、I/O線程、事件線程和網(wǎng)絡(luò)線程。這些列出的線程并不限定能夠執(zhí)行的線程的數(shù)量和類型。任務(wù)線程是用于任務(wù)執(zhí)行的主引擎。調(diào)度程序202是啟動(dòng)程序。其基于優(yōu)先級(jí)管理執(zhí)行調(diào)度查看。當(dāng)沒(méi)有任務(wù)執(zhí)行時(shí),這些線程阻塞。I/O線程用于實(shí)現(xiàn)分塊線程(例如磁盤(pán)管理器206中的磁盤(pán)I/O)。它們能夠在讀 /寫(xiě)調(diào)用上分塊。事件線程是異步的并且關(guān)于任務(wù)狀態(tài)改變對(duì)網(wǎng)絡(luò)事件進(jìn)行映射。網(wǎng)絡(luò)線程實(shí)現(xiàn)用戶空間網(wǎng)絡(luò)堆棧并且通常不在讀取上分塊。專門(mén)的線程用于定標(biāo)和AFR的定時(shí)器管理??蛇x擇地,可以使用調(diào)度程序線程上的任務(wù)而執(zhí)行網(wǎng)絡(luò)活動(dòng)。磁盤(pán)管理器206磁盤(pán)管理器206管理分散在多個(gè)磁盤(pán)驅(qū)動(dòng)器上的對(duì)象,無(wú)論對(duì)象的大小、總數(shù)和類型。另外參照?qǐng)D8a,磁盤(pán)管理器206從策略模塊801 (PM)和分析模塊802(AM)獲取關(guān)于對(duì)象布局的提示。媒體管理器204能夠與PM 801交互,以幫助其決定如何將視頻分配為片段,并且還確定視頻的一部分何時(shí)被確定為熱門(mén)(如下所述)。媒體管理器204還能夠與 AM 802交互。基于媒體管理器204所提供的涉及對(duì)視頻部分的點(diǎn)擊的統(tǒng)計(jì)信息,AM 802確定哪些視頻部分是熱門(mén)的。存儲(chǔ)在磁盤(pán)管理器206中的對(duì)象最有可能是與視頻相關(guān)的,但也可以是任意對(duì)象。對(duì)象的磁盤(pán)布局尤其適于視頻對(duì)象,因?yàn)樗鼈兪且赃B續(xù)方式進(jìn)行觀看的。對(duì)于小對(duì)象,磁盤(pán)管理器206執(zhí)行特殊壓縮,因此很多連續(xù)的小對(duì)象能夠按照時(shí)序很靠近地壓縮在一起。這在小對(duì)象是按照時(shí)序從大視頻分塊而形成的情況下效果很好。這種壓縮允許磁盤(pán)管理器206優(yōu)化磁盤(pán)驅(qū)動(dòng)器的讀取性能,因?yàn)樽x取小量數(shù)據(jù)花費(fèi)的時(shí)間基本相當(dāng)于讀取 1-2MB的數(shù)據(jù)花費(fèi)的時(shí)間。在另一實(shí)施例中,磁盤(pán)管理器206能夠允許多種壓縮對(duì)象的策略。除了基于時(shí)間的局域性(locality),其還能夠基于名稱結(jié)構(gòu)或其他的定制方案中的局域性而支持壓縮。另外參照?qǐng)D8c,磁盤(pán)管理器206能夠使用反向框圖(reverse block map) (RBM) 805,以便一致地讀取大的數(shù)據(jù)塊806(甚至是存在小對(duì)象的情況下)。將數(shù)據(jù)塊的大小設(shè)定為特定大小(例如1MB、2MB等),這允許從磁盤(pán)驅(qū)動(dòng)器的高效讀取。對(duì)每個(gè)數(shù)據(jù)塊, 磁盤(pán)驅(qū)動(dòng)器206在RBM805中保持一列盤(pán)區(qū)(extent),其中每個(gè)盤(pán)區(qū)是對(duì)象的相接觸的部分。在該示例中,RBM 805列出帶有相關(guān)盤(pán)區(qū)807-812的數(shù)據(jù)塊806。注意,對(duì)于較小的對(duì)象,多個(gè)小對(duì)象自身或者較小對(duì)象的一部分可以放入數(shù)據(jù)塊,并且可以一起讀入緩存器。當(dāng)磁盤(pán)管理器206接收對(duì)于對(duì)象的特定部分的請(qǐng)求時(shí),其將數(shù)據(jù)塊定位在特定部分所處的位置。其接著將整個(gè)數(shù)據(jù)塊讀入緩沖區(qū)管理器203供給的緩存器813。使用RBM 805,磁盤(pán)管理器206能夠向每個(gè)緩沖區(qū)分配正確的身份(UOL)(如下所述)。這允許緩沖區(qū)管理器203 隨后消耗附加的數(shù)據(jù),而無(wú)需進(jìn)行附加的10。在實(shí)施例中,磁盤(pán)管理器206在RBM中為存儲(chǔ)在MDF中的所有對(duì)象產(chǎn)生入口。當(dāng)從源服務(wù)器加載對(duì)象時(shí),磁盤(pán)管理器206可以在RBM中為對(duì)象產(chǎn)生入口。磁盤(pán)管理器206負(fù)責(zé)多種類型的磁盤(pán)控制器和磁盤(pán)驅(qū)動(dòng)器,包括SATA、SAS、SSD和閃存。每種驅(qū)動(dòng)器類型具有不同大小和性能特性。這樣,磁盤(pán)管理器206將為每種驅(qū)動(dòng)器類型改變數(shù)據(jù)布局,以允許磁盤(pán)空間的優(yōu)化性能和利用。為了驅(qū)動(dòng)器類型和控制器中的差異的自動(dòng)調(diào)準(zhǔn),磁盤(pán)管理器206在啟動(dòng)時(shí)執(zhí)行簡(jiǎn)單的帶寬測(cè)試,因此其可以對(duì)其在開(kāi)放的硬件環(huán)境中所處理的大量配置進(jìn)行分類。管理員能夠配置磁盤(pán)管理器206,以便將來(lái)自源服務(wù)器存儲(chǔ)到硬盤(pán)驅(qū)動(dòng)器上或緩存器中。在磁盤(pán)管理器206將內(nèi)容存儲(chǔ)到硬盤(pán)驅(qū)動(dòng)器或緩存器上之前,管理員能夠指明磁盤(pán)管理器206存儲(chǔ)首次命中或者特定數(shù)量的命中的內(nèi)容。這允許管理員靈活地將緩存的內(nèi)容調(diào)節(jié)為任意已知的或預(yù)測(cè)的需求??蛇x擇地,內(nèi)部的分析能夠驅(qū)動(dòng)磁盤(pán)管理器206如何存儲(chǔ)內(nèi)容。管理員能夠指示磁盤(pán)驅(qū)動(dòng)器206將特定的新內(nèi)容存儲(chǔ)在硬盤(pán)驅(qū)動(dòng)器上,例如,這是因?yàn)楣芾韱T知道對(duì)連續(xù)劇的新劇集存在需求。逐出策略由磁盤(pán)管理器206實(shí)施。內(nèi)容可以從硬盤(pán)驅(qū)動(dòng)器或緩存器中刪除,以便基于管理員或客戶定義的逐出策略為新內(nèi)容留出空間。在可能的實(shí)施例中,能夠在內(nèi)部基于分析算法對(duì)逐出策略進(jìn)行驅(qū)動(dòng),例如使用最近最少使用的(least recently used) (LRU) 算法或其衍生算法??蛻裟軌蛟贛FD中建立足夠的存儲(chǔ)容量,使得存儲(chǔ)空間永遠(yuǎn)不會(huì)被客戶的內(nèi)容填滿??蛻艨赡芟M蛊鋬?nèi)容處于硬盤(pán)驅(qū)動(dòng)器最快的區(qū)域中并且以稀疏方式填充硬盤(pán)驅(qū)動(dòng)器,以便實(shí)現(xiàn)該目標(biāo)。于是,客戶能夠擁有一組帶有以稀疏方式填充的硬盤(pán)驅(qū)動(dòng)器的專門(mén)用于其最熱門(mén)內(nèi)容的MFD,并且具有另一組MFD,對(duì)其不那么流行的內(nèi)容進(jìn)行緩存。 管理員可以指明,MFD上的某些硬盤(pán)驅(qū)動(dòng)器以稀疏方式填充最熱門(mén)的內(nèi)容,而MFD上的其他硬盤(pán)驅(qū)動(dòng)器用于所有其他的內(nèi)容。這允許客戶為特定的MFD實(shí)現(xiàn)高效的存儲(chǔ)方案。另外參照?qǐng)D8b,磁盤(pán)管理器206將每個(gè)設(shè)備視為獨(dú)立的緩存器模塊。與文件系統(tǒng)相似,每個(gè)設(shè)備上的元數(shù)據(jù)和數(shù)據(jù)包括單獨(dú)且獨(dú)立的存儲(chǔ)。然而不像傳統(tǒng)的文件系統(tǒng),命名體系在所有模塊間是共同的,其中給定的名稱與邏輯設(shè)備(文件系統(tǒng))綁定。例如,如果傳統(tǒng)的文件系統(tǒng)安裝在/a/b/c處,則在該目錄下的所有對(duì)象將位于該文件系統(tǒng)中。相比之下,磁盤(pán)管理器 206 能夠?qū)?/a/b/c/one. gif ,/a/b/c/two. gif 和 /a/b/c/three. gif 存儲(chǔ)在其管理的緩存設(shè)備803a、803b、803c的任意之中。在初始布局(以及用于負(fù)載均衡的重新定位)期間,磁盤(pán)管理器206基于其保持在每個(gè)設(shè)備基礎(chǔ)上的使用統(tǒng)計(jì)(usage statistics) 而選擇存儲(chǔ)對(duì)象的設(shè)備。在查詢(以便對(duì)STAT任務(wù)提供服務(wù))期間,磁盤(pán)管理器206再次基于使用統(tǒng)計(jì),確定哪些設(shè)備具有對(duì)象并且選擇一個(gè)設(shè)備。這允許從不依賴對(duì)象名稱的任意緩存模塊對(duì)對(duì)象或?qū)ο蟮囊徊糠诌M(jìn)行放置并且提供服務(wù)?;谑褂媒y(tǒng)計(jì),磁盤(pán)驅(qū)動(dòng)器 206能夠通過(guò)放置對(duì)象(以及動(dòng)態(tài)地將它們重新定位)而優(yōu)化來(lái)自每個(gè)設(shè)備的帶寬。在實(shí)施例中,磁盤(pán)管理器206在每個(gè)設(shè)備的讀寫(xiě)吞吐量方面保持對(duì)每個(gè)設(shè)備業(yè)務(wù)量的跟蹤。在初始放置和重新放置期間,其選擇具有最少業(yè)務(wù)量的設(shè)備。在另一實(shí)施例中,其使用隊(duì)列深度(未完成的請(qǐng)求數(shù))和平均等待時(shí)間作為業(yè)務(wù)量的度量。靈活的布局結(jié)果引起緩存設(shè)備間的線性伸縮(linear scaling)。在實(shí)施例中,磁盤(pán)管理器206將用于每個(gè)緩存設(shè)備803a、803b、803c的字典8(Ma、 804b,804c緩存在RAM中。字典804a、804b、804c由存儲(chǔ)在設(shè)備803a、803b、803c中的對(duì)象樹(shù)和關(guān)于對(duì)象的少量元數(shù)據(jù)組成。這允許磁盤(pán)管理器206非常有效地回答STAT詢問(wèn),而無(wú)需產(chǎn)生任何磁盤(pán)10。磁盤(pán)管理器206提供簡(jiǎn)單的故障恢復(fù)模型。單一緩存設(shè)備的失效僅引起包含在該緩存設(shè)備中的對(duì)象的丟失,而對(duì)其他緩存設(shè)備的性能沒(méi)有影響。失效的緩存設(shè)備能夠被更換(在線,對(duì)于支持熱交換的硬件系統(tǒng))并且重新配置為新的緩存模塊。在實(shí)施例中,磁盤(pán)管理器206還能夠在多個(gè)緩存設(shè)備中選擇性地復(fù)制對(duì)象,以便獲得更好的故障恢復(fù)和性能。在實(shí)施例中,關(guān)于視頻的所有信息在每個(gè)設(shè)備中是獨(dú)立的,從而設(shè)備可以在MFD 之間移動(dòng)。隨著時(shí)間的過(guò)去,磁盤(pán)管理器206詢問(wèn)分析模塊802,以便在設(shè)備之間和/或向 SAS磁盤(pán)803的驅(qū)動(dòng)器中的內(nèi)磁道或外磁道自動(dòng)移動(dòng)整個(gè)電影或電影片段。磁盤(pán)管理器206 為媒體管理器204提供必要的數(shù)據(jù),以將緩存體系中的對(duì)象在多個(gè)層之間升級(jí)(promote) 或降級(jí)(demote)。內(nèi)容的初始布局可以依賴來(lái)自分析模塊802和/或策略模塊801的數(shù)據(jù)。磁盤(pán)管理器206選擇優(yōu)化讀取性能的數(shù)據(jù)布局(甚至對(duì)于小對(duì)象)。磁盤(pán)管理器206能夠避免影響多數(shù)文件系統(tǒng)性能的分段存儲(chǔ)問(wèn)題。在數(shù)據(jù)塊中, 無(wú)論可配置的空間量何時(shí)空閑,均可以通過(guò)回收整個(gè)數(shù)據(jù)塊而實(shí)現(xiàn)該目標(biāo)。例如,如果2MB 的數(shù)據(jù)塊填充了 64個(gè)每個(gè)為32KB的對(duì)象并且半數(shù)對(duì)象被刪除(例如基于逐出),則磁盤(pán)管理器206能夠使得整個(gè)程序塊空閑。RBM由磁盤(pán)管理器206使用,以便在邏輯上刪除或重新定位其余的對(duì)象。視頻信息可以包括壓縮/未壓縮的視頻數(shù)據(jù)、應(yīng)用程序所需的視頻屬性(報(bào)頭信息)和需要幫助內(nèi)部操作的視頻屬性(緩存到期、緩存起始時(shí)間)。磁盤(pán)管理器206隨著驅(qū)動(dòng)器的去除和添加再次調(diào)節(jié)緩存內(nèi)容。其還合理地處理來(lái)自物理媒體的運(yùn)行時(shí)間誤差。 SAS、SATA、SSD和閃存驅(qū)動(dòng)器在相同的系統(tǒng)中一起得到支持。磁盤(pán)管理器206允許與多個(gè)驅(qū)動(dòng)器的高度并行??赡艿膶?shí)施例允許帶有媒體的緩存器的預(yù)先加載,可以在到達(dá)特定日期和/或時(shí)間之前提供該媒體。智能緩存當(dāng)硬盤(pán)驅(qū)動(dòng)器用作緩存器并且緩存幾百、幾千、甚至幾萬(wàn)個(gè)視頻時(shí),硬盤(pán)驅(qū)動(dòng)器通常不像緩存器那樣運(yùn)行良好,最終的結(jié)果是隨機(jī)的輸入/輸出(IO)模式。MFD將關(guān)注的內(nèi)容放置在硬盤(pán)驅(qū)動(dòng)器的相同區(qū)域,因此MFD能夠?qū)崿F(xiàn)大量讀取,以補(bǔ)償帶寬(例如低帶寬連接),MFD能夠一次讀取30秒的視頻并且將其存儲(chǔ)在RAM或SSD的緩存器中(或者根據(jù)提供的連接數(shù)并且考慮這些連接的帶寬,在硬盤(pán)驅(qū)動(dòng)器上進(jìn)行緩沖)。這允許在該緩存器之外對(duì)客戶端提供服務(wù),并且客戶端在30秒之內(nèi)不需要其下一 10。SSD用于訪問(wèn)更加頻繁的內(nèi)容,或者用于需要更小的隨機(jī)10(其不能有效地從硬盤(pán)驅(qū)動(dòng)器得到服務(wù))的內(nèi)容。流行度指數(shù)用于內(nèi)容的各個(gè)部分,以確定是否有部分是熱門(mén)的。對(duì)于視頻,人們可能不會(huì)觀看整個(gè)視頻,而視頻的某些部分可能比其他部分更加熱門(mén),因此對(duì)內(nèi)容的最熱門(mén)部分進(jìn)行緩存。這允許MFD在其緩存方面更加智能。例如,MFD不必緩存整個(gè)視頻流。MFD動(dòng)態(tài)計(jì)算內(nèi)容的各個(gè)部分的流行度。參照?qǐng)D3,視頻的熱門(mén)部分的邊界隨著MFD測(cè)量視頻流的入口而動(dòng)態(tài)確定。在可能的實(shí)施例中,服務(wù)器端播放器201使用邏輯分塊方法,以動(dòng)態(tài)確定視頻的熱門(mén)部分位于何處。例如,服務(wù)器端播放器201可以使用幀標(biāo)識(shí)符,例如嵌入視頻幀或存儲(chǔ)器地址位置中的時(shí)間標(biāo)簽。幀標(biāo)識(shí)符可以由服務(wù)器端播放器201使用為視頻流產(chǎn)生的偏移量的表格而獲取。偏移量的表格可以由系統(tǒng)在收到視頻流時(shí)產(chǎn)生,或者由內(nèi)容提供商產(chǎn)生,偏移量的表格在接收視頻流時(shí)載入系統(tǒng)??梢詾橐曨l流的不同比特率存儲(chǔ)多個(gè)表。
服務(wù)器端播放器201能夠確定視頻流包含的其觀看最多的幀的部分或邊界,并且將視頻流的熱門(mén)部分放入緩存器之一(硬盤(pán)驅(qū)動(dòng)器、SSD或RAM)。在可能的實(shí)施例中,分析模塊監(jiān)控視頻1,301、視頻2,302、視頻3,303和視頻4,304。其發(fā)現(xiàn)客戶端系統(tǒng)對(duì)視頻的某些部分比該視頻的其他部分或其他視頻觀看的次數(shù)更多。視頻的這些部分305、306、307、 308存儲(chǔ)在緩存器309中。緩存器309可以是任意緩存器,RAM緩存器、SSD緩存器或硬盤(pán)驅(qū)動(dòng)器緩存器,或者是以上的任意組合。在可能的實(shí)施例中,服務(wù)器端播放器201支持所存儲(chǔ)的視頻流的實(shí)體程序塊,其將視頻流分割為小文件并且確定哪個(gè)文件是流行的。實(shí)體程序塊將視頻分割為客戶端播放器可見(jiàn)的已命名的小程序塊?;跁r(shí)間的訪問(wèn)模式用于確定哪些視頻傾向于一起觀看,例如主題相關(guān)的新聞或內(nèi)容相關(guān)的視頻,而磁盤(pán)管理器206將視頻的熱門(mén)部分放在硬盤(pán)驅(qū)動(dòng)器緩存器、SSD緩存器或RAM緩存器中的同一區(qū)域,因此增加了緩存命中次數(shù)并且允許更快的訪問(wèn)時(shí)間。RAM緩存器與緩沖區(qū)管理器203集成。其使用分析方法和/或策略以管理RAM緩存器和選擇逐出候選者。隨著服務(wù)器端播放器201發(fā)現(xiàn)每個(gè)熱門(mén)的視頻部分,緩沖區(qū)管理器203確定已經(jīng)存儲(chǔ)在緩存器中的哪些熱門(mén)部分不再被確定為熱門(mén)。緩沖區(qū)管理器203從緩存器中去除不再熱門(mén)的部分,為新的熱門(mén)部分留出空間。這由緩沖區(qū)管理器203基于源自訪問(wèn)模式的內(nèi)部分析方法而完成。在實(shí)施例中,緩沖區(qū)管理器203將不處于活躍狀態(tài)的緩沖區(qū)保持為由逐出指令協(xié)調(diào)。該指令考慮了一些因素,例如訪問(wèn)緩沖區(qū)的次數(shù),訪問(wèn)的時(shí)間頻率和使用率的增加/減少。緩沖區(qū)管理器203能夠?qū)⒅鞔鎯?chǔ)器(RAM)用作緩存器(對(duì)于高比特率視頻)和 SSD存儲(chǔ)器(對(duì)于低比特率視頻)。這允許MFD更有效地使用主存儲(chǔ)器。媒體管理器204管理緩存體系(例如SSD、硬盤(pán)、同級(jí)設(shè)備)。其評(píng)判分析方法和 /或策略,以確定何時(shí)將緩存器內(nèi)容升級(jí)、降級(jí)或逐出。媒體管理器204將劃分等級(jí)的緩存器管理初始化,緩存器管理包括緩存升級(jí)和降級(jí)的行為。對(duì)于緩存體系中每個(gè)元素的實(shí)現(xiàn)稱為緩存提供者。提供者進(jìn)行動(dòng)態(tài)登記,并且基于其登記的特性(例如帶寬、等待時(shí)間、容量等)集合到體系中。存在兩類提供者屬于系統(tǒng)本地緩存器的緩存提供者,其支持讀寫(xiě); 以及屬于網(wǎng)絡(luò)源的源提供者,其提供源內(nèi)容并且是只讀的。緩存遷移的單位可以包括邏輯塊邊界,或者在一些情況下能夠純粹源自設(shè)備級(jí)的數(shù)據(jù)塊管理。例如在HDD中,流行的數(shù)據(jù)塊(其可以包含多個(gè)視頻的部分)能夠升級(jí)到SSD或者HDD的外磁道。元數(shù)據(jù)描述了媒體在磁盤(pán)之間存在于何處。多數(shù)操作系統(tǒng)對(duì)關(guān)于文件的信息進(jìn)行緩存。該信息稱為索引節(jié)點(diǎn)。索引節(jié)點(diǎn)緩存器能夠容納很多索引節(jié)點(diǎn),通常是百萬(wàn)的數(shù)量級(jí)。該緩存器將耗費(fèi)MFD可以用來(lái)緩存媒體數(shù)據(jù)的寶貴的存儲(chǔ)容量。MFD具有向其告知媒體數(shù)據(jù)的多個(gè)片段存儲(chǔ)在磁盤(pán)原始分區(qū)中的何處的信息。該信息歸入元數(shù)據(jù)類并且稱為 “盤(pán)區(qū)”。容納大的媒體對(duì)象的每個(gè)磁盤(pán)存儲(chǔ)塊能夠具有單一盤(pán)區(qū)以用于該數(shù)據(jù)。當(dāng)磁盤(pán)存儲(chǔ)塊容納多個(gè)小對(duì)象時(shí),每個(gè)小對(duì)象具有對(duì)其進(jìn)行描述的單獨(dú)的盤(pán)區(qū)。為了減少索引節(jié)點(diǎn)緩存空間(這在一些系統(tǒng)中是難于控制的),元數(shù)據(jù)(包括盤(pán)區(qū))被壓縮到稱為樹(shù)枝目錄(container)的單一索引節(jié)點(diǎn)/文件中。每個(gè)樹(shù)枝目錄容納一組公共對(duì)象的盤(pán)區(qū)。因?yàn)閷?duì)象是公共的,所以MFD通常為這些對(duì)象讀取元數(shù)據(jù)。在可能的實(shí)施例中,MFD產(chǎn)生動(dòng)態(tài)的磁盤(pán)體系,其允許MFD確定MFD中磁盤(pán)的帶寬。磁盤(pán)管理器206確定哪些驅(qū)動(dòng)器是可能的緩存器目標(biāo)。其進(jìn)行簡(jiǎn)短測(cè)試,以便根據(jù)磁盤(pán)帶寬將每個(gè)驅(qū)動(dòng)器分類。這是因?yàn)橄嗤愋偷尿?qū)動(dòng)器能夠根據(jù)其前方的磁盤(pán)控制器而看到不同的性能值。通過(guò)運(yùn)行磁盤(pán)測(cè)試,磁盤(pán)管理器206不需要辨別多種驅(qū)動(dòng)器類型或者弄清每個(gè)磁盤(pán)控制器能夠傳送什么性能。驅(qū)動(dòng)器/控制器的帶寬組合將遵從廠商或管理員設(shè)定的類別。通常存在多種類別。在可能的實(shí)施例中,MFD產(chǎn)生磁盤(pán)緩存體系。緩存體系的每個(gè)等級(jí)均包含一組對(duì)象。訪問(wèn)次數(shù)多的對(duì)象是移動(dòng)進(jìn)入鄰近的最高速體系的很好的候選者,因此能夠降低所有對(duì)象的總的訪問(wèn)時(shí)間。當(dāng)適宜移動(dòng)對(duì)象時(shí),能夠使用帶寬使用和空間使用確定從較低等級(jí)到較高等級(jí)的對(duì)象移動(dòng),從而確定何時(shí)適于移動(dòng)對(duì)象。訪問(wèn)次數(shù)少的對(duì)象是移動(dòng)進(jìn)入鄰近的最低速體系的很好的候選者,為較高訪問(wèn)次數(shù)的對(duì)象留出空間。MFD嘗試將用于最高等級(jí)到最低等級(jí)的可用帶寬最大化。例如定義3個(gè)等級(jí)A、B和C,A是最高速的緩存器。如果A 沒(méi)有填滿,則將B中訪問(wèn)最多的對(duì)象升級(jí)到A是可行的。這將為從C到B升級(jí)對(duì)象留出更多空間。如果B中的某些對(duì)象不如C中的對(duì)象訪問(wèn)頻繁,則通過(guò)將B中訪問(wèn)最少的對(duì)象從 B移動(dòng)到C中而使其降級(jí)并且將C的訪問(wèn)最多的對(duì)象升級(jí)到B中是可行的。該移動(dòng)過(guò)程成為“升級(jí)”和“降級(jí)”。每個(gè)磁盤(pán)驅(qū)動(dòng)器外部的10-15%能夠傳送好于整個(gè)驅(qū)動(dòng)器的隨機(jī)性能15-20%的性能??赡艿膶?shí)施例能夠開(kāi)拓出驅(qū)動(dòng)器的外部并且將媒體對(duì)象最熱門(mén)的部分遷移到該區(qū)域。緩沖區(qū)管理器203緩沖區(qū)管理器203提供MFD中的主要數(shù)據(jù)路徑。MFD提供的所有內(nèi)容經(jīng)由緩沖區(qū)發(fā)送。緩沖區(qū)用于出站網(wǎng)絡(luò)和緩存提供者以及外部網(wǎng)絡(luò)和RAM緩存器之間的速度匹配(緩沖)。后者是緩存體系中的(隱含的)第一級(jí)。當(dāng)請(qǐng)求的內(nèi)容在緩存器中不可用時(shí),緩沖區(qū)管理器203使用媒體管理器204的服務(wù),以檢索數(shù)據(jù)并且對(duì)其進(jìn)行緩存用于之后的請(qǐng)求 (如果可能)。緩沖區(qū)管理器203從HPE產(chǎn)生的任務(wù)接收用于內(nèi)容的請(qǐng)求。緩沖區(qū)管理器203取回內(nèi)容。其在給定URL和偏移量(從此偏移量開(kāi)始播放)的情況下將會(huì)提供該內(nèi)容。緩沖區(qū)管理器203從媒體管理器204檢索內(nèi)容。緩沖區(qū)管理器204產(chǎn)生任務(wù),以檢索從所述偏移量開(kāi)始的視頻內(nèi)容的一部分。媒體管理器204從硬盤(pán)驅(qū)動(dòng)器或SSD檢索內(nèi)容。緩沖區(qū)管理器203能夠檢查所請(qǐng)求的內(nèi)容是否與主存儲(chǔ)器緩存器(RAM)中存儲(chǔ)的任何內(nèi)容匹配。RAM 緩存器由多個(gè)緩沖區(qū)組成。能夠直接從緩存器獲得緩存命中,而無(wú)需任何另外的復(fù)制。通過(guò)使用媒體管理器204填充新的緩沖區(qū)而獲得緩存未命中,以將內(nèi)容在存儲(chǔ)器中定位。緩沖區(qū)管理器203將指向包含視頻內(nèi)容部分的緩沖區(qū)的指針指向輸出協(xié)議引擎210,所述輸出協(xié)議引擎210使得視頻內(nèi)容部分流向客戶端。緩沖區(qū)管理器203高效管理大量存儲(chǔ)器。其具有在提供相同內(nèi)容的連接之間共享緩沖區(qū)的能力。緩沖區(qū)管理器203還具有源自MFD中的使用模式的高效的重復(fù)利用方案。緩沖區(qū)管理器203基于代價(jià)函數(shù)處理緩沖區(qū)逐出,基于使用計(jì)數(shù)和使用時(shí)期計(jì)算所述代價(jià)函數(shù)。較高的使用計(jì)數(shù)導(dǎo)致較高的代價(jià),而使用時(shí)期作為代價(jià)的衰減函數(shù),例如較舊的緩沖區(qū)具有較低的代價(jià)。逐出算法嘗試準(zhǔn)確地發(fā)現(xiàn)具有最低代價(jià)卻又高效工作(恒定時(shí)間)的緩沖區(qū)。
能夠被逐出的緩沖區(qū)(具有零參考計(jì)數(shù))被插在LRU列表的尾部。這些列表由緩沖區(qū)的使用計(jì)數(shù)進(jìn)行排序。每個(gè)LRU列表由時(shí)間標(biāo)記(timestamp)進(jìn)行高效排序。不在緩存器中的緩沖區(qū)(例如過(guò)期的、清除的)以零時(shí)間標(biāo)記放在最低的LRU列表的頭部。在逐出期間,為每個(gè)LRU列表的頭部計(jì)算代價(jià),并且最低代價(jià)的緩沖區(qū)被逐出。每個(gè)對(duì)象(URI)均具有屬于屬性的一部分的截止時(shí)間。在訪問(wèn)緩沖區(qū)緩存器時(shí), 針對(duì)當(dāng)前時(shí)間對(duì)截止時(shí)間進(jìn)行檢查。如果過(guò)期,則所有緩沖區(qū)和與對(duì)象有關(guān)的屬性從緩存器中去除。當(dāng)參考計(jì)數(shù)變?yōu)榱銜r(shí),將緩沖區(qū)放在LRU列表中。能夠利用源服務(wù)器,在截止時(shí)間之前的時(shí)間窗口(能夠由管理員或用戶配置)中使得對(duì)象重新生效。參照?qǐng)D9,在可能的實(shí)施例中,緩沖區(qū)管理器203管理緩沖池904??捎糜跀?shù)據(jù)的存儲(chǔ)器被靜態(tài)劃分為固定大小的頁(yè)面的陣列。每個(gè)頁(yè)面具有對(duì)應(yīng)的緩沖區(qū)結(jié)構(gòu),以封裝與緩沖區(qū)有關(guān)的元數(shù)據(jù)。緩沖區(qū)結(jié)構(gòu)還可以從陣列靜態(tài)分配。每個(gè)緩沖區(qū)能夠經(jīng)由緩沖區(qū)緩存器和自由列表而鏈接。元數(shù)據(jù)中的一些元素是 身份。緩沖區(qū)的身份。數(shù)據(jù)緩沖區(qū)具有由皿1^卬扎、偏移量和長(zhǎng)度)組成的ID。 屬性緩沖區(qū)具有只包含URI的ID。 參考計(jì)數(shù)。緩沖區(qū)的活躍用戶數(shù)。 使用計(jì)數(shù)。緩沖區(qū)已經(jīng)使用的次數(shù)。這是緩沖區(qū)“流行度”的基本度量。 時(shí)間標(biāo)記。緩沖區(qū)放在LRU列表上的時(shí)間(即參考計(jì)數(shù)為零)。緩沖區(qū)管理器203管理緩沖區(qū)緩存器。為所有緩沖區(qū)保持使用UOL作為關(guān)鍵字的哈希表(hash map),這些緩沖區(qū)具有身份并且能夠與其他連接共享??赡艿膶?shí)施例支持用于緩沖器的非緩存模式,由此,其具有身份,但是不可共享。與相同的對(duì)象(URI)有關(guān)的數(shù)據(jù)緩沖區(qū)以根源于對(duì)應(yīng)的屬性緩沖區(qū)中的列表鏈接在一起。這允許關(guān)于整個(gè)對(duì)象的操作的快速應(yīng)用(例如緩存器過(guò)期和對(duì)象清除)。自由列表也由緩沖區(qū)管理器203保持。所有具有零參考計(jì)數(shù)的緩沖區(qū)(包括那些帶有身份的)在該列表上。這允許緩沖區(qū)所需的高效逐出。該列表可以由多個(gè)列表(由緩沖區(qū)的使用計(jì)數(shù)進(jìn)行排序)組成。每個(gè)獲取任務(wù)將某些專用數(shù)據(jù)分配到緩存器請(qǐng)求專用數(shù)據(jù)905中,緩存器請(qǐng)求專用數(shù)據(jù)905保持其緩沖區(qū)列表以用于參考計(jì)數(shù)。緩存器請(qǐng)求專用數(shù)據(jù)905還鏈接到基本的媒體請(qǐng)求。緩存器請(qǐng)求處理器902管理緩存器請(qǐng)求專用數(shù)據(jù)905并且處理獲取任務(wù)請(qǐng)求。媒體請(qǐng)求處理器903為發(fā)送給媒體管理器204的每個(gè)媒體獲取任務(wù)捕獲輸入/輸出參數(shù)。媒體請(qǐng)求對(duì)象鏈接到媒體請(qǐng)求表格906中,使得對(duì)于相同或聯(lián)合存儲(chǔ)(co-stored) 的對(duì)象的多個(gè)請(qǐng)求能夠被同步。參照?qǐng)D10a,緩沖區(qū)管理器203和媒體管理器204(其管理緩存體系)之間的接口具有能夠?qū)崿F(xiàn)高性能緩存系統(tǒng)的獨(dú)特特性。對(duì)提供數(shù)據(jù)的設(shè)備的選擇通過(guò)使用STAT任務(wù)實(shí)現(xiàn),STAT任務(wù)類似于占線請(qǐng)求系統(tǒng)(bidding system)進(jìn)行工作。緩存體系中的每一層, 例如固態(tài)設(shè)備(SSD)管理器205、磁盤(pán)管理器206和源管理器207能夠依次響應(yīng)占線請(qǐng)求, 用于為請(qǐng)求提供服務(wù)。占線請(qǐng)求包括“塊體尺寸(blocksize)”,其指示緩沖區(qū)管理器203 分配緩沖區(qū)的必需的組。緩沖區(qū)管理器203接著將獲取請(qǐng)求向下發(fā)送給贏得占線請(qǐng)求的特定的緩存提供者。請(qǐng)求和響應(yīng)在邏輯上解耦。緩存提供者填充提供內(nèi)容的緩沖區(qū)并且為每個(gè)緩沖區(qū)設(shè)定合適的身份。這使得新的緩沖區(qū)被插入RAM緩存器中。在完成任務(wù)時(shí),緩沖
17區(qū)管理器203再次查找RAM緩存器并且能夠找到其查找的緩沖區(qū)。該模型允許提供者在同一請(qǐng)求中提供附加數(shù)據(jù),相同對(duì)象的隨后的部分或者其他相關(guān)對(duì)象。其還允許對(duì)象的多個(gè)部分由不同的提供者提供。命名和位置是正交的。例如,帶有名稱a/b/c/one.flv的視頻對(duì)象能夠在緩存體系中的任意提供者中存在(部分地或整體地)。媒體管理器204媒體管理器204基于視頻的相對(duì)熱門(mén)程度,對(duì)視頻進(jìn)行升級(jí)和降級(jí)。視頻的熱門(mén)程度是對(duì)該視頻的點(diǎn)擊次數(shù)、點(diǎn)擊頻率和該頻率的上升或下降趨勢(shì)的函數(shù)。媒體管理器204具有η個(gè)不同的源,SSD 205、硬盤(pán)206、源服務(wù)器207或同級(jí)設(shè)備 208。其接收緩沖區(qū)并且以所請(qǐng)求的內(nèi)容的一部分填充緩沖區(qū)。媒體管理器204將填充的緩沖區(qū)發(fā)送給緩沖區(qū)管理器203。如果內(nèi)容不在本地存儲(chǔ)器中,媒體管理器204從源服務(wù)器、同級(jí)設(shè)備或客戶端檢索內(nèi)容。下面是可能的實(shí)施例中與每個(gè)源有關(guān)的速度體系1.存儲(chǔ)器(RAM) IOGbps2.閃存4Gbps3.固態(tài)設(shè)備(SSD) 1. 6Gbps4.磁盤(pán)(SAS) :550Mbps5.磁盤(pán)(SATA)-400Mbps6.其他設(shè)備7. NFS和其他文件緩存器8.源管理器參照?qǐng)D10b,媒體管理器204首先將新視頻放在最低的存儲(chǔ)器體系中。在定時(shí)器期限上,媒體管理器204檢查分析/策略管理器1002,以用于最熱門(mén)和最冷門(mén)的視頻。分析/ 策略管理器1002向媒體管理器204提供所訪問(wèn)的最熱門(mén)視頻和/或視頻的一部分。最熱門(mén)的視頻或視頻的一部分升級(jí)到體系中鄰近的存儲(chǔ)器緩存器中,而最冷門(mén)的視頻降級(jí)到等級(jí)中鄰近的最低級(jí)中。這樣能夠?qū)⒁曨l放置在緩存體系的最低等級(jí)中,并且如果其相對(duì)于其他視頻的熱門(mén)程度提高,則能夠上浮到體系中的頂部。媒體管理器204使得視頻從各自的緩存器中被驅(qū)逐。其使用驅(qū)逐定時(shí)器。當(dāng)定時(shí)器啟動(dòng)時(shí),媒體管理器204搜索每個(gè)緩存提供者205、206、207、1006,檢查緩存器是否充滿到某個(gè)閾值。如果特定的緩存器充滿,媒體管理器204調(diào)用提供者的驅(qū)逐功能。提供者接著執(zhí)行用于驅(qū)逐的具體算法。同級(jí)管理器207同級(jí)管理器207能夠被配置為在緩存未命中時(shí)從同級(jí)MFD獲取某個(gè)內(nèi)容。假定 MFD在本地存儲(chǔ)器(例如一個(gè)或多個(gè)硬盤(pán)驅(qū)動(dòng)器以及一個(gè)或多個(gè)SSD)中具有有限的存儲(chǔ)空間,則劇情可以存在于客戶具有的比單一 MFD能夠存儲(chǔ)更多的視頻內(nèi)容的地方??蛻舻囊曨l內(nèi)容能夠在多個(gè)安裝在客戶位置的同級(jí)MFD之間分布,或者在同級(jí)MFD通過(guò)網(wǎng)絡(luò)(例如內(nèi)聯(lián)網(wǎng)、因特網(wǎng)、LAN或WAN)可相互訪問(wèn)的情況下,在彼此通信的多個(gè)同級(jí)MFD之間分布。管理員能夠告知每個(gè)同級(jí)MFD其同級(jí)設(shè)備的IP地址,因此,同級(jí)MFD能夠與其同級(jí)設(shè)備通信。如果MFD在本地連接,則它們能夠通過(guò)任意類型的發(fā)現(xiàn)機(jī)制,自身發(fā)現(xiàn)它們的同級(jí)設(shè)備。同級(jí)MFD能夠在它們之間通信并且讓每個(gè)同級(jí)MFD知道其緩存的URL。這意味著在每個(gè)同級(jí)MFD從源服務(wù)器或另一同級(jí)MFD加載了內(nèi)容之后,其告知其同級(jí)MFD中的每一個(gè)關(guān)于其提供服務(wù)的URL。這能夠經(jīng)由發(fā)送給每個(gè)同級(jí)MFD或向所有同級(jí)MFD廣播的一個(gè)消息或一系列消息實(shí)現(xiàn)。如果用于特定URL的請(qǐng)求發(fā)送給引起緩存未命中的同級(jí)MFDJU 該MFD中的同級(jí)管理器能夠請(qǐng)求來(lái)自對(duì)該特定URL進(jìn)行緩存的同級(jí)MFD的URL內(nèi)容。源管理器208源服務(wù)器可以將內(nèi)容推向源管理器208或者源管理器208可以從源服務(wù)器拉取內(nèi)容。源服務(wù)器可以通過(guò)將內(nèi)容預(yù)先分級(jí)到源管理器208而將內(nèi)容推向源服務(wù)器208。源服務(wù)器能夠使用FTP或HTTP協(xié)議進(jìn)入源管理器208并且指示源管理器208緩存某些URL,因?yàn)閮?nèi)容提供商知道該內(nèi)容是熱門(mén)的。作為客戶端請(qǐng)求的結(jié)果,源管理器208從源服務(wù)器拉取內(nèi)容,所述結(jié)果是所有本地的可用緩存(以及代理服務(wù)功能)均為命中。拉取內(nèi)容還能夠因?yàn)椴呗曰蛎铗?qū)動(dòng)的操作而發(fā)生,以便獨(dú)立于客戶端請(qǐng)求取回內(nèi)容。代理服務(wù)功能獨(dú)立于緩存攝取(cache ingestion)。對(duì)此有一些原因(a)代理服務(wù)可能必須提供不適于緩存的反常對(duì)準(zhǔn)的字節(jié)范圍;(b)系統(tǒng)可能需要執(zhí)行處理功能,例如在攝取期間分塊和譯碼(這在代理服務(wù)中很難實(shí)時(shí)地實(shí)現(xiàn));(c)用于兩個(gè)功能的不同策略。輸入?yún)f(xié)議引擎209除了使用例如HTTP、FTP或NFS協(xié)議與源服務(wù)器進(jìn)行通信,輸入?yún)f(xié)議引擎209與輸出協(xié)議引擎210以相同方式工作。優(yōu)化的網(wǎng)絡(luò)堆棧211優(yōu)化的網(wǎng)絡(luò)堆棧211使用TCP堆棧中的往返時(shí)間(round trip time) (RTT)估計(jì)客戶端最后一英里的比特率變化。RTT時(shí)間告知優(yōu)化的網(wǎng)絡(luò)堆棧211是否存在徹底擁塞。 RTT提供對(duì)于網(wǎng)絡(luò)中到達(dá)客戶端的可用帶寬的估計(jì)。優(yōu)化的網(wǎng)絡(luò)堆棧211還使用適于時(shí)間敏感性應(yīng)用程序(例如視頻)的算法執(zhí)行誤差處理和擁塞控制。MFD能夠響應(yīng)于探測(cè)到的比特率變化而改變比特率,無(wú)需客戶端知道。有保證的流率在可能的實(shí)施例中,對(duì)于允許進(jìn)入系統(tǒng)用于數(shù)據(jù)傳送的每個(gè)流,MFD具有確保某一等級(jí)的服務(wù)的能力。這稱為有保證的流率。MFD為每個(gè)會(huì)話計(jì)算有保證的流率并且為會(huì)話設(shè)置最大的帶寬。用于會(huì)話的帶寬使用不應(yīng)當(dāng)小于有保證的流率,并且如果存在可用的帶寬,應(yīng)當(dāng)嘗試達(dá)到最大帶寬。MFD執(zhí)行流控制,以確?,F(xiàn)有的會(huì)話達(dá)到所需的速率并且不大于最大值。這在網(wǎng)絡(luò)套接字級(jí)別(network socket level)中實(shí)現(xiàn)。套接字級(jí)別管理數(shù)據(jù)發(fā)送率。會(huì)話帶寬隊(duì)列和服務(wù)器定時(shí)器用于計(jì)算流控制。通過(guò)確保如果服務(wù)器沒(méi)有足夠的資源以允許連接則不允許新的會(huì)話,MFD執(zhí)行接納控制和連接管理。4種度量方式可以用于MFD,以保持有保證的流率(AFR)· Σ所有連接的AFR彡設(shè)備接口端口帶寬 會(huì)話AFR彡客戶端會(huì)話帶寬· Σ所有連接的AFR彡(磁盤(pán)+緩沖區(qū))讀取速度 最低質(zhì)量視頻的比特率彡會(huì)話AFR彡最高質(zhì)量視頻的比特率其中
-會(huì)話單一TCP連接。- Σ所有連接的AFR 所有接受的會(huì)話的AFR之和。-會(huì)話AFR用于一個(gè)單一會(huì)話的單獨(dú)的AFR。-客戶端會(huì)話帶寬客戶端會(huì)話的最大帶寬。通常客戶端會(huì)話的最大帶寬是指由于WAN環(huán)境所限的最大的TCP吞吐量。對(duì)于DSL下載,典型的帶寬是1,500Kbit/秒。-視頻的比特率每個(gè)視頻具有類別。不同的類別具有不同的質(zhì)量。高質(zhì)量視頻要求較高的比特率。不是每個(gè)視頻都具有用于所有比特率的類別。典型的視頻類別比特率可以從 200Kbit/ 秒到 1,OOOKbit/ 秒。為確保MFD不會(huì)過(guò)度使用服務(wù)器資源從而能夠保持用于現(xiàn)有會(huì)話的AFR,MFD拒絕新會(huì)話或者降低用于現(xiàn)有會(huì)話的類別(如果可能),以便基于策略設(shè)定而適應(yīng)新會(huì)話。通過(guò)在服務(wù)器上發(fā)送繁忙的HTTP答復(fù)或者簡(jiǎn)單地關(guān)閉連接而將會(huì)話拒絕。MFD不會(huì)在提供數(shù)據(jù)期間關(guān)閉會(huì)話。其簡(jiǎn)單地降低會(huì)話的類別。例如,如果整體設(shè)備的網(wǎng)絡(luò)帶寬為每個(gè)網(wǎng)絡(luò)接口端口限制為Kibit/秒,則Σ所有連接的AFR應(yīng)當(dāng)小于該帶寬。當(dāng)所有接受的會(huì)話的AFR之和等于Kibit/秒時(shí),MFD能夠停止接受新的會(huì)話。在可能的實(shí)施例中,通過(guò)考慮由數(shù)據(jù)包的再次傳輸、ACK包、TCP/IP報(bào)頭、 其他用途(例如ARP、脫機(jī)的源管理器208等)所使用的網(wǎng)絡(luò)開(kāi)銷,帶寬能夠?yàn)樗械腁FR 計(jì)算降低為0. 8Gbit/秒,以便考慮更加切實(shí)可行的帶寬限制。AFR比特率可以在最低質(zhì)量視頻的比特率和最高質(zhì)量視頻的比特率之間。如果 AFR <最低質(zhì)量視頻的比特率,則在客戶端將會(huì)發(fā)生屏幕抖動(dòng)。如果AFR >最高質(zhì)量視頻的比特率,則浪費(fèi)帶寬資源。服務(wù)器端播放器201不會(huì)關(guān)閉連續(xù)會(huì)話的獲取請(qǐng)求,但是允許通過(guò)返回故障錯(cuò)誤代碼而關(guān)閉新的會(huì)話。在可能的實(shí)施例中,如果客戶端正在經(jīng)由撥入調(diào)制解調(diào)器獲取訪問(wèn),則AFR受限于這種較慢的最后一英里連接。網(wǎng)絡(luò)驅(qū)動(dòng)模塊基于RTT計(jì)算探測(cè)客戶端連接ISP的速度。 示例的公式可以是客戶端會(huì)話帶寬速度=1460比特/RTT(以秒為單位)。如上所述,視頻內(nèi)容存儲(chǔ)在磁盤(pán)或RAM中。一旦MFD確定了 AFR,其需要確保磁盤(pán) +緩沖區(qū)能夠達(dá)到該速度。磁盤(pán)速度(作為一種性能)不容易測(cè)量,不像CPU和網(wǎng)絡(luò)性能。 其顯著依賴工作負(fù)荷。對(duì)于測(cè)量磁盤(pán)是否處于或接近最高性能的更實(shí)用的方式是查看隊(duì)列深度和/或平均等待時(shí)間。調(diào)度程序202的最終期限錯(cuò)過(guò)計(jì)數(shù)器是指示系統(tǒng)中正在發(fā)生什么的很好的指示器。例如,在某種情形下,網(wǎng)絡(luò)主管(Web master)希望產(chǎn)生VIP列表。通過(guò)用戶界面管理控制臺(tái),網(wǎng)絡(luò)主管可以制定策略,使得VIP列表接收高質(zhì)量視頻,這產(chǎn)生較高的AFR以用于會(huì)話。在另一示例中,網(wǎng)絡(luò)主管能夠設(shè)置平均視頻質(zhì)量。網(wǎng)絡(luò)主管能夠使用用戶界面管理控制臺(tái)設(shè)定平均的AFR。在可能的實(shí)施例中,MFD不會(huì)希望將較高質(zhì)量的視頻發(fā)送給不能播放高質(zhì)量視頻的客戶端。例如,PC/膝上型電腦能夠播放高質(zhì)量視頻,但是iPhone/g-phone/Palm等只具有小屏幕,并因此不能播放高質(zhì)量視頻。完全沒(méi)有必要向這類設(shè)備發(fā)送過(guò)高質(zhì)量的視頻。參照?qǐng)D11,示出了數(shù)據(jù)流,用于優(yōu)化的網(wǎng)絡(luò)堆棧211中網(wǎng)絡(luò)管理器的AFR部分的可能的實(shí)施例,在HPE將任務(wù)安排給調(diào)度程序202并且調(diào)度程序202返回?cái)?shù)據(jù)塊之后向外發(fā)送數(shù)據(jù)。如果計(jì)算的數(shù)據(jù)大小不能在一個(gè)定時(shí)器間隔(例如每秒一次)中發(fā)出,則意味著在網(wǎng)絡(luò)管理器中發(fā)生AFR差錯(cuò)。如果調(diào)度程序202不在最終期限錯(cuò)過(guò)時(shí)間返回任務(wù),則意味著磁盤(pán)管理器206中的AFR差錯(cuò)。網(wǎng)絡(luò)管理器計(jì)算任務(wù)的最終期限。其接著以計(jì)算的最終期限安排任務(wù)1101。網(wǎng)絡(luò)管理器接著計(jì)算在給定AFR和定時(shí)器間隔(用于套接字的傳輸周期)的情況下能夠通過(guò)連接發(fā)送的最大比特?cái)?shù)。這引起能夠在一個(gè)定時(shí)器間隔中通過(guò)連接發(fā)送的最大的數(shù)據(jù)量 1102。網(wǎng)絡(luò)管理器接著通過(guò)套接字發(fā)送數(shù)據(jù)1103。如果發(fā)送未完成1104,例如沒(méi)有用于待發(fā)送數(shù)據(jù)的足夠空間或者定時(shí)器間隔已經(jīng)過(guò)去,則網(wǎng)絡(luò)管理器嘗試再次通過(guò)連接發(fā)送數(shù)據(jù)1107、1103。如果存在用于待發(fā)送/待接收數(shù)據(jù)的足夠空間1104(例如客戶端上的緩沖區(qū)水平足夠、TCP水平足夠、窗口大小足夠、更多的數(shù)據(jù)將要發(fā)送等等),則網(wǎng)絡(luò)管理器查看是否有更多的數(shù)據(jù)將要發(fā)送1105。如果更多的數(shù)據(jù)可用于發(fā)送,則網(wǎng)絡(luò)管理器將套接字放回到定時(shí)器隊(duì)列中,以等待下一定時(shí)器間隔發(fā)送更多的數(shù)據(jù)1108并且計(jì)算能夠經(jīng)過(guò)連接而發(fā)送的下一最大比特?cái)?shù)1102。否則,網(wǎng)絡(luò)管理器由定時(shí)器間隔終止并且獲得待發(fā)送的下一數(shù)據(jù)塊 1106。過(guò)程繼續(xù),直到所有來(lái)自調(diào)度程序202的數(shù)據(jù)塊的所有數(shù)據(jù)已經(jīng)被發(fā)送。在可能的實(shí)施例中,MFD執(zhí)行以下內(nèi)容,以便保持AFR 1.網(wǎng)絡(luò)端口上請(qǐng)求的連接。如果該網(wǎng)絡(luò)端口的總連接>最大的允許連接,則拒絕該連接。2.每個(gè)連接只能最多享有計(jì)算的會(huì)話帶寬。在該示例中=Kibps/該網(wǎng)絡(luò)端口上的總連接。3.由于最大會(huì)話帶寬配置而進(jìn)行的修改。a.如果配置最大的配置會(huì)話帶寬并且計(jì)算的會(huì)話帶寬>最大的會(huì)話帶寬,則將計(jì)算的會(huì)話帶寬設(shè)定為最大的配置會(huì)話帶寬。b.否則不作改變。4.計(jì)算會(huì)話AFR。a.將會(huì)話AFR設(shè)定為配置的AFR,作為基本建議的AFR。b.調(diào)用服務(wù)器端播放器201用于調(diào)節(jié)AFR。如果服務(wù)器端播放器201返回錯(cuò)誤信息,則關(guān)閉會(huì)話。5.由于平衡的AFR計(jì)算而進(jìn)行的修改。a.如果計(jì)算的會(huì)話帶寬> 1. 2XAFR,則將計(jì)算的會(huì)話帶寬設(shè)定為1. 2XAFR0b.否則不作改變。6.由于AFR而進(jìn)行的修改。a.如果計(jì)算的會(huì)話帶寬< AFR,則將計(jì)算的會(huì)話帶寬設(shè)定為AFR。b.否則不作改變。7.無(wú)論何時(shí)將向客戶端發(fā)送數(shù)據(jù),在每個(gè)epollout事件中或任務(wù)完成時(shí)實(shí)行計(jì)算的會(huì)話帶寬。網(wǎng)絡(luò)和HTTP管理器向服務(wù)器端播放器201提供3個(gè)參數(shù),用于計(jì)算服務(wù)器端播放器201的AFR值。這3個(gè)參數(shù)是 URI。
客戶端會(huì)話帶寬(AFR的最高值)。 網(wǎng)絡(luò)帶寬的總的可用AFR。其中-總的可用AFR可以由網(wǎng)絡(luò)模塊微調(diào)。-總的可用AFR興總的網(wǎng)絡(luò)帶寬-Σ現(xiàn)有會(huì)話的AFR。-總的可用AFR= min (總的網(wǎng)絡(luò)帶寬-Σ現(xiàn)有會(huì)話的AFR,配置的最大AFR)。在服務(wù)器端播放器201的AFR計(jì)算中,返回的AFR值可以小于客戶端會(huì)話帶寬和總的可用AFR。服務(wù)器端播放器201能夠在HPE結(jié)束HTTP分析后被調(diào)用。HPE提供所有的 HTTP信息(例如URI等)和標(biāo)記,以顯示這是新會(huì)話或者帶有相同連接的連續(xù)會(huì)話。服務(wù)器端播放器201不會(huì)關(guān)閉連續(xù)會(huì)話的獲取請(qǐng)求,但是應(yīng)當(dāng)允許關(guān)閉新的會(huì)話。服務(wù)器端播放器201將AFR設(shè)定為URI請(qǐng)求中指明的值。如果服務(wù)器端播放器201不能將AFR設(shè)定為請(qǐng)求的值,其向HTTP引擎返回將會(huì)關(guān)閉連接的錯(cuò)誤代碼。調(diào)度程序202最終期限的錯(cuò)過(guò)能夠用于測(cè)量運(yùn)行期間的磁盤(pán)吞吐量。HPE以微秒為單位計(jì)算最終期限(使用最終期限=func(總的HTTP字節(jié)/AFR)),并且在向調(diào)度程序 202提交任務(wù)時(shí)向調(diào)度程序202發(fā)送最終期限。如果磁盤(pán)操作過(guò)載,則調(diào)度程序202丟棄一些新任務(wù)。選擇的丟棄的任務(wù)應(yīng)當(dāng)屬于新會(huì)話產(chǎn)生的第一任務(wù)。HPE能夠設(shè)定標(biāo)記,以告知調(diào)度程序202任務(wù)是否屬于新會(huì)話。當(dāng)存在很多磁盤(pán)最終期限錯(cuò)過(guò)時(shí),調(diào)度程序202向網(wǎng)絡(luò)管理器發(fā)送反饋,以減少服務(wù)器結(jié)構(gòu)中最大的允許的連接。這減少了總的會(huì)話數(shù)量。在恢復(fù)磁盤(pán)操作并且已經(jīng)忽視最終期限錯(cuò)過(guò)之后,調(diào)度程序202嘗試恢復(fù)到服務(wù)器結(jié)構(gòu)中最大的允許的連接設(shè)定。提示軌跡(Hint Tracks)參照?qǐng)D12,在可能的實(shí)施例中,漸進(jìn)下載(progressive download)的提示軌跡 (PDH) 1206向MFD描述如何使用HTTP上的漸進(jìn)下載提供位于文件1201中的媒體數(shù)據(jù)。只有一個(gè)樹(shù)枝目錄文件(container file) 1201需要位于MFD中。在該樹(shù)枝目錄文件1201中, 用戶可以存儲(chǔ)具有變化的比特率、空間分辨率的流1204、1205,或者可伸縮流。如同MP4的樹(shù)枝目錄文件,樹(shù)枝目錄文件1201還能夠包含元數(shù)據(jù)1202。PDH-提示軌跡1206是視頻文件樹(shù)枝目錄(該示例中的moov) 1203中更高級(jí)的元邏輯框(meta box),其向MFD描述對(duì)其可用的所有選擇以支持PDH。在可能的實(shí)施例中,根據(jù)來(lái)自客戶端的請(qǐng)求以適應(yīng)變化的帶寬狀況、可用的客戶端CPU資源,或者通過(guò)MFD調(diào)查網(wǎng)絡(luò)以考慮網(wǎng)絡(luò)等待時(shí)間,MFD側(cè)的邏輯能夠作出智能決策,即關(guān)于應(yīng)當(dāng)如何提供以及提供哪種類型的比特率、幀率或分辨率,以便最好地滿足網(wǎng)絡(luò)狀況和客戶端的要求。在可能的實(shí)施例中,MFD能夠使用提示軌跡,以決定提供的最佳的比特率、幀率或分辨率并且接著將媒體數(shù)據(jù)的周期的相關(guān)部分封裝為MP4的自我包含的數(shù)據(jù)塊,以通過(guò) HTTP傳送。位于此類樹(shù)枝目錄中的媒體數(shù)據(jù)自身不需要以任何方式再次格式化。在可能的實(shí)施例中,可以產(chǎn)生多個(gè)預(yù)先定義的PDH提示軌跡,其覆蓋多數(shù)常見(jiàn)的使用狀況,以減少M(fèi)FD端的負(fù)荷。在可能的實(shí)施例中,能夠在服務(wù)器中使用媒體數(shù)據(jù)的單一流,安排為以預(yù)先定義的幀率(例如,以30fps的幀率,以B1Iibps的比特率編碼的H. 264流)提供服務(wù)。在傳送期間,根據(jù)網(wǎng)絡(luò)狀況,MFD能夠選擇丟棄較高的臨時(shí)增強(qiáng)層(用于該臨時(shí)增強(qiáng)層的信息能夠由MP4中的分層邏輯框(layering box)容易地獲得)。因此,PDH數(shù)據(jù)塊的用于這些較低幀率部分(例如15fps、7. 5fps)的比特率將小于4吐 8,因此提供一種機(jī)制,以快速適應(yīng)帶寬起伏,而盡可能地不影響用戶的回放質(zhì)量體驗(yàn)。在可能的實(shí)施例中,附加的提示跟蹤(或者更高級(jí)的邏輯框)能夠用于描述多種可用的選擇以支持快進(jìn)快退。此類提示跟蹤(或邏輯框)能夠向MFD提供關(guān)于快進(jìn)或倒回的速度信息等)和關(guān)于相對(duì)的幀偏移量和回放率(這將在回放期間幫助客戶端播放器)的準(zhǔn)確信息。在可能的實(shí)施例中,對(duì)提示跟蹤的使用還可以擴(kuò)展為支持MFD端的播放列表。這些提示跟蹤能夠提供信息,這些信息是關(guān)于廣告或視頻片段需要在何處插入以及它們的準(zhǔn)確持續(xù)時(shí)間。提示跟蹤還能夠提供控制機(jī)制信息,例如,客戶端播放器是否能夠略過(guò)或者快進(jìn)廣告或視頻片段。提示跟蹤還可以包含廣告服務(wù)器接觸的信息,如果需要,用于廣告或視頻片段的動(dòng)態(tài)替換。MFD 策略管理員能夠?yàn)镸FD制定策略以便對(duì)其進(jìn)行操作。例如,管理員可能希望MFD服務(wù)盡可能多的客戶端或提供HD內(nèi)容,并且以服務(wù)大量客戶端為代價(jià),保持HD內(nèi)容的質(zhì)量。來(lái)自調(diào)度程序202的反饋信息(關(guān)于任務(wù)遲到了多長(zhǎng)時(shí)間、遲到的任務(wù)數(shù)或者任何其他有用的衡量標(biāo)準(zhǔn)),能夠發(fā)送給服務(wù)器端播放器201和/或輸出協(xié)議引擎210。服務(wù)器端播放器201能夠使用該信息,以調(diào)節(jié)其服務(wù)的客戶端的數(shù)量,或者甚至是調(diào)節(jié)其向某些客戶端傳送的視頻的質(zhì)量,以決定傳送等待時(shí)間??赡艿氖?,在某些帶寬處運(yùn)行的某些客戶端是足夠靈活的,以便動(dòng)態(tài)減少它們的帶寬。輸出協(xié)議引擎210能夠使用來(lái)自調(diào)度程序202的信息,以拒絕任何新的客戶端連接,直到調(diào)度程序202傳送輸出協(xié)議引擎210的統(tǒng)計(jì)數(shù)據(jù),該統(tǒng)計(jì)數(shù)據(jù)顯示MFD已經(jīng)有效地趕上所需的傳送效率。限定使用哪種準(zhǔn)則以用于作出這種確定的參數(shù)由管理員定義。此類參數(shù)可以包括執(zhí)行操作,基于正在受到延遲傳送影響的客戶端數(shù)量或者存在的等待時(shí)間量,例如錯(cuò)過(guò)最終期限的任務(wù)數(shù)。管理員可以配置源服務(wù)器,以告知MFD其應(yīng)當(dāng)與哪些內(nèi)容服務(wù)器通信,以便在MFD 經(jīng)歷緩存未命中時(shí)檢索內(nèi)容。源服務(wù)器能夠指示源管理器207使用特定協(xié)議從特定的內(nèi)容服務(wù)器獲取某些內(nèi)容。源服務(wù)器還能夠定義MFD上的策略,以告知源管理器207哪些內(nèi)容是可緩存的,而哪些內(nèi)容必須從源服務(wù)器獲取,例如很少請(qǐng)求的內(nèi)容。MFD 擴(kuò)展在廠家,MFD還可以是帶寬受限的。MFD可以設(shè)置為不超出某個(gè)峰值帶寬或開(kāi)放的會(huì)話數(shù)。這允許MFD供應(yīng)商出售某種級(jí)別的服務(wù)。如果客戶要求更高的峰值帶寬或更多的開(kāi)放的會(huì)話,則MFD供應(yīng)商能夠?qū)蛻舻腗FD的峰值帶寬或開(kāi)放會(huì)話的最大數(shù)量進(jìn)行遠(yuǎn)程設(shè)置,用于一次性費(fèi)用或連續(xù)費(fèi)用。MFD還可以自動(dòng)超出最大帶寬或最大數(shù)量的開(kāi)放會(huì)話, 并且向MFD供應(yīng)商告知超出的量。MFD供應(yīng)商則可以向客戶收取超出部分的費(fèi)用。這允許客戶臨時(shí)處理大量的活動(dòng)突發(fā)而不必購(gòu)買(mǎi)附加的MFD或MFD更新。負(fù)載均衡器交互
通常存在與同級(jí)MFD通信的負(fù)載均衡器。負(fù)載均衡器能夠被配置為向某個(gè)同級(jí) MFD發(fā)送客戶端請(qǐng)求(當(dāng)該請(qǐng)求是用于具體的URL時(shí))。同級(jí)MFD之一能夠發(fā)送哪個(gè)URL 對(duì)于每個(gè)同級(jí)MFD均是可用的表格??蛇x擇地,每個(gè)同級(jí)MFD能夠告知負(fù)載均衡器其提供哪些URL。負(fù)載均衡器能夠集合來(lái)自同級(jí)MFD的所有信息,并且產(chǎn)生其自身的表格或數(shù)據(jù)庫(kù)入口,以將客戶端URL請(qǐng)求指向正確的同級(jí)MFD。負(fù)載均衡器可以使用基于URL和/或其他參數(shù)的散列方案(hashing scheme),以確定MFD指向要求的URL。這允許URL內(nèi)容在同級(jí) MFD之間分布。監(jiān)控和統(tǒng)計(jì)用戶界面管理員或其他人員能夠查看MFD存儲(chǔ)的統(tǒng)計(jì)數(shù)據(jù)(由服務(wù)器端播放器201記錄該數(shù)據(jù))并且能夠經(jīng)由文本或圖形表示看到MFD如何運(yùn)行。媒體管理器204還記錄緩存命中數(shù)和未命中數(shù),以及什么內(nèi)容是最流行的(熱門(mén)內(nèi)容)或最不流行的。媒體管理器204還能夠記錄源服務(wù)器(其已經(jīng)從該源服務(wù)器請(qǐng)求內(nèi)容)和這些請(qǐng)求進(jìn)行的次數(shù)。用戶界面允許管理員觀察圖形或文字表示的內(nèi)容性能數(shù)據(jù)。用戶界面能夠展示用于指定時(shí)期的或?qū)崟r(shí)記錄的信息。圖形用戶界面允許MFD使用其能夠收集的關(guān)于磁盤(pán)使用和內(nèi)容訪問(wèn)的統(tǒng)計(jì)信息, 以顯示圖像圖表,如實(shí)地表示以下任何內(nèi)容 柱狀數(shù)據(jù),顯示每個(gè)磁盤(pán)最近的數(shù)據(jù)檢索次數(shù)。 磁盤(pán)訪問(wèn)計(jì)數(shù)器。 每個(gè)磁盤(pán)的視頻數(shù)。 自由空間的量。 請(qǐng)求的視頻數(shù)。·每個(gè)磁盤(pán)請(qǐng)求的視頻數(shù)。 每個(gè)磁盤(pán)最近的吞吐量。 緩沖緩存器中的命中/未命中。 多種緩沖操作。 錯(cuò)誤(來(lái)自媒體管理器統(tǒng)計(jì)數(shù)據(jù)、媒體請(qǐng)求等)。 存儲(chǔ)的視頻數(shù)。 每個(gè)緩存器的視頻數(shù)。 產(chǎn)生的視頻數(shù)。 刪除的視頻數(shù)。 媒體提供者的數(shù)量。 關(guān)于媒體提供者的元數(shù)據(jù)。 每個(gè)緩存級(jí)(存儲(chǔ)器、SSDJIta )提供的帶寬和原始源(HTTP、NFS等)。 每個(gè)緩存設(shè)備(每個(gè)SSD或磁盤(pán)單元)提供的帶寬。緩存邏輯設(shè)計(jì)為,當(dāng)工作負(fù)荷類別相對(duì)于內(nèi)容發(fā)生改變時(shí),加載設(shè)備間的級(jí)別。·每個(gè)接口端口提供的帶寬和連接。 每個(gè)協(xié)議(HTTP、RTSP等)提供的帶寬和連接。在可能的實(shí)施例中,用戶可以配置與MFD的性能特征有關(guān)的參數(shù)。例如服務(wù)器端播放器和媒體管理器的部件記錄性能統(tǒng)計(jì)數(shù)據(jù),這些統(tǒng)計(jì)數(shù)據(jù)由圖形用戶界面使用,以向用戶顯示統(tǒng)計(jì)數(shù)據(jù)和圖形。圖13示出了可能的實(shí)施例中的用戶界面屏幕,其中用戶能夠指明參數(shù),例如AFR 1304或每個(gè)會(huì)話的最大比特率1305。用戶還能夠指明命名空間1301及其URI 1302,以及用于命名空間的HTTP源服務(wù)器的主機(jī)名稱1303。參照?qǐng)D14,在可能的實(shí)施例中,圖形用戶界面屏幕1400可以顯示從緩存器、源服務(wù)器傳送的比特總數(shù)1401,以及隨時(shí)間傳送給客戶端的比特總數(shù)1402的實(shí)時(shí)圖像。圖形用戶界面1400允許用戶看到MFD在其向客戶端傳送內(nèi)容時(shí)的實(shí)際性能1403。用戶能夠在 MFD中定制策略以調(diào)節(jié)緩存存儲(chǔ)器,例如,處理用戶總是希望可用的某些熱門(mén)內(nèi)容。圖形用戶界面1400立即向用戶顯示其所作的改變已經(jīng)出現(xiàn)在MFD上的效果。圖15示出了圖形用戶界面的截屏1500,顯示了 MFD的連接上的性能特征1501。3. 2媒體流導(dǎo)向器布局圖4示出了使用MFD 401代替現(xiàn)有的視頻服務(wù)器402的可能的實(shí)施例?,F(xiàn)有的視頻服務(wù)器實(shí)現(xiàn)方案通常是一組文件服務(wù)器403,對(duì)來(lái)自一個(gè)源服務(wù)器或一組源服務(wù)器404 的內(nèi)容進(jìn)行緩存。來(lái)自源服務(wù)器404的內(nèi)容在很多視頻服務(wù)器403之間進(jìn)行鏡像。用戶經(jīng)由客戶端訪問(wèn)門(mén)戶服務(wù)器405上的網(wǎng)頁(yè)以搜索視頻內(nèi)容。用戶經(jīng)由網(wǎng)頁(yè)上的鏈接從網(wǎng)頁(yè)選擇視頻。將URL發(fā)送給DNS服務(wù)器,DNS服務(wù)器將URL解析為負(fù)載均衡器負(fù)責(zé)的IP地址。 將解析的IP地址傳給客戶端,客戶端使用IP地址進(jìn)行視頻請(qǐng)求。一組邊緣路由器407中的路由器將請(qǐng)求發(fā)送給分布式交換機(jī)406中的負(fù)載均衡器。負(fù)載均衡器接收請(qǐng)求并且將URL 請(qǐng)求發(fā)送給視頻服務(wù)器集群402中的服務(wù)器。URL請(qǐng)求可以向視頻服務(wù)器告知客戶端期望請(qǐng)求的視頻的比特率。視頻服務(wù)器是文件服務(wù)器,除了其必須向客戶端傳送某個(gè)比特率的視頻以外,其不知道其傳送的文件的特性。通常,名稱和內(nèi)容對(duì)于視頻服務(wù)器是不透明的。 每個(gè)比特率的視頻通常是命名的文件。視頻服務(wù)器使得視頻文件流向客戶端并且嘗試將視頻傳送給客戶端,從而客戶端的視頻緩沖區(qū)不會(huì)變空??蛻舳吮仨殞?duì)接收的視頻進(jìn)行緩沖,以便覆蓋來(lái)自視頻服務(wù)器的視頻流中的延遲??蛻舳说木彌_區(qū)旨在為用戶提供連續(xù)的觀看體驗(yàn)。假定視頻服務(wù)器向很多客戶端提供大量視頻,服務(wù)器在帶寬之外運(yùn)行所產(chǎn)生的或者客戶端的網(wǎng)絡(luò)延遲所產(chǎn)生的傳送延遲是經(jīng)常性的,并且客戶端緩沖區(qū)變空。因此,用戶看到視頻流停止播放,直到緩沖區(qū)開(kāi)始再次填充,或者對(duì)于小的視頻文件,直到整個(gè)視頻已經(jīng)在視頻開(kāi)始播放之前加載到緩沖區(qū)中。在可能的實(shí)施例中,一個(gè)MFD具有達(dá)到10(ibpS以上吞吐量的能力,使得單一 MFD 代替10個(gè)或更多的視頻服務(wù)器。兩個(gè)MFD 401能夠代替一組20個(gè)視頻服務(wù)器。MFD 401 與源服務(wù)器402通信,以便在MFD接收用于URL內(nèi)容(MFD沒(méi)有存儲(chǔ)的內(nèi)容)的請(qǐng)求或者在 MFD接受來(lái)自源服務(wù)器的新視頻內(nèi)容時(shí),獲取視頻內(nèi)容。MFD是視頻服務(wù)器的直接替換,而門(mén)戶服務(wù)器405、邊緣路由器407和分布式交換機(jī)406的基礎(chǔ)結(jié)構(gòu)仍然是相同的。圖5示出了 MFD在邊緣和/或起始位置的布局。在該示例中,虛線是用于傳統(tǒng)實(shí)現(xiàn)方式的數(shù)據(jù)路徑。MFD可以安裝在內(nèi)容擁有者的位置501、⑶N 502、506、內(nèi)容聚合器的位置504或者ISP處。MFD可以安裝在任意組合的位置處,從而向客戶端508更快更可靠地傳送內(nèi)容。例如,當(dāng)兩個(gè)MFD安裝在ISP 507處,這兩個(gè)MFD在ISP網(wǎng)絡(luò)中的某處進(jìn)行部署。 這可以是在集群的同一數(shù)據(jù)中心中,或者在同一 ISP接入網(wǎng)的不同數(shù)據(jù)中心中。MFD能夠彼此通信以便更加高效地傳送內(nèi)容,因?yàn)槿绻鸐FD能夠從同一網(wǎng)絡(luò)中檢索內(nèi)容,則會(huì)比從不同的和/或多個(gè)不同的網(wǎng)絡(luò),或者從源位置獲取內(nèi)容更加高效。如果大的內(nèi)容聚合器504部署全MFD(all-MFD)的專用傳送網(wǎng)絡(luò),則內(nèi)容聚合器更加有效,因?yàn)镸FD能夠使用專用協(xié)議,以便更加有效地進(jìn)行緩存未命中處理、預(yù)先分級(jí)、數(shù)據(jù)收集等。當(dāng)獲得全MFD的執(zhí)行方案時(shí),由于MFD的經(jīng)由最有效路由檢索內(nèi)容的能力,效率將會(huì)顯著增加。注意,術(shù)語(yǔ)“視頻內(nèi)容”已經(jīng)用于通篇的實(shí)施例描述。術(shù)語(yǔ)“視頻內(nèi)容”可以在通篇描述的實(shí)施例中由任何媒體類型代替,因?yàn)镸FD適于傳送任意類型的內(nèi)容文件,例如媒體(音頻、圖片等)、游戲、軟件、HTML、腳本等。4. 0執(zhí)行機(jī)制——硬件概述圖6是示出了可以在其上實(shí)現(xiàn)本發(fā)明的實(shí)施例的計(jì)算機(jī)系統(tǒng)600的框圖。計(jì)算機(jī)系統(tǒng)600包括總線602或用于傳遞信息的其他通信機(jī)構(gòu),以及與總線602連接的用于處理信息的處理器604。計(jì)算機(jī)系統(tǒng)600還包括主存儲(chǔ)器606,例如隨機(jī)存取存儲(chǔ)器(RAM)或其他動(dòng)態(tài)存儲(chǔ)設(shè)備,主存儲(chǔ)器606與總線602連接,用于存儲(chǔ)信息和將由處理器604執(zhí)行的指令。主存儲(chǔ)器606還可以用于存儲(chǔ)在將由處理器604執(zhí)行的指令執(zhí)行過(guò)程中的臨時(shí)變量或其他中間信息。計(jì)算機(jī)系統(tǒng)600進(jìn)一步包括與總線602連接的用于為處理器604存儲(chǔ)靜態(tài)信息和指令的只讀存儲(chǔ)器(ROM) 608或其他靜態(tài)存儲(chǔ)設(shè)備。提供存儲(chǔ)設(shè)備610(例如磁盤(pán)或光盤(pán))并且存儲(chǔ)設(shè)備610與總線602連接,用于存儲(chǔ)信息和指令。計(jì)算機(jī)系統(tǒng)600可以經(jīng)由總線602與顯示器612(例如陰極射線管(CRT))連接, 用于向計(jì)算機(jī)用戶顯示信息。包括字母數(shù)字鍵和其他鍵的輸入設(shè)備614與總線602連接, 用于與處理器604傳遞信息和命令選擇。另一類型的用戶輸入設(shè)備是光標(biāo)控制器616,例如鼠標(biāo)、跟蹤球或光標(biāo)方向鍵,用于向處理器604傳送方向信息和命令選擇并且用于控制光標(biāo)在顯示器612上的移動(dòng)。該輸入設(shè)備通常在兩個(gè)軸,第一軸(例如χ)和第二軸(例如 y)上具有兩個(gè)自由度,這允許設(shè)備在平面內(nèi)指定位置。本發(fā)明涉及計(jì)算機(jī)系統(tǒng)600的使用,用于執(zhí)行在此描述的技術(shù)。根據(jù)本發(fā)明的一個(gè)實(shí)施例,計(jì)算機(jī)系統(tǒng)600響應(yīng)于處理器604執(zhí)行包含在主存儲(chǔ)器606中的一個(gè)或多個(gè)指令的一個(gè)或多個(gè)序列,執(zhí)行這些技術(shù)。這樣的指令可以從另一計(jì)算機(jī)可讀介質(zhì)(例如存儲(chǔ)設(shè)備610)讀入主存儲(chǔ)器606。包含在主存儲(chǔ)器606中的指令的序列的執(zhí)行使得處理器604 執(zhí)行在此描述的處理步驟。在可選擇的實(shí)施例中,硬連線電路可以用于代替軟件指令或者與軟件指令一起使用,以實(shí)現(xiàn)本發(fā)明。由此,本發(fā)明的實(shí)施例不限于硬件電路和軟件的任意特定的結(jié)合。在此使用的術(shù)語(yǔ)“計(jì)算機(jī)可讀介質(zhì)”指代參與提供數(shù)據(jù)的任意介質(zhì),這些數(shù)據(jù)使得機(jī)器以特定方式操作。在使用計(jì)算機(jī)系統(tǒng)600實(shí)施的實(shí)施例中,包括多種計(jì)算機(jī)可讀介質(zhì), 例如向處理器604提供指令用于執(zhí)行。這樣的介質(zhì)可以采用很多形式,包括但不限于存儲(chǔ)介質(zhì)和傳輸介質(zhì)。存儲(chǔ)介質(zhì)包括非易失性介質(zhì)和易失性介質(zhì)。非易失性介質(zhì)包括,例如光盤(pán)或磁盤(pán),例如存儲(chǔ)設(shè)備610。易失性介質(zhì)包括動(dòng)態(tài)存儲(chǔ)器,例如主存儲(chǔ)器606。傳輸介質(zhì)包括同軸電纜、銅線和光纖,包括包含總線602的線。傳輸介質(zhì)還可以采取聲波或光波形式, 例如那些在聲波和紅外數(shù)據(jù)通信中產(chǎn)生的聲波或光波。所有這些介質(zhì)必須是有形的,以使介質(zhì)承載的指令能夠被將指令讀入機(jī)器的物理機(jī)制探測(cè)。計(jì)算機(jī)可讀介質(zhì)的常見(jiàn)形式包括,例如軟盤(pán)(floppy disk)、可折疊磁盤(pán) (flexible disk)、硬盤(pán)、磁帶或任意其他磁介質(zhì)、⑶-ROM、任意其他光學(xué)介質(zhì)、穿孔卡片、紙帶、任意其他帶有孔的形式的物理介質(zhì)、RAM、PROM、EPR0M、閃存EPROM或任意其他存儲(chǔ)芯片或卡帶、或者計(jì)算機(jī)可以讀取的任意其他介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的多種形式可以用于將一個(gè)或多個(gè)指令中的一個(gè)或多個(gè)序列傳送到處理器604用于執(zhí)行。例如,指令最初可以裝載在遠(yuǎn)程計(jì)算機(jī)的磁盤(pán)上。遠(yuǎn)程計(jì)算機(jī)可以將指令加載到其動(dòng)態(tài)存儲(chǔ)器中,并且使用調(diào)制解調(diào)器通過(guò)電話線發(fā)送指令。計(jì)算機(jī)系統(tǒng)600的本地調(diào)制解調(diào)器可以接收電話線上的數(shù)據(jù),并且使用紅外發(fā)射器將數(shù)據(jù)轉(zhuǎn)換為紅外信號(hào)。紅外探測(cè)器可以接收紅外信號(hào)中承載的數(shù)據(jù),并且適當(dāng)?shù)碾娐房梢詫?shù)據(jù)放置在總線602上??偩€602將數(shù)據(jù)傳送到主存儲(chǔ)器606,處理器604從主存儲(chǔ)器606重新獲取指令并且執(zhí)行指令。在處理器604執(zhí)行之前或之后,主存儲(chǔ)器606接收的指令可以可選地存儲(chǔ)在存儲(chǔ)設(shè)備610上。計(jì)算機(jī)系統(tǒng)600還包括與總線602連接的通信接口 618。通信接口 618提供與網(wǎng)絡(luò)鏈接620連接的雙向數(shù)據(jù)通信,網(wǎng)絡(luò)鏈接620與本地網(wǎng)絡(luò)622連接。例如,通信接口 618 可以是綜合業(yè)務(wù)數(shù)字網(wǎng)(ISDN)卡或調(diào)制解調(diào)器,以向?qū)?yīng)類型的電話線提供數(shù)據(jù)通信連接。作為另一示例,通信接口 618可以是局域網(wǎng)(LAN)卡,以向兼容的LAN提供數(shù)據(jù)通信連接。也可以實(shí)施無(wú)線鏈接。在任意這樣的實(shí)施中,通信接口 618發(fā)送并且接收電、電磁或光信號(hào),這些信號(hào)承載代表多種信息類型的數(shù)字?jǐn)?shù)據(jù)流。網(wǎng)絡(luò)鏈接620通常通過(guò)一個(gè)或多個(gè)網(wǎng)絡(luò)向其他數(shù)據(jù)設(shè)備提供數(shù)據(jù)通信。例如,網(wǎng)絡(luò)鏈接620可以通過(guò)本地網(wǎng)絡(luò)622,向主機(jī)6 或由因特網(wǎng)服務(wù)提供商(ISP)6^操作的數(shù)據(jù)設(shè)備提供連接。ISP 6 接著通過(guò)全球范圍的包交換數(shù)據(jù)通信網(wǎng)(現(xiàn)在通常稱為“因特網(wǎng)” 628)提供數(shù)據(jù)通信服務(wù)。本地網(wǎng)絡(luò)622和因特網(wǎng)擬8均使用承載數(shù)字?jǐn)?shù)據(jù)流的電、電磁或光信號(hào)。計(jì)算機(jī)系統(tǒng)600可以通過(guò)網(wǎng)絡(luò)、網(wǎng)絡(luò)鏈接620和通信接口 618發(fā)送消息并且接收數(shù)據(jù)(包括程序代碼)。在因特網(wǎng)的例子中,服務(wù)器630可以通過(guò)因特網(wǎng)628、ISP 626、本地網(wǎng)絡(luò)622和通信接口 618傳輸用于應(yīng)用程序的請(qǐng)求代碼。接收的代碼可以在其被接收時(shí)由處理器604執(zhí)行,并且/或者存儲(chǔ)在存儲(chǔ)設(shè)備610 或其他非易失性存儲(chǔ)器中用于以后執(zhí)行。5. 0 示仿Ij在實(shí)施例中,裝置包括媒體傳送請(qǐng)求接收器,所述媒體傳送請(qǐng)求接收器從客戶端系統(tǒng)接收對(duì)于媒體內(nèi)容的請(qǐng)求;流率子系統(tǒng),所述流率子系統(tǒng)計(jì)算對(duì)于每個(gè)出站的媒體流的最大帶寬和目標(biāo)流率;傳送子系統(tǒng),對(duì)于每個(gè)出站的媒體流,所述傳送子系統(tǒng)將所請(qǐng)求的媒體內(nèi)容的至少一部分傳送給客戶端系統(tǒng);媒體傳送調(diào)度子系統(tǒng),所述媒體傳送調(diào)度子系統(tǒng)確定所述傳送子系統(tǒng)何時(shí)傳送所請(qǐng)求的媒體內(nèi)容的至少一部分,所述媒體調(diào)度子系統(tǒng)動(dòng)態(tài)調(diào)節(jié)對(duì)于每個(gè)出站的媒體流的流率,以便滿足對(duì)于每個(gè)出站的媒體流的目標(biāo)流率,如果接受了附加的媒體內(nèi)容請(qǐng)求,則當(dāng)所述媒體傳送調(diào)度子系統(tǒng)探測(cè)到?jīng)]有獲得對(duì)于媒體流的目標(biāo)流率時(shí),所述媒體傳送調(diào)度子系統(tǒng)指示媒體傳送請(qǐng)求子系統(tǒng)拒絕到來(lái)的媒體請(qǐng)求。在實(shí)施例中,裝置進(jìn)一步包括,其中所述媒體傳送調(diào)度子系統(tǒng)指示所述傳送子系統(tǒng)傳送較低質(zhì)量的媒體內(nèi)容的至少一部分,以便滿足對(duì)于特定媒體流的目標(biāo)流率。在實(shí)施例中,裝置進(jìn)一步包括,其中所述媒體傳送調(diào)度子系統(tǒng)指示所述傳送子系統(tǒng)傳送較高質(zhì)量的媒體內(nèi)容的至少一部分,以便滿足對(duì)于特定媒體流的目標(biāo)流率。
在實(shí)施例中,裝置進(jìn)一步包括,其中當(dāng)已經(jīng)錯(cuò)過(guò)對(duì)于媒體流的下一部分媒體內(nèi)容的傳送的最終期限時(shí),所述媒體傳送調(diào)度子系統(tǒng)探測(cè)到尚未滿足對(duì)于媒體流的目標(biāo)流率。在實(shí)施例中,裝置進(jìn)一步包括多個(gè)存儲(chǔ)設(shè)備,所述多個(gè)存儲(chǔ)設(shè)備的至少一部分具有不同的性能特征;媒體緩存子系統(tǒng),至少基于對(duì)于與媒體內(nèi)容相關(guān)的媒體流的目標(biāo)流率和特定的存儲(chǔ)設(shè)備的性能特征,所述媒體緩存子系統(tǒng)將媒體內(nèi)容的至少一部分存儲(chǔ)在特定的存儲(chǔ)設(shè)備中,所述媒體緩存子系統(tǒng)指示所述傳送子系統(tǒng)從所述特定的存儲(chǔ)設(shè)備傳送媒體內(nèi)容的存儲(chǔ)部分。在實(shí)施例中,裝置進(jìn)一步包括,其中所述流率子系統(tǒng)至少使用與媒體流相關(guān)的客戶端系統(tǒng)的測(cè)量的帶寬速度,確定對(duì)于媒體流的目標(biāo)流率。在實(shí)施例中,裝置進(jìn)一步包括,其中所述流率子系統(tǒng)至少使用與媒體流相關(guān)的客戶端系統(tǒng)的帶寬速度的動(dòng)態(tài)測(cè)量,動(dòng)態(tài)確定對(duì)于媒體流的目標(biāo)流率。在實(shí)施例中,方法包括以下步驟,或者載有指令的一個(gè)或多個(gè)序列的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中由一個(gè)或多個(gè)處理器對(duì)指令的一個(gè)或多個(gè)序列進(jìn)行執(zhí)行,使得所述一個(gè)或多個(gè)處理器執(zhí)行以下步驟從客戶端系統(tǒng)接收對(duì)于媒體內(nèi)容的請(qǐng)求;計(jì)算對(duì)于每個(gè)出站的媒體流的最大帶寬和目標(biāo)流率;對(duì)于每個(gè)出站的媒體流,將所請(qǐng)求的媒體內(nèi)容的至少一部分傳送給客戶端系統(tǒng);確定傳送步驟何時(shí)傳送所請(qǐng)求的媒體內(nèi)容的至少一部分;動(dòng)態(tài)調(diào)節(jié)對(duì)于每個(gè)出站的媒體流的流率,以便滿足對(duì)于每個(gè)出站的媒體流的目標(biāo)流率;如果接受了附加的媒體內(nèi)容請(qǐng)求,則當(dāng)探測(cè)到?jīng)]有獲得對(duì)于媒體流的目標(biāo)流率時(shí),拒絕到來(lái)的媒體請(qǐng)求。在實(shí)施例中,方法或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)進(jìn)一步包括,其中傳送步驟傳送較低質(zhì)量的媒體內(nèi)容的至少一部分,以便滿足對(duì)于特定媒體流的目標(biāo)流率。在實(shí)施例中,方法或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)進(jìn)一步包括,其中傳送步驟傳送較高質(zhì)量的媒體內(nèi)容的至少一部分,以便滿足對(duì)于特定媒體流的目標(biāo)流率。在實(shí)施例中,方法或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)進(jìn)一步包括,當(dāng)已經(jīng)錯(cuò)過(guò)對(duì)于媒體流的下一部分媒體內(nèi)容的傳送的最終期限時(shí),探測(cè)到尚未滿足對(duì)于媒體流的目標(biāo)流率。在實(shí)施例中,方法或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)進(jìn)一步包括,至少基于對(duì)于與媒體內(nèi)容相關(guān)的媒體流的目標(biāo)流率和特定的存儲(chǔ)設(shè)備的性能特征,將媒體內(nèi)容的至少一部分存儲(chǔ)在多個(gè)存儲(chǔ)設(shè)備中的特定的存儲(chǔ)設(shè)備中,所述多個(gè)存儲(chǔ)設(shè)備的至少一部分具有不同的性能特征;其中傳送步驟從所述特定的存儲(chǔ)設(shè)備傳送媒體內(nèi)容的存儲(chǔ)部分。在實(shí)施例中,方法或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)進(jìn)一步包括,至少使用與媒體流相關(guān)的客戶端系統(tǒng)的測(cè)量的帶寬速度,確定對(duì)于媒體流的目標(biāo)流率。在實(shí)施例中,方法或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)進(jìn)一步包括,至少使用與媒體流相關(guān)的客戶端系統(tǒng)的帶寬速度的動(dòng)態(tài)測(cè)量,動(dòng)態(tài)確定對(duì)于媒體流的目標(biāo)流率。在實(shí)施例中,裝置包括多個(gè)存儲(chǔ)設(shè)備,所述多個(gè)存儲(chǔ)設(shè)備的至少一部分具有不同的性能特征;媒體緩存子系統(tǒng),至少基于特定的存儲(chǔ)設(shè)備的性能特征,所述媒體緩存子系統(tǒng)將媒體內(nèi)容的至少一部分存儲(chǔ)在特定的存儲(chǔ)設(shè)備中,基于所述多個(gè)存儲(chǔ)設(shè)備中的每個(gè)存儲(chǔ)設(shè)備的帶寬,所述媒體緩存子系統(tǒng)以劃分等級(jí)的方式將所述多個(gè)存儲(chǔ)設(shè)備排序;存儲(chǔ)優(yōu)化子系統(tǒng),通過(guò)基于存儲(chǔ)設(shè)備的使用測(cè)量而動(dòng)態(tài)地將存儲(chǔ)在每個(gè)存儲(chǔ)設(shè)備上的媒體內(nèi)容部分進(jìn)行重新定位,所述存儲(chǔ)優(yōu)化子系統(tǒng)對(duì)來(lái)自所述多個(gè)存儲(chǔ)設(shè)備的每個(gè)存儲(chǔ)設(shè)備的帶寬進(jìn)行優(yōu)化。在實(shí)施例中,裝置進(jìn)一步包括,其中附加地基于對(duì)于與媒體內(nèi)容相關(guān)的媒體流的目標(biāo)流率,所述媒體緩存子系統(tǒng)將媒體內(nèi)容的至少一部分存儲(chǔ)在特定的存儲(chǔ)設(shè)備中。在實(shí)施例中,裝置進(jìn)一步包括,其中基于媒體內(nèi)容的一部分的流行度提高,所述存儲(chǔ)優(yōu)化子系統(tǒng)將媒體內(nèi)容的該部分從第一存儲(chǔ)設(shè)備重新定位到第二存儲(chǔ)設(shè)備,所述第二存儲(chǔ)設(shè)備具有比所述第一存儲(chǔ)設(shè)備更好的性能特征。在實(shí)施例中,裝置進(jìn)一步包括,其中基于媒體內(nèi)容的一部分的流行度降低,所述存儲(chǔ)優(yōu)化子系統(tǒng)將媒體內(nèi)容的該部分從第一存儲(chǔ)設(shè)備重新定位到第二存儲(chǔ)設(shè)備,所述第二存儲(chǔ)設(shè)備具有比所述第一存儲(chǔ)設(shè)備更差的性能特征。在實(shí)施例中,裝置進(jìn)一步包括,其中當(dāng)媒體內(nèi)容的多個(gè)部分適合所述特定的存儲(chǔ)設(shè)備上特定大小的存儲(chǔ)塊時(shí),所述媒體緩存子系統(tǒng)存儲(chǔ)媒體內(nèi)容的多個(gè)部分,所述媒體內(nèi)容的多個(gè)部分包括特定的存儲(chǔ)設(shè)備中的媒體內(nèi)容的至少一部分。在實(shí)施例中,方法包括以下步驟,或者載有指令的一個(gè)或多個(gè)序列的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中由一個(gè)或多個(gè)處理器對(duì)指令的一個(gè)或多個(gè)序列進(jìn)行執(zhí)行,使得所述一個(gè)或多個(gè)處理器執(zhí)行以下步驟至少基于特定的存儲(chǔ)設(shè)備的性能特征,將媒體內(nèi)容的至少一部分存儲(chǔ)在多個(gè)存儲(chǔ)設(shè)備中的特定的存儲(chǔ)設(shè)備中,所述多個(gè)存儲(chǔ)設(shè)備的至少一部分具有不同的性能特征;基于所述多個(gè)存儲(chǔ)設(shè)備中的每個(gè)存儲(chǔ)設(shè)備的帶寬,以劃分等級(jí)的方式將所述多個(gè)存儲(chǔ)設(shè)備排序;通過(guò)基于存儲(chǔ)設(shè)備的使用測(cè)量而動(dòng)態(tài)地將存儲(chǔ)在每個(gè)存儲(chǔ)設(shè)備上的媒體內(nèi)容部分進(jìn)行重新定位,對(duì)來(lái)自所述多個(gè)存儲(chǔ)設(shè)備的每個(gè)存儲(chǔ)設(shè)備的帶寬進(jìn)行優(yōu)化。在實(shí)施例中,方法或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)進(jìn)一步包括,其中附加地基于對(duì)于與媒體內(nèi)容相關(guān)的媒體流的目標(biāo)流率,存儲(chǔ)步驟將媒體內(nèi)容的至少一部分存儲(chǔ)在特定的存儲(chǔ)設(shè)備中。在實(shí)施例中,方法或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)進(jìn)一步包括,基于媒體內(nèi)容的一部分的流行度提高,將媒體內(nèi)容的該部分從第一存儲(chǔ)設(shè)備重新定位到第二存儲(chǔ)設(shè)備,所述第二存儲(chǔ)設(shè)備具有比所述第一存儲(chǔ)設(shè)備更好的性能特征。在實(shí)施例中,方法或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)進(jìn)一步包括,基于媒體內(nèi)容的一部分的流行度降低,將媒體內(nèi)容的該部分從第一存儲(chǔ)設(shè)備重新定位到第二存儲(chǔ)設(shè)備,所述第二存儲(chǔ)設(shè)備具有比所述第一存儲(chǔ)設(shè)備更差的性能特征。在實(shí)施例中,方法或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)進(jìn)一步包括,當(dāng)媒體內(nèi)容的多個(gè)部分適合所述特定的存儲(chǔ)設(shè)備上特定大小的存儲(chǔ)塊時(shí),存儲(chǔ)媒體內(nèi)容的多個(gè)部分,所述媒體內(nèi)容的多個(gè)部分包括特定的存儲(chǔ)設(shè)備中的媒體內(nèi)容的至少一部分。6. 0擴(kuò)展和選擇在前述說(shuō)明書(shū)中,已經(jīng)參照多個(gè)具體細(xì)節(jié)(這些具體細(xì)節(jié)可以隨著實(shí)現(xiàn)方式而改變)描述了本發(fā)明的實(shí)施例。由此,說(shuō)明書(shū)和附圖被視為示例性的而不起限制作用。
權(quán)利要求
1.一種用于經(jīng)過(guò)網(wǎng)絡(luò)同時(shí)向多個(gè)客戶端系統(tǒng)分配媒體的裝置,包括媒體傳送請(qǐng)求接收器,所述媒體傳送請(qǐng)求接收器從客戶端系統(tǒng)接收對(duì)于媒體內(nèi)容的請(qǐng)求;流率子系統(tǒng),所述流率子系統(tǒng)計(jì)算對(duì)于每個(gè)出站的媒體流的最大帶寬和目標(biāo)流率; 傳送子系統(tǒng),對(duì)于每個(gè)出站的媒體流,所述傳送子系統(tǒng)將所請(qǐng)求的媒體內(nèi)容的至少一部分傳送給客戶端系統(tǒng);媒體傳送調(diào)度子系統(tǒng),所述媒體傳送調(diào)度子系統(tǒng)確定所述傳送子系統(tǒng)何時(shí)傳送所請(qǐng)求的媒體內(nèi)容的至少一部分,所述媒體調(diào)度子系統(tǒng)動(dòng)態(tài)調(diào)節(jié)對(duì)于每個(gè)出站的媒體流的流率, 以便滿足對(duì)于每個(gè)出站的媒體流的目標(biāo)流率,如果接受了附加的媒體內(nèi)容請(qǐng)求,則當(dāng)所述媒體傳送調(diào)度子系統(tǒng)探測(cè)到?jīng)]有獲得對(duì)于媒體流的目標(biāo)流率時(shí),所述媒體傳送調(diào)度子系統(tǒng)指示媒體傳送請(qǐng)求子系統(tǒng)拒絕到來(lái)的媒體請(qǐng)求。
2.根據(jù)權(quán)利要求1所述的裝置,其中所述媒體傳送調(diào)度子系統(tǒng)指示所述傳送子系統(tǒng)傳送較低質(zhì)量的媒體內(nèi)容的至少一部分,以便滿足對(duì)于特定媒體流的目標(biāo)流率。
3.根據(jù)權(quán)利要求1所述的裝置,其中所述媒體傳送調(diào)度子系統(tǒng)指示所述傳送子系統(tǒng)傳送較高質(zhì)量的媒體內(nèi)容的至少一部分,以便滿足對(duì)于特定媒體流的目標(biāo)流率。
4.根據(jù)權(quán)利要求1所述的裝置,其中當(dāng)已經(jīng)錯(cuò)過(guò)對(duì)于媒體流的下一部分媒體內(nèi)容的傳送的最終期限時(shí),所述媒體傳送調(diào)度子系統(tǒng)探測(cè)到尚未滿足對(duì)于媒體流的目標(biāo)流率。
5.根據(jù)權(quán)利要求1所述的裝置,進(jìn)一步包括多個(gè)存儲(chǔ)設(shè)備,所述多個(gè)存儲(chǔ)設(shè)備的至少一部分具有不同的性能特征; 媒體緩存子系統(tǒng),至少基于對(duì)于與媒體內(nèi)容相關(guān)的媒體流的目標(biāo)流率和特定的存儲(chǔ)設(shè)備的性能特征,所述媒體緩存子系統(tǒng)將媒體內(nèi)容的至少一部分存儲(chǔ)在特定的存儲(chǔ)設(shè)備中, 所述媒體緩存子系統(tǒng)指示所述傳送子系統(tǒng)從所述特定的存儲(chǔ)設(shè)備傳送媒體內(nèi)容的存儲(chǔ)部分。
6.根據(jù)權(quán)利要求1所述的裝置,其中所述流率子系統(tǒng)至少使用與媒體流相關(guān)的客戶端系統(tǒng)的測(cè)量的帶寬速度,確定對(duì)于媒體流的目標(biāo)流率。
7.根據(jù)權(quán)利要求1所述的裝置,其中所述流率子系統(tǒng)至少使用與媒體流相關(guān)的客戶端系統(tǒng)的帶寬速度的動(dòng)態(tài)測(cè)量,動(dòng)態(tài)確定對(duì)于媒體流的目標(biāo)流率。
8.一種用于經(jīng)過(guò)網(wǎng)絡(luò)同時(shí)向多個(gè)客戶端系統(tǒng)分配媒體的方法,包括 從客戶端系統(tǒng)接收對(duì)于媒體內(nèi)容的請(qǐng)求;計(jì)算對(duì)于每個(gè)出站的媒體流的最大帶寬和目標(biāo)流率;對(duì)于每個(gè)出站的媒體流,將所請(qǐng)求的媒體內(nèi)容的至少一部分傳送給客戶端系統(tǒng); 確定傳送步驟何時(shí)傳送所請(qǐng)求的媒體內(nèi)容的至少一部分;動(dòng)態(tài)調(diào)節(jié)對(duì)于每個(gè)出站的媒體流的流率,以便滿足對(duì)于每個(gè)出站的媒體流的目標(biāo)流率;如果接受了附加的媒體內(nèi)容請(qǐng)求,則當(dāng)探測(cè)到?jīng)]有獲得對(duì)于媒體流的目標(biāo)流率時(shí),拒絕到來(lái)的媒體請(qǐng)求。
9.根據(jù)權(quán)利要求8所述的方法,其中傳送步驟傳送較低質(zhì)量的媒體內(nèi)容的至少一部分,以便滿足對(duì)于特定媒體流的目標(biāo)流率。
10.根據(jù)權(quán)利要求8所述的方法,其中傳送步驟傳送較高質(zhì)量的媒體內(nèi)容的至少一部分,以便滿足對(duì)于特定媒體流的目標(biāo)流率。
11.根據(jù)權(quán)利要求8所述的方法,進(jìn)一步包括當(dāng)已經(jīng)錯(cuò)過(guò)對(duì)于媒體流的下一部分媒體內(nèi)容的傳送的最終期限時(shí),探測(cè)到尚未滿足對(duì)于媒體流的目標(biāo)流率。
12.根據(jù)權(quán)利要求8所述的方法,進(jìn)一步包括至少基于對(duì)于與媒體內(nèi)容相關(guān)的媒體流的目標(biāo)流率和特定的存儲(chǔ)設(shè)備的性能特征,將媒體內(nèi)容的至少一部分存儲(chǔ)在多個(gè)存儲(chǔ)設(shè)備中的特定的存儲(chǔ)設(shè)備中,所述多個(gè)存儲(chǔ)設(shè)備的至少一部分具有不同的性能特征;其中傳送步驟從所述特定的存儲(chǔ)設(shè)備傳送媒體內(nèi)容的存儲(chǔ)部分。
13.根據(jù)權(quán)利要求8所述的方法,進(jìn)一步包括至少使用與媒體流相關(guān)的客戶端系統(tǒng)的測(cè)量的帶寬速度,確定對(duì)于媒體流的目標(biāo)流率。
14.根據(jù)權(quán)利要求8所述的方法,進(jìn)一步包括至少使用與媒體流相關(guān)的客戶端系統(tǒng)的帶寬速度的動(dòng)態(tài)測(cè)量,動(dòng)態(tài)確定對(duì)于媒體流的目標(biāo)流率。
15.一種載有指令的一個(gè)或多個(gè)序列、用于經(jīng)過(guò)網(wǎng)絡(luò)同時(shí)向多個(gè)客戶端系統(tǒng)分配媒體的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中由一個(gè)或多個(gè)處理器對(duì)指令的一個(gè)或多個(gè)序列進(jìn)行執(zhí)行,使得所述一個(gè)或多個(gè)處理器執(zhí)行以下步驟從客戶端系統(tǒng)接收對(duì)于媒體內(nèi)容的請(qǐng)求; 計(jì)算對(duì)于每個(gè)出站的媒體流的最大帶寬和目標(biāo)流率;對(duì)于每個(gè)出站的媒體流,將所請(qǐng)求的媒體內(nèi)容的至少一部分傳送給客戶端系統(tǒng); 確定傳送步驟何時(shí)傳送所請(qǐng)求的媒體內(nèi)容的至少一部分;動(dòng)態(tài)調(diào)節(jié)對(duì)于每個(gè)出站的媒體流的流率,以便滿足對(duì)于每個(gè)出站的媒體流的目標(biāo)流率;如果接受了附加的媒體內(nèi)容請(qǐng)求,則當(dāng)探測(cè)到?jīng)]有獲得對(duì)于媒體流的目標(biāo)流率時(shí),拒絕到來(lái)的媒體請(qǐng)求。
16.根據(jù)權(quán)利要求15所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中傳送步驟傳送較低質(zhì)量的媒體內(nèi)容的至少一部分,以便滿足對(duì)于特定媒體流的目標(biāo)流率。
17.根據(jù)權(quán)利要求15所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中傳送步驟傳送較高質(zhì)量的媒體內(nèi)容的至少一部分,以便滿足對(duì)于特定媒體流的目標(biāo)流率。
18.根據(jù)權(quán)利要求15所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),進(jìn)一步包括當(dāng)已經(jīng)錯(cuò)過(guò)對(duì)于媒體流的下一部分媒體內(nèi)容的傳送的最終期限時(shí),探測(cè)到尚未滿足對(duì)于媒體流的目標(biāo)流率。
19.根據(jù)權(quán)利要求15所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),進(jìn)一步包括至少基于對(duì)于與媒體內(nèi)容相關(guān)的媒體流的目標(biāo)流率和特定的存儲(chǔ)設(shè)備的性能特征,將媒體內(nèi)容的至少一部分存儲(chǔ)在多個(gè)存儲(chǔ)設(shè)備中的特定的存儲(chǔ)設(shè)備中,所述多個(gè)存儲(chǔ)設(shè)備的至少一部分具有不同的性能特征;其中傳送步驟從所述特定的存儲(chǔ)設(shè)備傳送媒體內(nèi)容的存儲(chǔ)部分。
20.根據(jù)權(quán)利要求15所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),進(jìn)一步包括至少使用與媒體流相關(guān)的客戶端系統(tǒng)的測(cè)量的帶寬速度,確定對(duì)于媒體流的目標(biāo)流率。
21.根據(jù)權(quán)利要求15所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),進(jìn)一步包括至少使用與媒體流相關(guān)的客戶端系統(tǒng)的帶寬速度的動(dòng)態(tài)測(cè)量,動(dòng)態(tài)確定對(duì)于媒體流的目標(biāo)流率。
22.一種用于經(jīng)過(guò)網(wǎng)絡(luò)同時(shí)向多個(gè)客戶端系統(tǒng)分配媒體的裝置,包括多個(gè)存儲(chǔ)設(shè)備,所述多個(gè)存儲(chǔ)設(shè)備的至少一部分具有不同的性能特征;媒體緩存子系統(tǒng),至少基于特定的存儲(chǔ)設(shè)備的性能特征,所述媒體緩存子系統(tǒng)將媒體內(nèi)容的至少一部分存儲(chǔ)在特定的存儲(chǔ)設(shè)備中,基于所述多個(gè)存儲(chǔ)設(shè)備中的每個(gè)存儲(chǔ)設(shè)備的帶寬,所述媒體緩存子系統(tǒng)以劃分等級(jí)的方式將所述多個(gè)存儲(chǔ)設(shè)備排序;存儲(chǔ)優(yōu)化子系統(tǒng),通過(guò)基于存儲(chǔ)設(shè)備的使用測(cè)量而動(dòng)態(tài)地將存儲(chǔ)在每個(gè)存儲(chǔ)設(shè)備上的媒體內(nèi)容部分進(jìn)行重新定位,所述存儲(chǔ)優(yōu)化子系統(tǒng)對(duì)來(lái)自所述多個(gè)存儲(chǔ)設(shè)備的每個(gè)存儲(chǔ)設(shè)備的帶寬進(jìn)行優(yōu)化。
23.根據(jù)權(quán)利要求22所述的裝置,其中附加地基于對(duì)于與媒體內(nèi)容相關(guān)的媒體流的目標(biāo)流率,所述媒體緩存子系統(tǒng)將媒體內(nèi)容的至少一部分存儲(chǔ)在特定的存儲(chǔ)設(shè)備中。
24.根據(jù)權(quán)利要求22所述的裝置,其中基于媒體內(nèi)容的一部分的流行度提高,所述存儲(chǔ)優(yōu)化子系統(tǒng)將媒體內(nèi)容的該部分從第一存儲(chǔ)設(shè)備重新定位到第二存儲(chǔ)設(shè)備,所述第二存儲(chǔ)設(shè)備具有比所述第一存儲(chǔ)設(shè)備更好的性能特征。
25.根據(jù)權(quán)利要求22所述的裝置,其中基于媒體內(nèi)容的一部分的流行度降低,所述存儲(chǔ)優(yōu)化子系統(tǒng)將媒體內(nèi)容的該部分從第一存儲(chǔ)設(shè)備重新定位到第二存儲(chǔ)設(shè)備,所述第二存儲(chǔ)設(shè)備具有比所述第一存儲(chǔ)設(shè)備更差的性能特征。
26.根據(jù)權(quán)利要求22所述的裝置,其中當(dāng)媒體內(nèi)容的多個(gè)部分適合所述特定的存儲(chǔ)設(shè)備上特定大小的存儲(chǔ)塊時(shí),所述媒體緩存子系統(tǒng)存儲(chǔ)媒體內(nèi)容的多個(gè)部分,所述媒體內(nèi)容的多個(gè)部分包括特定的存儲(chǔ)設(shè)備中的媒體內(nèi)容的至少一部分。
27.一種用于經(jīng)過(guò)網(wǎng)絡(luò)同時(shí)向多個(gè)客戶端系統(tǒng)分配媒體的方法,包括至少基于特定的存儲(chǔ)設(shè)備的性能特征,將媒體內(nèi)容的至少一部分存儲(chǔ)在多個(gè)存儲(chǔ)設(shè)備中的特定的存儲(chǔ)設(shè)備中,所述多個(gè)存儲(chǔ)設(shè)備的至少一部分具有不同的性能特征;基于所述多個(gè)存儲(chǔ)設(shè)備中的每個(gè)存儲(chǔ)設(shè)備的帶寬,以劃分等級(jí)的方式將所述多個(gè)存儲(chǔ)設(shè)備排序;通過(guò)基于存儲(chǔ)設(shè)備的使用測(cè)量而動(dòng)態(tài)地將存儲(chǔ)在每個(gè)存儲(chǔ)設(shè)備上的媒體內(nèi)容部分進(jìn)行重新定位,對(duì)來(lái)自所述多個(gè)存儲(chǔ)設(shè)備的每個(gè)存儲(chǔ)設(shè)備的帶寬進(jìn)行優(yōu)化。
28.根據(jù)權(quán)利要求27所述的方法,其中附加地基于對(duì)于與媒體內(nèi)容相關(guān)的媒體流的目標(biāo)流率,存儲(chǔ)步驟將媒體內(nèi)容的至少一部分存儲(chǔ)在特定的存儲(chǔ)設(shè)備中。
29.根據(jù)權(quán)利要求27所述的方法,進(jìn)一步包括基于媒體內(nèi)容的一部分的流行度提高,將媒體內(nèi)容的該部分從第一存儲(chǔ)設(shè)備重新定位到第二存儲(chǔ)設(shè)備,所述第二存儲(chǔ)設(shè)備具有比所述第一存儲(chǔ)設(shè)備更好的性能特征。
30.根據(jù)權(quán)利要求27所述的方法,進(jìn)一步包括基于媒體內(nèi)容的一部分的流行度降低,將媒體內(nèi)容的該部分從第一存儲(chǔ)設(shè)備重新定位到第二存儲(chǔ)設(shè)備,所述第二存儲(chǔ)設(shè)備具有比所述第一存儲(chǔ)設(shè)備更差的性能特征。
31.根據(jù)權(quán)利要求27所述的方法,進(jìn)一步包括當(dāng)媒體內(nèi)容的多個(gè)部分適合所述特定的存儲(chǔ)設(shè)備上特定大小的存儲(chǔ)塊時(shí),存儲(chǔ)媒體內(nèi)容的多個(gè)部分,所述媒體內(nèi)容的多個(gè)部分包括特定的存儲(chǔ)設(shè)備中的媒體內(nèi)容的至少一部分。
32.—種載有指令的一個(gè)或多個(gè)序列、用于經(jīng)過(guò)網(wǎng)絡(luò)同時(shí)向多個(gè)客戶端系統(tǒng)分配媒體的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中由一個(gè)或多個(gè)處理器對(duì)指令的一個(gè)或多個(gè)序列進(jìn)行執(zhí)行,使得所述一個(gè)或多個(gè)處理器執(zhí)行以下步驟至少基于特定的存儲(chǔ)設(shè)備的性能特征,將媒體內(nèi)容的至少一部分存儲(chǔ)在多個(gè)存儲(chǔ)設(shè)備中的特定的存儲(chǔ)設(shè)備中,所述多個(gè)存儲(chǔ)設(shè)備的至少一部分具有不同的性能特征;基于所述多個(gè)存儲(chǔ)設(shè)備中的每個(gè)存儲(chǔ)設(shè)備的帶寬,以劃分等級(jí)的方式將所述多個(gè)存儲(chǔ)設(shè)備排序;通過(guò)基于存儲(chǔ)設(shè)備的使用測(cè)量而動(dòng)態(tài)地將存儲(chǔ)在每個(gè)存儲(chǔ)設(shè)備上的媒體內(nèi)容部分進(jìn)行重新定位,對(duì)來(lái)自所述多個(gè)存儲(chǔ)設(shè)備的每個(gè)存儲(chǔ)設(shè)備的帶寬進(jìn)行優(yōu)化。
33.根據(jù)權(quán)利要求32所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中附加地基于對(duì)于與媒體內(nèi)容相關(guān)的媒體流的目標(biāo)流率,存儲(chǔ)步驟將媒體內(nèi)容的至少一部分存儲(chǔ)在特定的存儲(chǔ)設(shè)備中。
34.根據(jù)權(quán)利要求32所述的方法,進(jìn)一步包括基于媒體內(nèi)容的一部分的流行度提高,將媒體內(nèi)容的該部分從第一存儲(chǔ)設(shè)備重新定位到第二存儲(chǔ)設(shè)備,所述第二存儲(chǔ)設(shè)備具有比所述第一存儲(chǔ)設(shè)備更好的性能特征。
35.根據(jù)權(quán)利要求32所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),進(jìn)一步包括基于媒體內(nèi)容的一部分的流行度降低,將媒體內(nèi)容的該部分從第一存儲(chǔ)設(shè)備重新定位到第二存儲(chǔ)設(shè)備,所述第二存儲(chǔ)設(shè)備具有比所述第一存儲(chǔ)設(shè)備更差的性能特征。
36.根據(jù)權(quán)利要求32所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),進(jìn)一步包括當(dāng)媒體內(nèi)容的多個(gè)部分適合所述特定的存儲(chǔ)設(shè)備上特定大小的存儲(chǔ)塊時(shí),存儲(chǔ)媒體內(nèi)容的多個(gè)部分,所述媒體內(nèi)容的多個(gè)部分包括特定的存儲(chǔ)設(shè)備中的媒體內(nèi)容的至少一部分。
全文摘要
本發(fā)明描述了將媒體內(nèi)容存儲(chǔ)在多個(gè)存儲(chǔ)設(shè)備中的方法和裝置,至少一部分存儲(chǔ)設(shè)備具有不同的性能特征。系統(tǒng)能夠?qū)⒚襟w傳送給大量客戶端,而為每個(gè)客戶端保持高水平的觀看體驗(yàn),這是通過(guò)使用客戶端最后一英里的比特率變化,自動(dòng)調(diào)整正在傳送給客戶端的媒體的比特率而實(shí)現(xiàn)的。該系統(tǒng)向客戶端提供沒(méi)有緩沖停頓的流暢的視頻觀看。客戶端不需要與系統(tǒng)通信的定制的視頻內(nèi)容播放器。
文檔編號(hào)H04L12/26GK102282804SQ200980154744
公開(kāi)日2011年12月14日 申請(qǐng)日期2009年11月24日 優(yōu)先權(quán)日2008年11月24日
發(fā)明者庫(kù)馬爾·納拉亞南, 普拉巴卡·孫達(dá)拉堅(jiān), 穆罕默德·祖貝爾·維沙阮, 維克拉姆·文卡塔拉格哈凡, 賈斯珀·科利, 邁克爾·西元, 馬克思·何 申請(qǐng)人:瞻博網(wǎng)絡(luò)公司