專利名稱:高效流媒體數(shù)據(jù)讀寫系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電子通信技術(shù)領(lǐng)域,特別涉及一種高效流媒體數(shù)據(jù)讀寫系統(tǒng)。
背景技術(shù):
在寬帶網(wǎng)絡(luò)條件較好的情況下,網(wǎng)絡(luò)傳輸已不再成為系統(tǒng)性能瓶頸,磁盤讀寫效率愈來愈成為系統(tǒng)性能提高的瓶頸及關(guān)鍵技術(shù)難題。
現(xiàn)有的流媒體讀寫存儲通常采用RAID(經(jīng)濟(jì)磁盤冗余陣列,RedundantArray of Inexpensive Disks RAID)方式,比如RAID0,RAID5等讀寫存儲方式。RAID方式是一種數(shù)據(jù)存儲技術(shù),按此技術(shù),數(shù)據(jù)按分布方式存儲在多個磁盤驅(qū)動器中,以獲得冗余度和提高數(shù)據(jù)轉(zhuǎn)移速率。
對于小數(shù)據(jù)量的文件讀寫,RAID方式還比較實用,但對于高并發(fā)、大數(shù)據(jù)量的流媒體業(yè)務(wù),顯得力不從心。主要缺點在于條帶化分割最大才128kbytes,最大的讀寫數(shù)據(jù)塊僅有4kbytes,媒體數(shù)據(jù)分布不能依據(jù)流媒體屬性進(jìn)行優(yōu)化。因此,很難充分發(fā)揮RAID方式的讀寫存儲的效率。本發(fā)明對現(xiàn)有的RAID存儲系統(tǒng)進(jìn)行優(yōu)化,針對流媒體數(shù)據(jù)讀寫的特點,提高流媒體數(shù)據(jù)讀寫效率。
發(fā)明內(nèi)容
本發(fā)明提供了一種高效流媒體數(shù)據(jù)讀寫系統(tǒng),采用加大條帶化分割讀寫數(shù)據(jù)塊的方法對高并發(fā)、大數(shù)據(jù)量的流媒體業(yè)務(wù)媒體數(shù)據(jù)分布依據(jù)流媒體屬性進(jìn)行優(yōu)化,充分發(fā)揮了RAID方式的讀寫存儲的效率,并針對流媒體數(shù)據(jù)讀寫的特點,提高了流媒體數(shù)據(jù)讀寫效率。
為解決上述技術(shù)問題,本發(fā)明提供了一種高效流媒體數(shù)據(jù)讀寫系統(tǒng),包括磁盤優(yōu)化模塊、控制管理模塊和數(shù)據(jù)管理模塊,其中磁盤優(yōu)化模塊,用于將磁盤讀寫數(shù)據(jù)子塊單元大小設(shè)置為大于16kb的固定值,優(yōu)選為48kb;控制管理模塊,用于在每個磁盤的分條單元上設(shè)置相同數(shù)量的數(shù)據(jù)子塊,并保持各種帶寬的文件讀取的數(shù)據(jù)量基本均衡;數(shù)據(jù)管理模塊,用于將編碼帶寬相同的媒體文件保存在同一個磁盤的分條單元中,將讀寫頻度高的媒體文件保存在同一個分條單元中,將碼率高的文件置于磁盤磁道內(nèi)圈,碼率低的文件置于磁盤磁道外圈,提高磁盤整體讀寫性能。
本發(fā)明在現(xiàn)有的RAID存儲系統(tǒng)基礎(chǔ)上進(jìn)行優(yōu)化,將媒體數(shù)據(jù)依據(jù)流媒體屬性分布存儲,可以針對流媒體數(shù)據(jù)讀寫的特點,充分發(fā)揮RAID方式的優(yōu)勢,提高流媒體數(shù)據(jù)的讀寫效率。
圖1為根據(jù)本發(fā)明實施例所述系統(tǒng)的文件存儲流程圖;圖2為根據(jù)本發(fā)明實施例所述系統(tǒng)的文件讀取流程圖。
具體實施例方式
本發(fā)明的實施例提供了一種高效流媒體數(shù)據(jù)讀寫系統(tǒng),包括磁盤優(yōu)化模塊、控制管理模塊和數(shù)據(jù)管理模塊,其中磁盤優(yōu)化模塊,用于將磁盤讀寫數(shù)據(jù)子塊單元大小設(shè)置為大于16kb的固定值,優(yōu)選為48kb,以提高磁盤的單次操作效率;控制管理模塊,用于在每個磁盤的分條單元上設(shè)置相同數(shù)量的數(shù)據(jù)子塊,并保持各種帶寬的文件讀取的數(shù)據(jù)量基本均衡;數(shù)據(jù)管理模塊,用于將編碼帶寬相同的媒體文件保存在同一個磁盤的分條單元中,將讀寫頻度高的媒體文件保存在同一個分條單元中,將碼率高的文件置于磁盤磁道內(nèi)圈,碼率低的文件置于磁盤磁道外圈,提高磁盤整體讀寫性能。
應(yīng)當(dāng)注意,48kb只是優(yōu)選數(shù)值,事實上,只要大于16kb,例如24kbytes,32kbptes或48kbytes都可以。
所述數(shù)據(jù)管理模塊可以進(jìn)一步用于,將讀寫頻度高的媒體文件保存在同一個分條單元中,如果讀寫頻度高的媒體文件大小超過一個分條單元的存儲容量,將讀寫頻度高的媒體文件的剩余部分保存在其它分條單元中。
所述數(shù)據(jù)管理模塊可以進(jìn)一步用于,保持一個分條單元中,媒體文件類型大于兩種。
所述數(shù)據(jù)管理模塊可以進(jìn)一步用于,根據(jù)媒體文件的編碼帶寬以及時長,計算出媒體內(nèi)容的大小,以數(shù)據(jù)子塊大小對文件進(jìn)行分割,保持每個磁盤上的分條單元保存相同數(shù)量的數(shù)據(jù)子塊。
所述數(shù)據(jù)管理模塊可以進(jìn)一步用于,采用raid5方式將所述數(shù)據(jù)子塊分散保存在各磁盤上。
所述控制管理模塊可以進(jìn)一步用于,在并發(fā)訪問文件數(shù)量較大時,訪問編碼帶寬較寬的媒體文件。
所述控制管理模塊可以進(jìn)一步用于,在并發(fā)訪問文件數(shù)量不大時,訪問編碼帶寬不寬的媒體文件。
所述控制管理模塊可以進(jìn)一步用于,在被訪問的文件為編碼帶寬不寬的媒體文件時,將文件塊讀取速度設(shè)置為文件塊寫入速度的一半或者低于一半。
如圖1所示,為根據(jù)本發(fā)明實施例所述系統(tǒng)的文件存儲流程圖,本實施例中,設(shè)置磁盤數(shù)目為5個,條帶化深度為64,數(shù)據(jù)子塊為。
具體步驟如下步驟101,根據(jù)文件編碼帶寬、播放時長以及數(shù)據(jù)子塊大小,得到文件需要占用多少個數(shù)據(jù)子塊。以一個編碼帶寬為100kbps,時長480秒為例,文件大小為5.86Mbytes.按照48kbytes分割,可得到125個數(shù)據(jù)子塊,如果文件大小除以數(shù)據(jù)子塊大小得到帶小數(shù)數(shù)值,將小數(shù)的整數(shù)部分增加一即為需要的數(shù)據(jù)子塊數(shù)目。5個硬盤,按照raid5方式,一個作校驗盤。有4個為有效盤,其中三個硬盤中占用31個有效數(shù)據(jù)子塊,最后一個占用32個有效數(shù)據(jù)子塊。
步驟102,如果此節(jié)目為熱點節(jié)目,即為讀寫頻度高的媒體文件,則需要將此節(jié)目的所有數(shù)據(jù)塊放入一個分條中。按照每個分條單元寫入32個數(shù)據(jù)子塊,其中無效的數(shù)據(jù)子塊以特殊數(shù)據(jù)補(bǔ)齊。本例中以oxoc補(bǔ)齊無效數(shù)據(jù)子塊。其余32個數(shù)據(jù)子塊可保存其他帶寬的媒體內(nèi)容。
步驟103,如果此節(jié)目非熱點節(jié)目,即為讀寫頻度不高的媒體文件,則不需要將媒體文件放在一個分條中,可將媒體文件分散在兩個或者多個分條中,這樣可提高系統(tǒng)的并發(fā)處理文件的響應(yīng)速度。但是文件太分散,必然導(dǎo)致文件存儲和讀取效率很低,本例中將媒體內(nèi)容分散在兩個分條中保存,兩個分條中的寫入子塊數(shù)目block_w分別為16個數(shù)據(jù)子塊。
步驟104,如果此節(jié)目為高編碼帶寬的媒體文件,則文件內(nèi)容盡量放在磁盤內(nèi)圈,如果此節(jié)目為低編碼帶寬的媒體文件,則文件內(nèi)容盡量放在磁盤外圈。媒體文件的編碼帶寬是高還是低,是與所保存的媒體文件的平均帶寬比較的結(jié)果,本例中采用的標(biāo)準(zhǔn)是如果是平均帶寬的2倍以上,可認(rèn)為是高編碼帶寬的文件。相應(yīng)的如果編碼帶寬是平均帶寬的一半,則認(rèn)為是低編碼帶寬。
步驟105,完成媒體文件的保存后,將block_w信息保存,便于文件讀取使用。
如圖2所示,為根據(jù)本發(fā)明實施例所述系統(tǒng)的文件讀取流程圖,文件讀取操作的具體步驟是步驟201,從文件的編碼帶寬及播放時長,可計算出文件的大小,對文件進(jìn)行數(shù)據(jù)子塊分割。得知文件共占用的數(shù)據(jù)子塊數(shù)目。以文件存儲實施例中的文件為例,文件總共占用的數(shù)據(jù)子塊數(shù)目為125。
步驟202,讀取文件的block_w值。
步驟203,如果文件為普通的高帶寬文件,假設(shè)文件的block_w為16,則在讀取文件時,讀取文件以當(dāng)時的系統(tǒng)繁忙程度而定,如果系統(tǒng)的并發(fā)訪問量較大,則將讀出子塊數(shù)目block_r設(shè)置為8,或者更小些,但要保證磁盤對該文件的i/o帶寬(輸入/輸出帶寬)大于編碼帶寬。如果系統(tǒng)并發(fā)訪問量不大,將block_r設(shè)為16。滿足對當(dāng)前文件處理的高效率。
步驟204,如果文件為熱點文件,即為讀寫頻度高的媒體文件,讀取block_w為32,則block_r設(shè)置為32,保證文件快速被讀取出來。
步驟205,如果文件為普通的非高帶寬文件,在保證磁盤對該文件的i/o帶寬大于編碼帶寬的情況下,block_r小一些。假設(shè)當(dāng)前block_w為8,則讀取文件可將block_r設(shè)為4,保證系統(tǒng)對其他帶寬文件的響應(yīng)能力。
本發(fā)明的另一實施例為一種高效流媒體數(shù)據(jù)讀寫系統(tǒng)的數(shù)據(jù)存儲方法,實現(xiàn)步驟如下步驟301,設(shè)置磁盤的分條單元深度strip_len范圍為16-256。,本例中可設(shè)為64,設(shè)置數(shù)據(jù)子塊大小為48kbytes。
步驟302,讀取媒體文件的編碼帶寬以及時長,大致計算出媒體內(nèi)容的大小。以數(shù)據(jù)子塊大小對文件進(jìn)行分割,讓每個磁盤上的分條單元保存相同數(shù)量的數(shù)據(jù)子塊。按raid5方式將這些數(shù)據(jù)子塊分散在各磁盤上。
步驟303,對于編碼帶寬相同的或者相近的媒體內(nèi)容,盡量放在同一個分條單元中,保持一個分條單元中媒體內(nèi)容種類大于2。如果分條單元中包含的媒體種類太多,則媒體文件過于分散,降低文件存儲效率。
步驟304,對于熱點節(jié)目,由于需要提高熱點節(jié)目的吞吐量,需要將分割后的熱點節(jié)目放在一個分條單元。提高熱點節(jié)目的響應(yīng)速度。如果一個分條不能完全容納節(jié)目內(nèi)容,可在多個分條中保存。如果一個熱點節(jié)目不能完全占滿分條單元,則分條單元的剩余空間可容納其他文件內(nèi)容。
步驟305,對于碼率高的媒體內(nèi)容,盡量存放在磁盤磁道的內(nèi)圈,對于碼率低的媒體內(nèi)容,盡量存放在磁盤磁道的外圈。
本發(fā)明的再一實施例為一種高效流媒體數(shù)據(jù)讀寫系統(tǒng)的數(shù)據(jù)讀取方法,具體步驟如下步驟401,設(shè)置磁盤的分條單元深度strip_len范圍為16-256。,本例中可設(shè)為64,設(shè)置數(shù)據(jù)子塊大小為48kbytes。
步驟402,根據(jù)文件存儲的連續(xù)數(shù)據(jù)子塊的數(shù)目block_w,文件編碼帶寬以及文件是否熱點節(jié)目,調(diào)整block_r值,block_r值可動態(tài)調(diào)整。
步驟403,當(dāng)訪問節(jié)目為熱點節(jié)目時,設(shè)置block_r與block_w相等。
步驟404,在并發(fā)訪問文件數(shù)量較大時,訪問編碼帶寬較寬的媒體文件,采用較小的block_r值,避免由于媒體帶寬較大文件的訪問,而導(dǎo)致媒體帶寬較小的文件不能訪問,或者延遲訪問,提高系統(tǒng)的整體響應(yīng)速度。
步驟405,在并發(fā)訪問文件數(shù)量不大時,對媒體帶寬較大的文件,可采用適當(dāng)?shù)腷lock_r值,保持對文件訪問的快速響應(yīng)。
步驟406,當(dāng)被訪問的文件為普通的非高帶寬文件時,盡量將block_r設(shè)置為block_w的一半或者更小,以便保證系統(tǒng)對其他文件的響應(yīng)能力。
本發(fā)明實施例,減小了數(shù)據(jù)塊的大小,提高了磁盤空間的利用率。在存儲媒體內(nèi)容時,對于熱點節(jié)目,媒體內(nèi)容盡量占用每個分條單元。對于非熱點節(jié)目,各分條單元中,至少保證包含兩種媒體內(nèi)容,在進(jìn)行媒體數(shù)據(jù)讀取時,降低高帶寬媒體內(nèi)容的block_r值,提高系統(tǒng)整體的文件訪問響應(yīng)速度。對于熱點節(jié)目需要特別對待,使block_r與block_w相等。
流媒體的讀寫與存儲是對應(yīng)的,只有合理的將媒體內(nèi)容放置在磁盤系統(tǒng)中,才能提高媒體的讀寫效率。本發(fā)明實施例從五個方面進(jìn)行提高流媒體數(shù)據(jù)的讀寫效率第一加大每次讀寫數(shù)據(jù)子塊單元大小,由于流媒體數(shù)據(jù)量較大,可將數(shù)據(jù)子塊單元大小定為48kbytes,提高磁盤的單次操作效率。
第二將媒體文件保存在磁盤分條時,保證每個磁盤上的分條單元包含相同數(shù)量的數(shù)據(jù)子塊,對于熱點節(jié)目,盡量在一個分條單元中完全包含此熱點節(jié)目,對于非熱點節(jié)目,在一個分條單元中可包含兩種以上。
第三讀取媒體文件時,保證各種媒體帶寬的文件讀取的數(shù)據(jù)量保持平衡,避免讀取媒體帶寬大的文件時,導(dǎo)致媒體帶寬較小的文件不能讀取。
第四為了提高磁盤整體的讀寫性能,可將碼率大的文件放在磁盤磁道的內(nèi)圈,將碼率低的文件放在磁盤磁道的外圈。
第五編碼帶寬相同的媒體內(nèi)容盡量放置在同一個磁盤的分條單元中。
權(quán)利要求
1.一種高效流媒體數(shù)據(jù)讀寫系統(tǒng),其特征在于,包括磁盤優(yōu)化模塊、控制管理模塊和數(shù)據(jù)管理模塊,其中磁盤優(yōu)化模塊,用于將磁盤讀寫數(shù)據(jù)子塊單元大小設(shè)置為大于16kb的固定值;控制管理模塊,用于在每個磁盤的分條單元上設(shè)置相同數(shù)量的數(shù)據(jù)子塊,并保持各種帶寬的文件讀取的數(shù)據(jù)量的均衡;數(shù)據(jù)管理模塊,用于將編碼帶寬相同的媒體文件保存在同一個磁盤的分條單元中,將讀寫頻度高的媒體文件保存在同一個分條單元中,將碼率高的文件置于磁盤磁道內(nèi)圈,碼率低的文件置于磁盤磁道外圈。
2.根據(jù)權(quán)利要求1所述方法,其特征在于,所述大于16kb的固定值,為48kb。
3.根據(jù)權(quán)利要求1所述方法,其特征在于,所述大于16kb的固定值,為24-48kb。
4.根據(jù)權(quán)利要求1所述系統(tǒng),其特征在于,所述數(shù)據(jù)管理模塊進(jìn)一步用于,將讀寫頻度高的媒體文件保存在同一個分條單元中,如果讀寫頻度高的媒體文件大小超過一個分條單元的存儲容量,將讀寫頻度高的媒體文件的剩余部分保存在其它分條單元中。
5.根據(jù)權(quán)利要求1所述系統(tǒng),其特征在于,所述數(shù)據(jù)管理模塊進(jìn)一步用于,保持一個分條單元中,媒體文件類型大于兩種。
6.根據(jù)權(quán)利要求1所述系統(tǒng),其特征在于,所述數(shù)據(jù)管理模塊進(jìn)一步用于,根據(jù)媒體文件的編碼帶寬以及時長,計算出媒體內(nèi)容的大小,以數(shù)據(jù)子塊大小對文件進(jìn)行分割,保持每個磁盤上的分條單元保存相同數(shù)量的數(shù)據(jù)子塊。
7.根據(jù)權(quán)利要求5所述系統(tǒng),其特征在于,所述數(shù)據(jù)管理模塊進(jìn)一步用于,采用raid5方式將所述數(shù)據(jù)子塊分散保存在各磁盤上。
8.根據(jù)權(quán)利要求1所述系統(tǒng),其特征在于,所述控制管理模塊進(jìn)一步用于,在并發(fā)訪問文件數(shù)量較大時,訪問編碼帶寬較寬的媒體文件。
9.根據(jù)權(quán)利要求1所述方法,其特征在于,所述控制管理模塊進(jìn)一步用于,在并發(fā)訪問文件數(shù)量不大時,訪問編碼帶寬不寬的媒體文件。
10.根據(jù)權(quán)利要求1所述方法,其特征在于,所述控制管理模塊進(jìn)一步用于,在被訪問的文件為編碼帶寬不寬的媒體文件時,將文件塊讀取速度設(shè)置為文件塊寫入速度的一半或者低于一半。
全文摘要
本發(fā)明提供了一種高效流媒體數(shù)據(jù)讀寫系統(tǒng),包括磁盤優(yōu)化模塊、控制管理模塊和數(shù)據(jù)管理模塊,其中磁盤優(yōu)化模塊,用于將磁盤讀寫數(shù)據(jù)子塊單元大小設(shè)置為大于16kb的固定值,優(yōu)選為48kb;控制管理模塊,用于在每個磁盤的分條單元上設(shè)置相同數(shù)量的數(shù)據(jù)子塊,并保持各種帶寬的文件讀取的數(shù)據(jù)量基本均衡;數(shù)據(jù)管理模塊,用于將編碼帶寬相同的媒體文件保存在同一個磁盤的分條單元中,將讀寫頻度高的媒體文件保存在同一個分條單元中,將碼率高的文件置于磁盤磁道內(nèi)圈。本發(fā)明在現(xiàn)有的RAID存儲方式基礎(chǔ)上進(jìn)行優(yōu)化,將媒體數(shù)據(jù)依據(jù)流媒體屬性分布存儲,可以針對流媒體數(shù)據(jù)讀寫的特點,充分發(fā)揮RAID方式的優(yōu)勢,提高流媒體數(shù)據(jù)的讀寫效率。
文檔編號G06F3/06GK101055509SQ20061007215
公開日2007年10月17日 申請日期2006年4月14日 優(yōu)先權(quán)日2006年4月14日
發(fā)明者李鳳軍 申請人:中興通訊股份有限公司