專利名稱:一種提高流媒體服務器并發(fā)媒體流數量的方法
技術領域:
本發(fā)明屬于計算機存儲系統(tǒng)媒體文件存取方法,具體涉及一種提高 流媒體服務器并發(fā)媒體流數量的方法。
背景技術:
流媒體服務是存儲系統(tǒng)的一個典型應用,存儲系繞所能支持的最大 并發(fā)媒體流數量是存儲系統(tǒng)提供流媒體服務時衡量其性能好壞的一個重 要標準。分布式存儲系統(tǒng)由多個流媒體服務器組成,單個流媒體服務器 所能支持的并發(fā)媒體流數量直接決定了整個分布式存儲系統(tǒng)所能支持的 并發(fā)媒體流數量。因此,提高單個流媒體服務器所能支持的并發(fā)媒體流 數量是提高整個分布式存儲系統(tǒng)所能支持的并發(fā)媒體流數量的關鍵。
依據媒體文件被訪問的順序性,媒體文件一般被順序地置于流媒體 服務器上。 一次媒體訪問所需的數據一般被置于一個流媒體服務器上。 提供流媒體服務的分布式存儲系統(tǒng)由客戶端、元數據服務器和流媒體服 務器三部分組成,這三方的通訊過程可以描述為客戶端向元數據服務 器發(fā)送媒體流建立申請,元數據服務器返回欲建立的媒體流所對應的流 媒體服務器,客戶端與流媒體服務器之間建立媒體流連接??蛻舳伺c流 媒體服務器之間的媒體流具有動態(tài)性,具體表現在客戶端可以隨時申請 與流媒體服務器建立媒體流'連接,也可以隨時終止與流媒體服務器已建 立的媒體流連接。當客戶端與流媒體服務器建立媒體流連接時,流媒體 服務器分配一定的磁盤帶寬給特定的媒體流,以保證媒體流的服務質量;
反之,當客戶端終止與流媒體服務器已建立的媒體流連接時,流媒體服 務器立即收回已分配給該媒體流的磁盤帶寬?;诖颂攸c,流媒體服務 器的磁盤帶寬分配以媒體流為單位,而不是以某一個具體媒體文件或某一次具體的媒體數據請求為單位。
客戶端與流媒體服務器之間建立的各個媒體流均有其服務質量需 求。普通的數據讀寫不允許有任何的數據損失,與其不同的是,流媒體 服務允許在滿足一定約束條件下的數據丟失。每個媒體流均有其特定的 服務質量需求,此特定的服務質量需求對應著特定的數據丟失約束條件。
依據媒體文件的編解碼特征以及媒體流的服務質量需求, 一般以(m,k)約 束來表示每個媒體流特定服務質量需求下的數據丟失約束條件;如果將 媒體文件分割為N個大小相同的數據單元,(m,k)約束的含義為任意k 個連續(xù)的數據單元中,至少有m個數據單元能夠在特定的時間點之前由 流媒體服務器傳輸到客戶端;表達式(m,k)中,m《k; m<k時,表示某 媒體流允許部分數據未在特定的時間點之前由流媒體服務器傳輸到客戶 端;m二k時,表示某媒體流要求任何數據都必須在特定的時間點之前由 流媒體服務器傳輸到客戶端。(m,k)是針對特定媒體流的最壞數據丟失約 束條件,也是針對具有特定編解碼特征的具體的媒體文件的最壞數據丟 失約束條件。
現有的方法均利用緩存(Cache)替換算法的優(yōu)化來提高流媒體服務 器的并發(fā)媒體流數量。Renu Tewari等人分析了基于一個對象的兩個視 頻流的時間間隔,通過時間間隔的大小判斷是否將對象緩存以供其他流 讀取,從而避免過多的磁盤訪問,但是該方案僅針對基于同一個對象的 多個視頻流的時間間隔進行優(yōu)化,未針對同一個流媒體服務器的多個對 象進行整體的優(yōu)化,見Renu Tewari, Asit Dan, et al. "Buffering and Caching in Large-Scale Video Servers" , Proceedings of COMPCON 1995。Weifeng Shi等人在Renu Tewari等人提出的方案的 基礎上明確指出了時間間隔的閾值,但是仍然沒有將請求到達速率考慮 在內,見Weifeng Shi et al, "Trading memory for disk bandwidth in Video on Demand" , Proceedings of 13th ACM Symposiumon Applied Computing, Feb. 1998。 Y W Park等人通過對請求到達速率進 行分類來動態(tài)判斷哪些對象需要提前置于緩存,哪些對象不能提前置于 緩存,見Y W Park , W Seo , K D Chung, "Multi-phase interval caching for a news on demand server", IEEE International Conference on Multimedia
Computing and Systems , Florence ,1999。但是這些方法均未利用媒體文件 自身的特征來提高流媒體服務器并發(fā)媒體流數量。
發(fā)明內容
本發(fā)明提出一種提高流媒體服務器并發(fā)媒體流數量的方法,目的在 于充分利用媒體文件自身的特征,在滿足一定的數據丟失約束條件的前 提下,減小定位于其上的媒體流的帶寬,從而在一定程度上提高流媒體 服務器并發(fā)媒體流數量。
本發(fā)明的一種提高流媒體服務器并發(fā)媒體流數量的方法,在流媒體
服務器上設置一個媒體流等待隊列,包括
(1) 處理媒體流建立申請步驟;流媒體服務器每接收到客戶端的媒 體流建立申請,均將其置于媒體流等待隊列隊尾;
(2) 計算負載步驟;判斷媒體流等待隊列是否為空,是則等待,否 則從媒體流等待隊列隊頭取出一個媒體流建立申請,計算流媒體服務器 的負載R:
其中,N為流媒體服務器與客戶端之間建立的媒體流的個數,Bi為第 i個媒體流Si所占磁盤帶寬,B為流媒體服務器所能提供的峰值總帶寬;
(3) 滿載預判斷步驟;判斷R是否^",是則判定流媒體服務器滿 載,轉步驟(5),否則判定流媒體服務器尚未滿載,轉步驟(4),"為系 統(tǒng)管理員預先設定的滿載閾值,0<"〈1;
(4) 媒體流建立步驟;流媒體服務器建立客戶端到流媒體服務器之間的媒體流連接,轉步驟(6);
(5) 帶寬重分配步驟;使部分媒體流定位到相應的編碼之后的媒體 文件,進行步驟(6);
(6) 滿載判斷步驟;重新計算流媒體服務器的負載R,判斷是否R ,是則轉步驟(5),否則轉步驟(2);
(7) (m,k)編碼刪除步驟;流媒體服務器周期性的計算其負載R和所 有對象的訪問頻率,當R〈"時,依對象訪問頻率由低到高依次刪除相應 對象的(m,k)編碼,"為系統(tǒng)管理員預先設定的輕載閾值,(K々〈l;
所述步驟(1)、步驟(2) (6)、步驟(7)三者獨立進行。
所述的提高流媒體服務器并發(fā)媒體流數量的方法,其特征在于,所
述帶寬重分配步驟順序包括下述過程
(1) 流媒體服務器判斷是否所有對象均已存在相應的(m,k)編碼,是
則拒絕媒體流建立申請,否則進行過程(2);
(2) 對象熱度排序過程;首先,計算流媒體服務器上各個尚未進行 (m,k)編碼的對象Oi的熱度LOi, LO「SOi, SOi為定位于對象Oi之上的媒 體流個數;其次,將對象Oi依其熱度按從大到小的順序排序,并將對象 編號依次置于數組L[NUM—OBJECT]中,NUM—OBJECT為流媒體服務 器上對象的總個數,i二l,…,M; M為流媒體服務器上尚未進行(m,k) 編碼的對象個數;
(3) 從數組L[NUM—OBJECT]中依次取出前P個對象進行(m,k)編 碼,并將編碼之后的對象置于流媒體服務器的空閑塊,P為系統(tǒng)管理員事 先設定的一個整數值;
(4) 將讀取熱點對象Oi的請求定位到(m,k)編碼之后的對象MKOi 上,轉所述滿載判斷步驟。本發(fā)明充分利用了媒體文件自身的特征,在滿足一定的數據丟失約 束條件的前提下,減小了定位于其上的媒體流的帶寬,從而在一定程度 上提高了流媒體服務器并發(fā)媒體流數量。
圖l為本發(fā)明流程框具體實施例方式
下面結合實例對本發(fā)明做進一步說明。
設t時刻流媒體服務器支持100個媒體流(即取N=100),分別記為 Sp S2, S3, ...... , S1()。。該100個媒體流所對應的帶寬需求分別為Bi,
B2, B3,……,B100。假設B產B2-B產……=B100=lMB/s。流媒體服務器 所能提供的峰值帶寬為120MB/s (取B二120MB/s)。由于磁盤磁頭定位延 遲的存在,使得磁盤的實際帶寬一般小于其峰值帶寬。磁盤的實際帶寬 取決于請求所需數據在磁盤上的分布,如果請求所需數據在磁盤上連續(xù) 分布,則磁盤實際帶寬較高;反之,請求所需數據在磁盤上的隨機離散 分布將降低磁盤的實際帶寬。假定流媒體服務器當前能夠滿足該100個 媒體流的帶寬需求。當第101個媒體流建立申請(設其所需帶寬為2MB/s) 到達時,首先將其置于流媒體服務器的媒體流等待隊列隊尾。此時流媒 體服務器未處理任何的媒體流建立申請,進入計算負載步驟。流媒體服 務器立即將該媒體流建立申請取出,并計算流媒體服務器的負載R,由
Z可知,R=10%2。 =0.833,進入滿載預判斷步驟。取"=0.9, i < ,此時流媒體服務器尚未滿載,進入媒體流建立步驟。在媒體流建
立步驟,流媒體服務器首先建立客戶端到流媒體服務器之間的媒體流連 接,然后進入滿載判斷步驟。此時重新計算流媒體服務器的負載R ,
R=(1Q()+2^/2。=0.85, i < ,表明客戶端到流媒體服務器之間的媒體流 連接被接受。
當第102個媒體流建立申請(假設其所需帶寬為10MB/s)到達時, 假設之前的101個媒體流均尚未終止。首先將其置于流媒體服務器的媒 體流等待隊列隊尾。此時流媒體服務器未處理任何的媒體流建立申請, 進入計算負載步驟。流媒體服務器立即將該媒體流建立申請取出,并計
算流媒體服務器的負載R,由及=^ 可知,R=(1G2 + 10^2()=0.85,進 入滿載預判斷步驟。取《 = 0.9,及< ,此時流媒體服務器尚未滿載,進 入媒體流建立步驟。在媒體流建立步驟,流媒體服務器首先建立客戶端 到流媒體服務器之間的媒體流連接,然后進入滿載判斷步驟。此時重新 計算流媒體服務器的負載R , R』G2 + 10^2。=0.933,h",因此進入
帶寬重分配步驟。首先流媒體服務器判斷是否所有對象均已存在相應的 (m,k)編碼。判斷的結果是所有對象均未存在(m,k)編碼,此時進入對象熱 度排序過程,計算流媒體服務器上各個尚未進行(m,k)編碼的對象的熱度, 將對象依其熱度按從大到小的順序排序,并將對象編號依次置于數組L 中。假設排序之后的結果是zo^i:o^i:o3......^zo/ (H為流媒體服務器上
當前對象個數)。當取P-10,且H個對象的(m,k)約束條件均為(9,10)時, 為前P40個對象Op 02, , On)創(chuàng)建(m,k)編碼對象,并且將基于前
10個對象Op 02,……,01()的媒體流分別定位到MKOp MK02, MK03,, MK01Q。假設媒體流S" S2, S3,……,Su)分別基于oP o2, o3,, o1(),且其他媒體流均未基于o" o2, o3, ,
On)中的任一個對象。記基于對象Op 02,……,Ou)的媒體流分別為Sp
S2, S3, ...... , S1(),而基于MKOp MK02, MK03, ...... , MKOu)的
媒體流分別為&', , &....... ,占用的磁盤帶寬分別為A', A',
53', ......, 510'。由(m,k)約束條件可知,AS0.9及,^薪足1S/《10。由此
可知媒體流由Si, S2, S3,……,Suj分別切換為&', 5V , &.......,
&。'之后,最多可節(jié)省0.9*10*171必"=9^5"的磁盤帶寬,然后進入滿載判 斷步驟。此時重新計算流媒體服務器的負載R , i J02-94^2(^0.8583,
i < ,表明客戶端到流媒體服務器之間的媒體流連接被接受。
在帶寬重分配步驟,如果P取3,且H個對象的(m,k)約束條件均為
(9,10)。則最多可節(jié)省0.9*3*171必/^ = 2.7^\犯"的磁盤帶寬,然后進入滿負載
判斷步驟。此時重新計算流媒體服務器的負載R , ^ = 102-2.7 + 1%2。 = 0.9108,易知^>",此時再次進入帶寬重分配步驟。
首先流媒體服務器判斷是否所有對象均已存在相應的(m,k)編碼。判斷的
結果是并非所有對象均已存在相應的(m,k)編碼,此時進入對象熱度排序
過程,計算流媒體服務器上所有尚未進行(m,k)編碼的對象的熱度,將對
象依其熱度按從大到小的順序排序,并將對象編號依次置于數組L中。
從數組L中順次取P個對象進行(m,k)編碼并將相應的媒體流定位到各個
對象所對應的(m,k)編碼對象上,最多可節(jié)省0.9*6*1^5" = 5.4似^〃的磁盤
帶寬,然后進入滿負載判斷步驟。此時重新計算流媒體服務器的負載R, ^ = 102-5.4 +1%2。 = 0.8883 ,i < ,表明客戶端到流媒體服務器之間的媒
體流連接被接受。
權利要求
1. 一種提高流媒體服務器并發(fā)媒體流數量的方法,在流媒體服務器上設置一個媒體流等待隊列,包括(1)處理媒體流建立申請步驟;流媒體服務器每接收到客戶端的媒體流建立申請,均將其置于媒體流等待隊列隊尾;(2)計算負載步驟;判斷媒體流等待隊列是否為空,是則等待,否則從媒體流等待隊列隊頭取出一個媒體流建立申請,計算流媒體服務器的負載R
2.如權利婆求1所述的提高流媒體服務器并發(fā)媒體流數量的方法, 其特征在于,所述帶寬重分配步驟順序包括下述過程(1) 流媒體服務器判斷是否所有對象均已存在相應的(m,k)編碼,是則拒絕媒體流建立申請,否則進行過程(2);(2) 對象熱度排序過程;首先,計算流媒體服務器上各個尚未進行(m,k)編碼的對象Oi的熱度LOi, LO「SOi, SO;為定位于對象Oi之上的媒 體流個數;其次,將對象Oi依其熱度按從大到小的順序排序,并將對象 編號依次置于數組L[NUM—OBJECT]中,NUM—OBJECT為流媒體服務 器上對象的總個數,i = l,…,M; M為流媒體服務器上尚未進行(m,k) 編碼的對象個數;(3) 從數組L[NUM—OBJECT]中依次取出前P個對象進行(m,k)編 碼,并將編碼之后的對象置于流媒體服務器的空閑塊,P為系統(tǒng)管理員事 先設定的一個整數值;(4) 將讀取熱點對象Oi的請求定位到(m,k)編碼之后的對象MKOj 上,轉所述滿載判斷步驟。
全文摘要
一種提高流媒體服務器并發(fā)媒體流數量的方法,屬于計算機存儲系統(tǒng)媒體文件存取方法,目的在于充分利用媒體文件自身的特征,在滿足一定的數據丟失約束條件的前提下,減小定位于其上的媒體流的帶寬,從而在一定程度上提高流媒體服務器并發(fā)媒體流數量。本發(fā)明包括處理媒體流建立申請步驟、計算負載步驟、滿載預判斷步驟、媒體流建立步驟、帶寬重分配步驟、滿載判斷步驟、(m,k)編碼刪除步驟。本發(fā)明充分利用媒體文件自身的特征減小了定位于其上的媒體流的帶寬,從而在一定程度上提高了流媒體服務器并發(fā)媒體流數量。
文檔編號H04L29/08GK101287002SQ20081004779
公開日2008年10月15日 申請日期2008年5月21日 優(yōu)先權日2008年5月21日
發(fā)明者丹 馮, 宇 華, 岳銀亮, 芳 王, 昌 田, 陳明水 申請人:華中科技大學