專利名稱:應(yīng)用于搜索引擎的海量文件異步索引及讀寫方法
技術(shù)領(lǐng)域:
本發(fā)明涉及應(yīng)用于搜索引擎的海量文件異步索引及讀寫方法,以索引和讀寫分布式文件系統(tǒng)中的文件,屬于信息技術(shù)領(lǐng)域。
背景技術(shù):
互聯(lián)網(wǎng)數(shù)據(jù)正在爆炸性增長(zhǎng),產(chǎn)生了海量數(shù)據(jù)。海量數(shù)據(jù)按屬性可以分類成結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)等。非結(jié)構(gòu)化數(shù)據(jù)包括圖片、網(wǎng)頁、文本等文件,這里海量文件是海量非結(jié)構(gòu)化數(shù)據(jù)。海量文件常存儲(chǔ)于分布式文件系統(tǒng)中,分布式文件系統(tǒng)是采用集群的方式或者網(wǎng)絡(luò)的方式存儲(chǔ)、存取的方式形成的文件系統(tǒng)。流行的分布式文件系統(tǒng)有HDFS (HadoopDistributed File System)、MogileFS (Mogile File System) > NAS (Network AttachedStorage)、NFS (Network File System) > AFS (Andrew Distributed File)、MooseFS (MooseFile System)> pNFS (Parallel NFS)、GoogleFS(Google File System)等。在分布式文件系統(tǒng)中,為了加快文件讀寫速度,尤其是讀的速度,在海量文件中要建立“索引”,建立索引的算法本質(zhì)上是一種排序算法,目前主要的算法有二叉樹(B-樹、B+樹)、哈希排序等。在一個(gè)分布式文件系統(tǒng)中,采用索引的方法可以提高文件讀的速度,但會(huì)降低寫的速度,因?yàn)闉榱藢?shí)現(xiàn)索引的動(dòng)態(tài)更新,寫入或更新文件時(shí)需要同時(shí)更新索引,這必然加重了文件寫的負(fù)擔(dān)。在搜索引擎系統(tǒng) 中,很難實(shí)現(xiàn)實(shí)時(shí)搜索的原因是無法使獲取的信息(文件)實(shí)時(shí)進(jìn)入能夠被檢索的文件系統(tǒng)索引中,或不能為這些新獲得的文件建立動(dòng)態(tài)索引。為了平衡海量數(shù)據(jù)讀寫性能,以提高應(yīng)用軟件的總體性能,本發(fā)明涉及應(yīng)用于搜索引擎的海量文件異步索引及讀寫方法,該方法使文件讀寫和索引分離,實(shí)現(xiàn)快速寫和周全讀,可應(yīng)用于搜索引擎等系統(tǒng),以提高搜索引擎的時(shí)效性。
發(fā)明內(nèi)容
本發(fā)明“應(yīng)用于搜索引擎的海量文件異步索引及讀寫方法”分別為基于文件緩沖池的寫方法、文件異步索引方法、周全讀方法。下面詳細(xì)介紹應(yīng)用于搜索引擎的海量文件異步索引及讀寫結(jié)構(gòu)和各個(gè)組成部分的內(nèi)容。(I)本發(fā)明形成的文件系統(tǒng)結(jié)構(gòu)為了實(shí)現(xiàn)本發(fā)明“應(yīng)用于搜索引擎的海量文件異步索引及讀寫方法”,要求對(duì)現(xiàn)有的分布式文件系統(tǒng)進(jìn)行修改,本發(fā)明形成的文件系統(tǒng)結(jié)構(gòu)如
圖1所示。具體修改內(nèi)容包括如下: 把本發(fā)明形成的文件系統(tǒng)中的文件分成“有索引區(qū)”和“無索引區(qū)”,相對(duì)應(yīng),兩部分的文件稱為“有索引區(qū)文件”和“無索引區(qū)文件”。 本發(fā)明形成的文件系統(tǒng)中,建索引部分只對(duì)無索引區(qū)文件建索引,建索引過程和讀寫操作沒有直接的相關(guān)聯(lián)關(guān)系,可并行執(zhí)行,被建完的索引中不一定包括了所有的文件信息,所以建索引的過程稱為“異步索引計(jì)算”。 本發(fā)明形成的文件系統(tǒng)適合搜索引擎應(yīng)用,因?yàn)樵谖募到y(tǒng)中沒有文件更新操作,只有文件增加和刪除操作。文件更新操作可采用采用刪除舊文件,增加新文件來代替,在整個(gè)文件更新、刪除操作過程中,不會(huì)詢問用戶,和普通的更新、刪除操作有很大的區(qū)別,所以本發(fā)明只適用于搜索弓I擎應(yīng)用。 本發(fā)明形成的文件系統(tǒng)的寫操作只能把文件寫入無索引區(qū)(也稱為文件緩沖池),不能直接寫入有索引區(qū)。寫操作不含建文件索引過程。(2)本發(fā)明的三個(gè)組成部分本發(fā)明“應(yīng)用于搜索引擎的海量文件異步索引及讀寫方法”三個(gè)組成部分如圖2所示,它由建索引模塊、讀模塊、寫模塊三部分組成。三個(gè)組成部分分別由基于文件緩沖池的寫方法、文件異步索引方法、周全讀方法形成。以下就各模塊及其方法作詳細(xì)說明。 寫模塊:該模塊由基于文件緩沖池的寫方法形成。該寫方法把應(yīng)用程序需要寫入的文件寫到無索引區(qū)(從寫操作的角度看,無索引區(qū)就是一個(gè)文件緩沖池)。 建索引模塊:該模塊由文件異步索引方法形成,該模塊對(duì)無索引區(qū)的文件建立分文件索引并把分文件索引信息插入主文件索引中。同時(shí)把已建立索引的無索引區(qū)文件更新或加入到有索引區(qū)(在邏輯上標(biāo)識(shí)鏈接,不需要物理拷貝)。 讀模塊:該模塊由周全讀方法形成,該模塊首先讀文件緩沖池中的文件,在未找到文件的前提下,讀主文件索引收錄的文件。(3)本發(fā)明的三個(gè)主要方法及其特點(diǎn)本發(fā)明涉及三 個(gè)方法:基于文件緩沖池的寫方法、文件異步索引方法、周全讀方法;下面詳細(xì)說明三種方法及其特點(diǎn): 基于文件緩沖池的寫方法:該方法把應(yīng)用程序需要寫入的文件寫到文件緩沖池,不直接寫入主文件索引收錄的文件中。該方法的特點(diǎn)是寫入特別快,有隨機(jī)寫的特點(diǎn)。 文件異步索引方法:本發(fā)明形成的文件系統(tǒng)包含主文件索引和分文件索引兩部分,主文件索引必須通過分文件索引的插入形成。和文件同步索引方法比較,文件異步索引方法的特點(diǎn)是:不影響讀寫操作,可以和讀寫操作同時(shí)進(jìn)行(可以并行操作),有邊讀寫邊建索引的特點(diǎn),但由于是異步進(jìn)行,索引中可能不包含文件系統(tǒng)中的全部文件。 周全讀方法:本發(fā)明形成的文件系統(tǒng)的文件分成兩部分:無索引區(qū)文件和有索引區(qū)文件,讀寫文件首先在無索引區(qū)文件中進(jìn)行,因?yàn)闊o索引區(qū)文件是最新的文件,在無索引區(qū)中未找到文件的前提下,讀有索引區(qū)文件,由于讀的時(shí)候考慮需要周全,所以稱為周全讀。周全讀方法的特點(diǎn)是,考慮多個(gè)區(qū)域的讀:無索引區(qū)文件讀和有索引區(qū)文件讀;和全索弓I文件讀比,性能會(huì)降低,但和隨機(jī)讀比較,性能會(huì)好很多。為了更加明確本發(fā)明涉及三種方法的特點(diǎn),表I采用比較的方法,給出了本發(fā)明涉及的三種方法的特點(diǎn)。表I本發(fā)明涉及三種方法的特點(diǎn)
權(quán)利要求
1.本發(fā)明涉及應(yīng)用于搜索引擎的海量文件異步索引及讀寫方法,該發(fā)明應(yīng)用于搜索引擎的海量文件系統(tǒng)中,涉及三個(gè)方法:基于文件緩沖池的寫方法、文件異步索引方法、周全讀方法。
本發(fā)明的主要特點(diǎn)有: (1)隨機(jī)寫特點(diǎn):文件的寫操作是把文件寫入文件緩沖池,而不是寫入最終目的位置,能實(shí)現(xiàn)隨機(jī)寫的能力。
(2)邊讀寫邊建索引特點(diǎn):建文件索引方法分成兩部分:分文件索引和主文件索引;建文件索引和文件系統(tǒng)的讀寫操作過程不相關(guān),可以邊讀寫邊建索引。
(3)全部文件可讀特點(diǎn):文件系統(tǒng)的讀操作分成兩部分:文件緩沖區(qū)讀和主文件索引區(qū)文件讀,可以實(shí)現(xiàn)全部文件可讀。
全文摘要
本發(fā)明涉及應(yīng)用于搜索引擎的海量文件異步索引及讀寫方法,該發(fā)明應(yīng)用于搜索引擎的海量文件系統(tǒng),涉及基于文件緩沖池的寫方法、文件異步索引方法、周全讀方法。具有文件隨機(jī)寫、邊讀寫邊建索引、全部文件可讀三個(gè)特點(diǎn),同時(shí)能實(shí)現(xiàn)適當(dāng)?shù)淖x寫性能,對(duì)解決搜索引擎的實(shí)時(shí)性起到重要的作用。
文檔編號(hào)G06F12/08GK103106233SQ20121043140
公開日2013年5月15日 申請(qǐng)日期2012年11月2日 優(yōu)先權(quán)日2012年11月2日
發(fā)明者陸月明, 孫松林, 劉浩 申請(qǐng)人:北京郵電大學(xué)