千萬級小文件數(shù)據(jù)的一種讀寫解決策略的制作方法
【專利摘要】本發(fā)明提供一種千萬級小文件數(shù)據(jù)的一種讀寫解決策略,設(shè)計在存儲小文件時通過采用開辟大塊的連續(xù)磁盤空間的方式來存儲大量的小文件;首先將磁盤空間劃分為多個塊,大文件的連續(xù)磁盤空間就由這一系列塊所組成,遇到的文件比較小時,每個小文件只能存放在單個塊中,不能跨越2個塊存放,每個文件數(shù)據(jù)都存放在連續(xù)的磁盤空間上。本發(fā)明主要是通過將邏輯上連續(xù)的小文件數(shù)據(jù)盡可能的存儲在物理磁盤的連續(xù)空間之內(nèi),這樣就提高用戶對文件訪問的并發(fā)性操作,從而提高了小文件的訪問性能;采用Cache技術(shù)充當(dāng)元數(shù)據(jù)服務(wù)器的角色,同時通過設(shè)計一種簡化的小文件信息節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)Node,大大提高Cache利用率和小文件讀取性能。
【專利說明】千萬級小文件數(shù)據(jù)的一種讀寫解決策略
[0001]
【技術(shù)領(lǐng)域】 本發(fā)明涉及計算機(jī)應(yīng)用【技術(shù)領(lǐng)域】,具體地說是一種千萬級小文件數(shù)據(jù)的一種讀寫解決 策略。
【背景技術(shù)】
[0002] 在現(xiàn)階段的讀取、存儲領(lǐng)域小文件是數(shù)據(jù)訪問、使用的最常見的數(shù)據(jù)形式。相對于 大文件的條帶化技術(shù)進(jìn)行切片,來提高用戶對文件訪問的并發(fā)性,小文件64KB)由于其 不利于條帶化,傳統(tǒng)的方法一般是采用將單個文件存儲在單個數(shù)據(jù)服務(wù)器上的策略,但是 當(dāng)小文件的數(shù)量到達(dá)一定程度之后,對小文件的大量地重復(fù)訪問將會給數(shù)據(jù)服務(wù)器帶來性 能上的負(fù)擔(dān)及I/O瓶頸問題,由于互聯(lián)網(wǎng)上的數(shù)據(jù)信息大多以高頻率的小文件形式表現(xiàn)出 來,而且在一般用戶的信息讀取、存儲中,對小文件的讀取、存儲較多,因此對互聯(lián)網(wǎng)上高頻 率的小文件讀/寫性能的研究有重要的現(xiàn)實(shí)意義。
[0003] 在現(xiàn)階段,傳統(tǒng)的針對千萬級小文件的處理、操作等管理上主要存在以下3個方 面的問題: 1、 由于小文件的訪問頻率較高,需要多次訪問磁盤,所以磁盤I/O的性能較低; 2、 因?yàn)槲募容^小,容易形成文件碎片而造成磁盤空間的浪費(fèi); 3、 為每個小文件請求建立一個連接時容易產(chǎn)生網(wǎng)絡(luò)時延,降低了小文件的讀取速率。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的是克服現(xiàn)有技術(shù)中存在的不足,提供一種千萬級小文件數(shù)據(jù)的一種 讀寫解決策略。
[0005] 本發(fā)明的技術(shù)方案是按以下方式實(shí)現(xiàn)的,其特點(diǎn)是設(shè)計在存儲小文件時通過采用 開辟大塊的連續(xù)磁盤空間的方式來存儲大量的小文件;首先將磁盤空間劃分為多個塊,每 個塊的大小為64KB,大文件的連續(xù)磁盤空間就由這一系列塊所組成,當(dāng)遇到的文件比較小 時,每個小文件只能存放在單個塊中,不能跨越2個塊存放,每個文件數(shù)據(jù)都存放在連續(xù)的 磁盤空間上,在一個塊中存放多個小文件Al, A2, A3, A4和A5為5個文件,文件與文件之間 連續(xù)存放,Al與A2, A3與A4,紅色部分為此塊的碎片,當(dāng)出現(xiàn)文件的大小小于這些碎片的 大小時,應(yīng)優(yōu)先把文件存放在這些碎片中,本發(fā)明的存儲布局中設(shè)計的是將邏輯上連續(xù)的 數(shù)據(jù)盡可能地存儲在物理磁盤的連續(xù)空間上,將同一個文件的數(shù)據(jù)或?qū)⑼粋€文件夾下的 文件數(shù)據(jù)盡可能地存儲在連續(xù)的磁盤空間塊上,每一個文件夾將擁有一個或多個塊,這些 塊都只存放此文件夾的文件; 在本系統(tǒng)的數(shù)據(jù)存儲結(jié)構(gòu)中,我們將文件信息節(jié)點(diǎn)的屬性信息存放在元數(shù)據(jù)服務(wù)器 上,在I/O服務(wù)器上,只需要知道文件的磁盤空間信息即可進(jìn)行訪問,在I/O服務(wù)器上,只需 要記錄文件的磁盤空間信息,而不需要記錄文件的其他屬性;對Node的數(shù)據(jù)結(jié)構(gòu)進(jìn)行簡化 設(shè)計,只保留文件的磁盤空間信息以及屬于它的少量數(shù)據(jù)成員; 針對本系統(tǒng)的數(shù)據(jù)存儲訪問頻率問題,首先,設(shè)計一個全局變量NodeList,NodeList 是對Node的一個排序鏈表,根據(jù)文件的訪問頻率進(jìn)行排序,它是為了實(shí)現(xiàn)優(yōu)化文件傳輸而 設(shè)計的,為整個小文件讀取、存儲解決方案服務(wù)。NodeList是對與每個文件夾而服務(wù)的,根 據(jù)文件夾里的每個文件的訪問頻率形成一個排序列表,當(dāng)用戶訪問該文件夾里的某個文件 時,系統(tǒng)會自動地將這個列表里高訪問頻率的文件一起發(fā)送過去設(shè)定一個高訪問頻率的閾 值巧,并將所有訪問頻率高于忍的文件順序分成多個組,每個組可能包含多個文件,組中 所有文件大小之和不超過64KB,每當(dāng)用戶請求當(dāng)前文件夾中的一個文件時,系統(tǒng)會按照順 序?qū)⒁粋€組的文件一起發(fā)送過去,從而降低文件傳輸時延,f &的計算公式如下:
【權(quán)利要求】
1.千萬級小文件數(shù)據(jù)的一種讀寫解決策略,其特征在于設(shè)計在存儲小文件時通過采用 開辟大塊的連續(xù)磁盤空間的方式來存儲大量的小文件;首先將磁盤空間劃分為多個塊,每 個塊的大小為64KB,大文件的連續(xù)磁盤空間就由這一系列塊所組成,當(dāng)遇到的文件比較小 時,每個小文件只能存放在單個塊中,不能跨越2個塊存放,每個文件數(shù)據(jù)都存放在連續(xù)的 磁盤空間上,在一個塊中存放多個小文件Al,A2, A3, A4和A5為5個文件,文件與文件之間 連續(xù)存放,Al與A2, A3與A4,紅色部分為此塊的碎片,當(dāng)出現(xiàn)文件的大小小于這些碎片的 大小時,應(yīng)優(yōu)先把文件存放在這些碎片中,本發(fā)明的存儲布局中設(shè)計的是將邏輯上連續(xù)的 數(shù)據(jù)盡可能地存儲在物理磁盤的連續(xù)空間上,將同一個文件的數(shù)據(jù)或?qū)⑼粋€文件夾下的 文件數(shù)據(jù)盡可能地存儲在連續(xù)的磁盤空間塊上,每一個文件夾將擁有一個或多個塊,這些 塊都只存放此文件夾的文件; 在本系統(tǒng)的數(shù)據(jù)存儲結(jié)構(gòu)中,我們將文件信息節(jié)點(diǎn)的屬性信息存放在元數(shù)據(jù)服務(wù)器 上,在I/O服務(wù)器上,只需要知道文件的磁盤空間信息即可進(jìn)行訪問,在I/O服務(wù)器上,只需 要記錄文件的磁盤空間信息,而不需要記錄文件的其他屬性;對Node的數(shù)據(jù)結(jié)構(gòu)進(jìn)行簡化 設(shè)計,只保留文件的磁盤空間信息以及屬于它的少量數(shù)據(jù)成員; 針對本系統(tǒng)的數(shù)據(jù)存儲訪問頻率問題,首先,設(shè)計一個全局變量NodeList,NodeList 是對Node的一個排序鏈表,根據(jù)文件的訪問頻率進(jìn)行排序,它是為了實(shí)現(xiàn)優(yōu)化文件傳輸而 設(shè)計的,為整個小文件讀取、存儲解決方案服務(wù); NodeList是對與每個文件夾而服務(wù)的,根據(jù)文件夾里的每個文件的訪問 頻率形成一個排序列表,當(dāng)用戶訪問該文件夾里的某個文件時,系統(tǒng)會自動 地將這個列表里高訪問頻率的文件一起發(fā)送過去設(shè)定一個高訪問頻率的閾值 ?;,并將所有訪問頻率高于?;的文件順序分成多個組,每個組可能包含多個文件,組中所 有文件大小之和不超過64ΚΒ,每當(dāng)用戶請求當(dāng)前文件夾中的一個文件時,系統(tǒng)會按照順序 將一個組的文件一起發(fā)送過去,從而降低文件傳輸時延,g , Fs的計算公式如下:
朽:為文件夾每個文件的訪問頻率,η為當(dāng)前文件夾中的文件個數(shù),N由用戶自己設(shè)置 數(shù)值。
【文檔編號】G06F17/30GK104391961SQ201410718009
【公開日】2015年3月4日 申請日期:2014年12月3日 優(yōu)先權(quán)日:2014年12月3日
【發(fā)明者】張硯波, 吳丙濤 申請人:浪潮集團(tuán)有限公司