一種基于大規(guī)模文件系統(tǒng)負(fù)載特征關(guān)鍵字的文件搜索方法
【技術(shù)領(lǐng)域】
[0001]本文公開了一種基于大規(guī)模文件系統(tǒng)負(fù)載特征關(guān)鍵字的搜索方法,涉及大數(shù)據(jù)環(huán)境中文件系統(tǒng)搜索面臨的挑戰(zhàn),屬于計(jì)算機(jī)技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002]“大數(shù)據(jù)”成為信息技術(shù)領(lǐng)域的重點(diǎn)研宄內(nèi)容和發(fā)展方向。很多國家均把應(yīng)對(duì)大數(shù)據(jù)問題帶來的挑戰(zhàn)提高到國家戰(zhàn)略層次,美國政府于2012年3月啟動(dòng)了 “大數(shù)據(jù)研發(fā)計(jì)劃”,我國多個(gè)基礎(chǔ)研宄科技計(jì)劃如973計(jì)劃、國家自然科學(xué)基金等也將大數(shù)據(jù)相關(guān)研宄列入項(xiàng)目指南。大規(guī)模文件系統(tǒng)是實(shí)現(xiàn)大數(shù)據(jù)存儲(chǔ)的重要技術(shù)途徑之一,當(dāng)前大型數(shù)據(jù)中心,計(jì)算中心等信息基礎(chǔ)設(shè)施普遍采用大規(guī)模文件系統(tǒng)組織和管理數(shù)據(jù),向上層用戶和應(yīng)用程序提供對(duì)存儲(chǔ)資源的統(tǒng)一訪問服務(wù)。在大數(shù)據(jù)環(huán)境中,從大規(guī)模文件系統(tǒng)中快速精確得找到滿足用戶和應(yīng)用程序的數(shù)據(jù)是當(dāng)前面臨的主要問題。
[0003]目前大規(guī)模文件系統(tǒng)中的文件數(shù)量規(guī)模達(dá)到百萬級(jí)別,預(yù)計(jì)到2015年,文件系統(tǒng)所管理的文件數(shù)量規(guī)??蛇_(dá)到萬億級(jí)別。由于文件系統(tǒng)采用傳統(tǒng)目錄樹方式管理與組織文件,即文件分布到不同層次的目錄中進(jìn)行管理;同時(shí),文件系統(tǒng)按照某種元數(shù)據(jù)分布算法將文件數(shù)據(jù)分配到不同的元數(shù)據(jù)服務(wù)器中,元數(shù)據(jù)保存了每個(gè)文件的多維屬性信息,用于支持文件系統(tǒng)的管理以及啟動(dòng)等操作。但是當(dāng)前文件系統(tǒng)的組織形式,仍然基于目錄樹的形式,在文件數(shù)量十分小的情況下是十分有效的,但是由于當(dāng)前文件數(shù)目規(guī)模十分龐大,這種目錄樹組織方式對(duì)文件系統(tǒng)的搜索效率是十分低下的。針對(duì)上述文件系統(tǒng)搜索的問題,許多學(xué)者進(jìn)行了大量的研宄,提出了基于元數(shù)據(jù)索引的搜索方法、基于采樣的文件搜索方法等。雖然上述方法加快了搜索速率,但是仍然存在的一定的缺點(diǎn),例如基于元數(shù)據(jù)索引的方法需要昂過的硬件作為支撐,需要專門的機(jī)器集群進(jìn)行元數(shù)據(jù)索引的搜索,并且在維護(hù)一致性上面會(huì)帶來額外的開銷,而基于采樣的方法雖然沒有帶來額外的開銷,但是由于采樣技術(shù)本身的原因,搜索的準(zhǔn)確率是會(huì)受到影響的。
[0004]上述搜索方法都沒有考慮搜索負(fù)載的特征,當(dāng)前的負(fù)載研宄表明,大量的文件集中在一定的目錄深度中,并且用戶的訪問集中在少量的目錄及一定目錄深度中,少量的客戶占大部分的1請(qǐng)求,小部分的文件占大部分的訪問,并且用戶的搜索請(qǐng)求在目錄樹中呈現(xiàn)出局部性特征,用戶的搜索的負(fù)載特征對(duì)搜索速率起著至關(guān)重要的作用。
[0005]針對(duì)當(dāng)前文件系統(tǒng)搜索方法研宄現(xiàn)狀,并且針對(duì)沒有考慮當(dāng)前文件系統(tǒng)的負(fù)載特征的問題,研宄新型的文件系統(tǒng)的搜索方法在學(xué)術(shù)和工業(yè)實(shí)踐上具有重要的意義。
【發(fā)明內(nèi)容】
[0006]1、目的:
[0007]本發(fā)明的主要目的是提供一種基于大規(guī)模文件系統(tǒng)負(fù)載特征關(guān)鍵字的文件搜索方法,針對(duì)當(dāng)前搜索方法中遇到的問題(例如,需要額外的硬件以及準(zhǔn)確率低),以及沒有考慮當(dāng)前負(fù)載呈現(xiàn)的特征,實(shí)現(xiàn)了基于負(fù)載特征的關(guān)鍵字搜索方法,提高文件系統(tǒng)的搜索性能。
[0008]2、技術(shù)方案:
[0009]為了達(dá)到實(shí)現(xiàn)上述方法,本發(fā)明的技術(shù)方案是這樣的:
[0010]一種基于大規(guī)模文件系統(tǒng)負(fù)載特征關(guān)鍵字的文件搜索方法,基于搜索目錄樹空間的局部性特征進(jìn)行目錄樹空間的分區(qū)以及關(guān)鍵字Posting列表的分割,包括以下步驟:
[0011 ] (I)根據(jù)搜索負(fù)載在目錄樹空間水平聚集的特征,將目錄樹空間進(jìn)行水平劃分,并且在每一個(gè)分區(qū)內(nèi)聚集關(guān)鍵字的Posting項(xiàng),從而將整個(gè)關(guān)鍵字的Posting列表分隔在每個(gè)分區(qū)內(nèi);
[0012](2)根據(jù)用戶搜索的子樹局部性特征,在目錄樹水平分區(qū)的基礎(chǔ)上,將目錄樹分區(qū)按照子樹方向進(jìn)行分區(qū),使步驟(I)中的目錄樹分區(qū)變得更小,進(jìn)一步減小關(guān)鍵字的Posting列表的長(zhǎng)度;關(guān)鍵字的Posting列表進(jìn)行再一次分割,成為更小的列表;
[0013](3)通過上述基于分區(qū)的關(guān)鍵字Posting列表的分割,使關(guān)鍵字列表可以順序地存儲(chǔ)在磁盤上面,并且基于用戶搜索的局部性,再一次將高頻率訪問的關(guān)鍵字Posting列表分區(qū),快速縮小目錄樹搜索范圍,提高搜索速率。
[0014]其中,步驟⑴和(2),通過搜索的局部性特征,降低了關(guān)鍵字的Posting列表的長(zhǎng)度,在磁盤可以順序存儲(chǔ),并且根據(jù)負(fù)載的局部性特征,可以迅速地縮小目錄樹搜索范圍,加快了搜索速率;步驟(3),可以將高頻率被搜索的相關(guān)文件位置信息緩存在內(nèi)存中,加快了搜索速率。
[0015]其中,步驟(3)中,增加了一種優(yōu)化方法,即基于一小部分占據(jù)著大部分的搜索1請(qǐng)求的負(fù)載特征,進(jìn)行基于閾值的關(guān)鍵字Posting列表的分割及緩存的方法,主要包括如下幾個(gè)步驟:
[0016](I)擴(kuò)展posting項(xiàng)紀(jì)錄文件被搜索的次數(shù),設(shè)定相關(guān)閾值;
[0017](2)通過閾值的判定將分區(qū)后的關(guān)鍵字的列表進(jìn)一步分裂成更小的列表,高于閾值的Posting項(xiàng)組成一個(gè)新的列表,剩余的組成另一個(gè)列表;
[0018](3)高頻率被搜索的Posting列表緩存在內(nèi)存中,提高搜索速率。
[0019]3、優(yōu)點(diǎn)及功效:
[0020]本發(fā)明所公布的基于大規(guī)模文件系統(tǒng)負(fù)載特征關(guān)鍵字的文件搜索方法,與現(xiàn)有的搜索技術(shù)相比,其主要優(yōu)點(diǎn)是:(I)不需要額外的硬件,降低了搜索的開銷,并且提高了搜索的準(zhǔn)確性;(2)考慮了當(dāng)前大規(guī)模文件系統(tǒng)呈現(xiàn)出來的負(fù)載特征,基于負(fù)載特征的搜索方法的建立,其效率更高;(3)搜索快速地縮小了目錄樹搜索范圍,提高了搜索效率。
[0021]1、利用大量文件集中在文件系統(tǒng)namespace中一定目錄深度和用戶的搜索請(qǐng)求集中在一定目錄深度的負(fù)載特征,位于同一目錄深度的關(guān)鍵字的Posting進(jìn)行聚集,從而降低了關(guān)鍵字的Posting列表的長(zhǎng)度;
[0022]2、根據(jù)用戶搜索呈現(xiàn)出來的子樹局部性特征,在關(guān)鍵字Posting列表水平分區(qū)的同時(shí),進(jìn)行按照子樹局部性進(jìn)行垂直分區(qū),通過水平和垂直分區(qū),將目錄樹空間分成很多小的區(qū)域,關(guān)鍵字Posting不再記錄整個(gè)目錄樹空間的文件,而是關(guān)鍵字的Posting列表每個(gè)分區(qū)的區(qū)域中進(jìn)行聚集,減少了關(guān)鍵字列表的長(zhǎng)度,使關(guān)鍵字列表可以在磁盤上面進(jìn)行順序存儲(chǔ),提高了搜索的準(zhǔn)確率;
[0023]3、當(dāng)前的基于內(nèi)容搜索的文件系統(tǒng)沒有考慮文件系統(tǒng)的負(fù)載特征,小部分文件占大部分1訪問,為了進(jìn)一步提高文件的搜索效率,擴(kuò)展每個(gè)posting項(xiàng)用來記錄被訪問的次數(shù),將上述關(guān)鍵字列表中的高于平均次數(shù)的posting項(xiàng)組成一個(gè)新的列表中,減小了posting列表的長(zhǎng)度,進(jìn)一步利用負(fù)載訪問的空間局部性提高文件搜索性能,并且提高了更新的速率。
【附圖說明】
[0024]圖1為基于大規(guī)模文件系統(tǒng)負(fù)載特征關(guān)鍵字的文件搜索方法流程圖;
[0025]圖2為基于負(fù)載特征的水平目錄分區(qū)的關(guān)鍵字Posting列表的劃分示意圖;
[0026]圖3為基于負(fù)載特征的子樹方向的關(guān)鍵字Posting列表的劃分不意圖;
[0027]圖4為基于訪冋頻度閾值的關(guān)鍵字Posting列表的劃分不意圖;
【具體實(shí)施方式】
[0028]使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)表達(dá)得更加清楚明白,下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明再作進(jìn)一步詳細(xì)的說明。
[0029]如圖1所示,本發(fā)明一種基于大規(guī)模文件系統(tǒng)負(fù)載特征的關(guān)鍵字搜索方法,該方法包括以下步驟:
[0030]步驟101:根據(jù)搜索負(fù)載在目錄樹空間水平聚集的特征,將目錄樹空間進(jìn)行水平劃分,并且在每一個(gè)分區(qū)內(nèi)聚集關(guān)鍵字的Posting項(xiàng),從而將整個(gè)關(guān)鍵字的Posting列表分隔在每個(gè)分區(qū)內(nèi);
[0031]步驟102:根據(jù)用戶搜索的子樹局部性特征