專利名稱:一種基于目錄級(jí)可伸縮的Bloom Filter位圖表的并行文件搜索方法
技術(shù)領(lǐng)域:
本發(fā)明公開(kāi)了一種基于目錄級(jí)可伸縮的Bloom Filter位圖表的并行文件搜索方法,涉及面向當(dāng)前大規(guī)模文件系統(tǒng)搜索的解決方案,屬于計(jì)算機(jī)技術(shù)領(lǐng)域。
背景技術(shù):
文件系統(tǒng)的搜索功能是文件系統(tǒng)研究領(lǐng)域中的一個(gè)重要方向,尤其當(dāng)前進(jìn)入了大數(shù)據(jù)時(shí)代,文件系統(tǒng)的規(guī)模是十分龐大的,傳統(tǒng)的文件系統(tǒng)的設(shè)計(jì)結(jié)構(gòu)采用分層的結(jié)構(gòu),給當(dāng)前的大規(guī)模文件搜索帶來(lái)了限制。文件系統(tǒng)的搜索功能就是快速準(zhǔn)確的定位到滿足搜索條件的文件,快速準(zhǔn)確的為用戶和管理員提供搜索結(jié)果,提高文件系統(tǒng)的使用和管理效率。傳統(tǒng)的文件系統(tǒng)設(shè)計(jì)采用的是分層設(shè)計(jì)結(jié)構(gòu),使用強(qiáng)力搜索遍歷整個(gè)目錄空間,由于當(dāng)前文件規(guī)模變得十分龐大,進(jìn)而造成巨大的目錄規(guī)模,文件搜索時(shí)間變得十分冗長(zhǎng),針對(duì)這種情況,在大規(guī)模文件系統(tǒng)的元數(shù)據(jù)搜索研究領(lǐng)域中,許多學(xué)者進(jìn)行了大量的研究,提高大規(guī)模的文件系統(tǒng)搜索性能。在基于元數(shù)據(jù)索引結(jié)構(gòu)搜索方面,近來(lái)研究的搜索系統(tǒng)依賴索引去提高性能,文件搜索只需執(zhí)行一個(gè)索引查詢,并非遍歷整個(gè)文件系統(tǒng)。這種方法被桌面搜索和小規(guī)模企業(yè)文件系統(tǒng)搜索應(yīng)用程序所采用,例如,蘋(píng)果公司的Spotlight Server、Google公司的 Google Desktop、Fast 公司的 A Microsoft Subsidiary、Google 公司的 GoogleEnterprise,上述這些公司的產(chǎn)品都采用了元數(shù)據(jù)索引結(jié)構(gòu)進(jìn)行搜索。這些應(yīng)用程序由一般性的關(guān)系數(shù)據(jù)庫(kù)和一個(gè)倒排索引構(gòu)成。它們?cè)谖募到y(tǒng)外部作為一個(gè)獨(dú)立的應(yīng)用程序使用,彌補(bǔ)了文件系統(tǒng)缺乏的搜索支持,可以快速準(zhǔn)確的為用戶提供搜索功能,定期的利用爬蟲(chóng)技術(shù)去收集新的文件改變,更新自己的索引。當(dāng)前在使用硬件提高搜索性能進(jìn)行了大量的研究,大規(guī)模的文件系統(tǒng)搜索要求檢索幾十億個(gè)屬性和關(guān)鍵值,大規(guī)模的搜索引擎使用專用的硬件去達(dá)到高的搜索性能,Google和Yahoo !采用了專門(mén)的硬件提高了搜索性能。上述基于元數(shù)據(jù)索引結(jié)構(gòu)的搜索工具位于文件系統(tǒng)之外。針對(duì)當(dāng)前主流分層文件系統(tǒng)的設(shè)計(jì)架構(gòu)的限制,為了更好的搜索文件,研究者提出了采用語(yǔ)義相關(guān)性技術(shù),是一種擴(kuò)展分層結(jié)構(gòu)的方式,可以動(dòng)態(tài)的從文件中提取文件屬性組成虛擬目錄,目錄空間是基于屬性和語(yǔ)義含義被組織的,Google公司的PageRank,基于網(wǎng)頁(yè)之間的語(yǔ)義關(guān)聯(lián)性,推斷出所搜索的網(wǎng)頁(yè)的重要性,學(xué)術(shù)界的Connections抽取文件之間的時(shí)間關(guān)系,例如兩個(gè)源代碼文件被同時(shí)打開(kāi),被用作語(yǔ)義連接,基于這些語(yǔ)義連接,Connections建立一個(gè)圖模型,這個(gè)圖模型去排序從文件系統(tǒng)搜索引擎得到的結(jié)果?;谡Z(yǔ)義相關(guān)性的文件系統(tǒng)是一種擴(kuò)展性的方式去組織和搜索文件,在當(dāng)前文件系統(tǒng)的數(shù)據(jù)量激增的狀態(tài)下,可以提高文件搜索的準(zhǔn)確率,它們僅僅關(guān)注的是接口和查詢語(yǔ)言,并且使用一般目的的索引結(jié)構(gòu),例如B-trees或者數(shù)據(jù)庫(kù)。當(dāng)前有的學(xué)者提出了基于采樣的文件搜索方法,通過(guò)對(duì)各分支進(jìn)行采樣打分,通過(guò)對(duì)分值的判定,達(dá)到快速得剪切 目錄分支,縮小分層目錄的搜索范圍,加快了搜索速度。采樣技術(shù)在數(shù)據(jù)庫(kù)中得到了廣泛的應(yīng)用,Huang.H.H等人首次將其應(yīng)用在文件系統(tǒng)中,通過(guò)閾值與各分支分值相比,進(jìn)行分支剪切,提高搜索效率?;谑录ㄖ乃阉鞣椒ㄒ彩且环N有效的搜索方法,Masanori Takata等人提出利用時(shí)間通知機(jī)制來(lái)將緩存中的不活躍文件換出,提高緩存的使用率。采用文件系統(tǒng)事件通知每天機(jī)制產(chǎn)生一個(gè)偽LRU列表,這個(gè)偽LRU列表有相對(duì)應(yīng)的文件生成的時(shí)間信息,當(dāng)一個(gè)客戶端生成文件時(shí),文件系統(tǒng)的時(shí)間通知探測(cè)文件的生成時(shí)間,并且將這個(gè)文件目錄路徑放進(jìn)最近的偽LRU列表中,通過(guò)查詢最古老的列表并檢查列表文件的時(shí)間戳從而找到被換出的文件。針對(duì)當(dāng)前文件系統(tǒng)的搜索的研究,研究者提出了各種搜索方法,基于索引結(jié)構(gòu)的搜索方法可以進(jìn)行快速的文件搜索,但是需要龐大的系統(tǒng)開(kāi)銷,降低了 I/o性能;基于采樣的方法不要額外的存儲(chǔ)和系統(tǒng)開(kāi)銷,但是當(dāng)采樣不準(zhǔn)確時(shí),降低了文件搜索的準(zhǔn)確性;基于語(yǔ)義搜索提供了良好的接口和查詢語(yǔ)言,但是沒(méi)有考慮下面搜索算法的性能,并且有時(shí)候也需要維護(hù)一致性的需求;基于事件通知的方法雖然相比索引結(jié)構(gòu)占用少量的存儲(chǔ)空間,并且具有很高的準(zhǔn)確率,但是當(dāng)文件規(guī)模十分龐大時(shí),仍需要很大的存儲(chǔ)空間;同時(shí)現(xiàn)有的研究算法都沒(méi)有考慮多元數(shù)據(jù)服務(wù)器的環(huán)境。
發(fā)明內(nèi)容
1、目的:本發(fā)明的主要目的是提供一種大規(guī)模文件系統(tǒng)的搜索方法,針對(duì)當(dāng)前搜索過(guò)程中的三個(gè)性能因素(搜索開(kāi)銷、準(zhǔn)確率、搜索速率)難以同時(shí)滿足的缺點(diǎn),它實(shí)現(xiàn)了基于目錄級(jí)可伸縮的BloomFilter位圖表,從而能夠占用少量空間進(jìn)行快速縮小搜索范圍,并且提高準(zhǔn)確率;針對(duì)多元數(shù)據(jù)服務(wù)器,利用BloomFilter結(jié)構(gòu),采用分布一聚合(Map-Reduce)架構(gòu)加快搜索速率。2、技術(shù)方案:為了達(dá)到實(shí)現(xiàn)上述方法,本發(fā)明的技術(shù)方案是這樣的:如圖一所示,本發(fā)明一種基于目錄級(jí)可伸縮的BloomFilter位圖表的并行文件搜索方法,該方法包括以下步驟:步驟101:通過(guò)BloomFilter將文件系統(tǒng)的樹(shù)形目錄空間轉(zhuǎn)化為扁平化結(jié)構(gòu);步驟102:當(dāng)樹(shù)形目錄空間轉(zhuǎn)化為扁平化結(jié)構(gòu)后,多元數(shù)據(jù)服務(wù)器并行化搜索;其中,步驟101,通過(guò)給樹(shù)形目錄空間中的每個(gè)節(jié)點(diǎn)的每一維屬性建立可伸縮的Bloom Filter位圖表,不同節(jié)點(diǎn)的相同維的位圖表通過(guò)鏈表鏈接起來(lái),將樹(shù)形目錄空間轉(zhuǎn)化為扁平化結(jié)構(gòu)。其中,步驟102,由于通過(guò)應(yīng)用BloomFilter將樹(shù)形目錄空間轉(zhuǎn)化為扁平化結(jié)構(gòu),去除了關(guān)鍵路徑,文件搜索請(qǐng)求可以在多元數(shù)據(jù)服務(wù)器上進(jìn)行并發(fā)搜索,提高了搜索效率。3、優(yōu)點(diǎn)及 功效:本發(fā)明所公布的基于目錄級(jí)可伸縮的BloomFilte位圖表的并行文件搜索方法,與現(xiàn)有的搜索技術(shù)相比,其主要的優(yōu)點(diǎn)是:(I)基于BloomFilter表的搜索,是一種輕量級(jí)的搜索方法,占用極少量的存儲(chǔ)空間,通過(guò)對(duì)Bloom Filter表的判斷,可以迅速縮小搜索范圍,并且達(dá)到了百分之百的準(zhǔn)確率;通過(guò)應(yīng)用BloomFilter,將隱藏在下層的元數(shù)據(jù)信息浮現(xiàn)到目錄空間的上層節(jié)點(diǎn);(2)基于BloomFilter表的目錄結(jié)構(gòu),將樹(shù)形的目錄結(jié)構(gòu)轉(zhuǎn)化為扁平的結(jié)構(gòu),消除了樹(shù)形結(jié)構(gòu)的關(guān)鍵路徑的瓶頸問(wèn)題,為多元數(shù)據(jù)服務(wù)器的并行化搜索提供了條件,極大的提高了搜索速率。
圖1為基于可伸縮的BloomFilter并行化搜索的整體框架圖;圖2為基于BloomFilter的目錄層結(jié)構(gòu)扁平化結(jié)構(gòu)轉(zhuǎn)化圖;圖3為多元數(shù)據(jù)服務(wù)器并行化搜索示意圖;圖4單一元數(shù)據(jù)服務(wù)器搜索流程圖;圖5多元數(shù)據(jù)服務(wù)器Map-Reduce處理流程圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)表達(dá)得更加清楚明白,下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明再作進(jìn)一步詳細(xì)的說(shuō)明。本發(fā)明一種基于目錄級(jí)可伸縮的BloomFilter位圖表的并行文件搜索方法,如圖1所示,該方法包括以下步驟:步驟101:通過(guò)Bloom Filter將文件系統(tǒng)的樹(shù)形目錄空間轉(zhuǎn)化為扁平化結(jié)構(gòu);在單元數(shù)據(jù)服務(wù)器上轉(zhuǎn)化樹(shù)形目錄空間(圖2),(201)給目錄空間中的每個(gè)節(jié)點(diǎn)中的每一維屬性都建立一個(gè)BloomFilter位圖表,通過(guò)BloomFilter位圖表中的O和I比特位的判斷,可以判斷本節(jié)點(diǎn)所包含的子節(jié)點(diǎn)的屬性。(202)通過(guò)BloomFilter將原本隱藏在下層節(jié)點(diǎn)的元數(shù)據(jù)屬性浮現(xiàn)在上層節(jié)點(diǎn),通過(guò)在上層節(jié)點(diǎn)迅速判斷目錄空間的分支是否滿足搜索條件,從而達(dá)到可以快速剪切目錄空間的效果,并且通過(guò)BloomFilter將樹(shù)形目錄空間轉(zhuǎn)化為扁平化結(jié)構(gòu),去除樹(shù)形結(jié)構(gòu)的關(guān)鍵路徑的限制。步驟102:當(dāng)樹(shù)形目錄空間轉(zhuǎn)化為扁平化結(jié)構(gòu)后,多元數(shù)據(jù)服務(wù)器并行化搜索;在多元數(shù)據(jù)服務(wù)器環(huán)境中(圖3),(301)客戶端將搜索請(qǐng)求通過(guò)分布一聚合(Map-Reduce)框架將搜索請(qǐng)求發(fā)送給所有的元數(shù)據(jù)服務(wù)器,客戶端在分布(Map)階段向元數(shù)據(jù)服務(wù)器集群群發(fā)搜索請(qǐng)求。(302)由于目錄樹(shù)空間采用Bloom Filter位圖表,將樹(shù)形結(jié)構(gòu)的目錄空間轉(zhuǎn)換為扁平化的結(jié)構(gòu),為并行化搜索提供了條件,通過(guò)Map-Reduce并行化框架將搜索請(qǐng)求群發(fā)到所有的元數(shù)據(jù)服務(wù)器上,并行化搜索提高了搜索效率。由上述可看出本發(fā)明的主要思想是,首先通過(guò)(101)將元數(shù)據(jù)服務(wù)器中的樹(shù)形目錄空間轉(zhuǎn)化為扁平化結(jié)構(gòu),將隱藏在底層的元數(shù)據(jù)屬性值浮現(xiàn)在目錄空間中的上層節(jié)點(diǎn),并且通過(guò)Bloom Filter可以達(dá)到迅速縮小搜索范圍,然后(102)由于樹(shù)形目錄空間被轉(zhuǎn)化成扁平化結(jié)構(gòu),去除了樹(shù)形結(jié)構(gòu)中的關(guān)鍵路徑的限制,使多元數(shù)據(jù)服務(wù)器并行化搜索成為可能,加快文件搜索速度,提高了搜索性能。本發(fā)明在軟件上,對(duì)操作系統(tǒng)要求為L(zhǎng)inux系統(tǒng),運(yùn)行在Linux機(jī)群中提供文件10服務(wù)的軟件之上,如PVFS (Parallel Virtual File System)并行文件系統(tǒng);并且在該文件系統(tǒng)中,配置多臺(tái)服務(wù)器,并且要求元數(shù)據(jù)服務(wù)器有多臺(tái),其他為數(shù)據(jù)服務(wù)器。下面詳細(xì)說(shuō)明文件搜索流程:一臺(tái)元數(shù)據(jù)服務(wù)器上面的搜索操作( 圖4),首先(401)元數(shù)據(jù)服務(wù)器接收客戶端發(fā)來(lái)的請(qǐng)求,然后(402)在當(dāng)前目錄節(jié)點(diǎn)上面的元數(shù)據(jù)屬性的BloomFilter位圖表上進(jìn)行搜索,接著(403)通過(guò)BloomFilter位圖表判斷當(dāng)前目錄節(jié)點(diǎn)下的分支是否滿足搜索條件,如果滿足搜索條件(405),繼續(xù)搜索下層分支目錄節(jié)點(diǎn)的BloomFilter進(jìn)行判斷,如果不滿足搜索條件(404),則將當(dāng)前分支剪切,搜索目錄樹(shù)中同一層次的其它分支,最后(406)得到滿足條件的數(shù)據(jù)將其返回給客戶端。在多臺(tái)元數(shù)據(jù)服務(wù)器并行化搜索(圖5),利用Map-Reduce管理并行化搜索,首先(501)客戶端利用第一次Map將請(qǐng)求發(fā)送給所有的元數(shù)據(jù)服務(wù)器,在多元數(shù)據(jù)服務(wù)器,每臺(tái)服務(wù)器通過(guò)圖4流程的搜索,然后(502)利用第一次聚合(Reduce)階段返回給客戶端滿足條件的BloomFilter位圖表,接著(503)客戶端將第一次的分布一聚合(Map — Reduce)的后分析的結(jié)果作為第二次分布(Map)發(fā)送給滿足條件的元數(shù)據(jù)服務(wù)器,經(jīng)過(guò)圖4流程的搜索,在第二次Reduce階段返回給客戶端之前,進(jìn)行數(shù)據(jù)量的判斷(504),如果數(shù)據(jù)量小,則第二次聚合(Reduce)階段將最終結(jié)果返回給客戶端,如果數(shù)據(jù)量大,則第二次聚合(Reduce)階段將一部分屬性返回給客戶端,再接著,當(dāng)數(shù)據(jù)量大的情況,客戶端經(jīng)過(guò)對(duì)第二次聚合(Reduce)階段的數(shù)據(jù)分析,經(jīng)過(guò)第三次分布(Map)階段將請(qǐng)求發(fā)送給滿足條件的元數(shù)據(jù)服務(wù)器中,最終得到搜索結(jié)果,最后(506)將最終結(jié)果返回給客戶端。應(yīng)說(shuō)明的是:以上實(shí)施例僅用以說(shuō)明而非限制本發(fā)明的技術(shù)方案,盡管參照上述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:依然可以對(duì)本發(fā)明進(jìn)行修改或者等同替換,而不脫離本發(fā)明的精神和范圍的任何修改或局部替換,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范 圍當(dāng)中。
權(quán)利要求
1.一種基于目錄級(jí)可伸縮的Bloom Filter位圖表的并行文件搜索方法,其特征在于: (1)在單臺(tái)元數(shù)據(jù)服務(wù)器中,基于目錄級(jí)可伸縮的BloomFilter位圖表的文件搜索方法縮小搜索范圍 首先,基于Bloom Filter位圖表快速搜索技術(shù),建立基于目錄級(jí)可伸縮的BloomFilter位圖表的文件搜索方法,通過(guò)對(duì)樹(shù)形目錄結(jié)構(gòu)中的目錄節(jié)點(diǎn)的每一維屬性建立可伸縮的Bloom Filter位圖表,利用位圖表中的O和I比特位來(lái)管理下層目錄是否存在所要搜索的文件,達(dá)到通過(guò)占用少量的存儲(chǔ)空間,提供快速而準(zhǔn)確的文件搜索方法,將文件樹(shù)形目錄結(jié)構(gòu)轉(zhuǎn)變成扁平化結(jié)構(gòu),文件的屬性值不再隱藏在底層;然后,將每一維文件屬性的基于目錄級(jí)可伸縮的Bloom Filter位圖表通過(guò)基于鏈表的技術(shù)組織起來(lái),形成一個(gè)鏈表形式的目錄級(jí)可伸縮的Bloom Filter位圖表;最后,針對(duì)多維屬性中的每一維屬性都組織成上述描述的鏈表形式,將整個(gè)樹(shù)形的目錄空間轉(zhuǎn)變成扁平化結(jié)構(gòu),通過(guò)基于目錄級(jí)可伸縮的Bloom Filter位圖表可以快速準(zhǔn)確的在目錄結(jié)構(gòu)中縮小搜索范圍。
(2)在多元數(shù)據(jù)服務(wù)器中,進(jìn)行并行化快速搜索 在多元數(shù)據(jù)服務(wù)器環(huán)境中,由于樹(shù)形目錄空間轉(zhuǎn)化為扁平化結(jié)構(gòu),首先,基于采用類似于Map-Reduce框架,建立多元數(shù)據(jù)服務(wù)器并行化搜索算法,達(dá)到多元數(shù)據(jù)服務(wù)器文件系統(tǒng)快速搜索,極大的提高了搜索速率;然后,針對(duì)Top-K搜索,將用戶的搜索請(qǐng)求廣播到所有的元數(shù)據(jù)服務(wù)器上,多個(gè)元數(shù)據(jù)服務(wù)器同時(shí)進(jìn)行搜索,用戶搜素請(qǐng)求的數(shù)據(jù)量較小時(shí),通過(guò)兩次Map和Reduce的操作迭代過(guò)程可以到搜索結(jié)果,第一次Map和Reduce階段返回目錄結(jié)構(gòu)中各分支滿足搜索條件的位圖表的部分給客戶端,第二次Map和Reduce階段通過(guò)輸入第一次結(jié)果,返回滿足搜索條件的具體的屬性給客戶端,當(dāng)用戶搜索請(qǐng)求的數(shù)據(jù)量大時(shí),通過(guò)三次Map和Reduce的迭代操作過(guò)程可以得到搜索過(guò)程,在第二次Map和Reduce階段由于數(shù)據(jù)量大,為了減少系統(tǒng)開(kāi)銷先返回屬性值到客戶端,在客戶端處理后,作為第三次Map和Reduce的輸入,第三次Ma p和Reduce后,返回屬性到客戶端;最后,針對(duì)Range搜索,通過(guò)一次Map和Reduce的操作過(guò)程可以得到用戶的請(qǐng)求結(jié)果,在Map階段獲得了目錄結(jié)構(gòu)各分支的滿足搜索條件屬性值的范圍,在Reduce階段在客戶端得到滿足搜索條件的屬性范圍。
全文摘要
本發(fā)明針對(duì)當(dāng)前大規(guī)模文件系統(tǒng)搜索存在準(zhǔn)確率低下、額外開(kāi)銷大等問(wèn)題,采用輕量級(jí)的存儲(chǔ)技術(shù),公開(kāi)了一種基于目錄級(jí)可伸縮的Bloom Filter位圖表的并行文件搜索方法。通過(guò)基于目錄級(jí)可伸縮的Bloom Filter位圖表的搜索算法,快速縮小了目錄結(jié)構(gòu)的搜索范圍,位圖表只占用少量的系統(tǒng)資源,可以快速得縮小目錄結(jié)構(gòu)的搜索范圍,提高了系統(tǒng)搜索性能?;谀夸浖?jí)可伸縮的Bloom Filter位圖表的搜索算法,樹(shù)形目錄結(jié)構(gòu)轉(zhuǎn)化扁平化結(jié)構(gòu),為并行化搜索提供了基礎(chǔ),通過(guò)基于Map-Reduce框架達(dá)到并行化搜索,大大加快了搜索速率。根據(jù)應(yīng)用需求,該方法克服了搜索準(zhǔn)確率低、額外負(fù)載開(kāi)銷大技術(shù)難題,同時(shí)兼顧了高準(zhǔn)確率和低開(kāi)銷的優(yōu)點(diǎn)。因此,本發(fā)明具有高準(zhǔn)確率和低額外負(fù)載開(kāi)銷,廣闊的應(yīng)用前景和可產(chǎn)生顯著的經(jīng)濟(jì)效益等特色。
文檔編號(hào)G06F17/30GK103226608SQ20131015713
公開(kāi)日2013年7月31日 申請(qǐng)日期2013年4月28日 優(yōu)先權(quán)日2013年4月28日
發(fā)明者肖利民, 霍志勝, 李秀橋, 謝柯, 阮利 申請(qǐng)人:北京航空航天大學(xué)