如何在存儲(chǔ)中成功使用搜索技術(shù)
傳統(tǒng)文件系統(tǒng)效率不高
幾乎所有的文件存儲(chǔ)系統(tǒng)都是基于文件系統(tǒng)的,文件系統(tǒng)與操作系統(tǒng)是密不可分的整體。文件系統(tǒng)由文件和目錄組成。數(shù)據(jù)按其內(nèi)容、結(jié)構(gòu)和用途組成若干命名的文件。目錄構(gòu)建了文件系統(tǒng)的層次化化結(jié)構(gòu)。用戶創(chuàng)建子層次以便對文件進(jìn)行分類。文件系統(tǒng)可以有效地組織文件,一個(gè)目錄下的子目錄或者文件的名字是惟一的,這就保證了文件的全路徑名稱不會(huì)同時(shí)指向兩個(gè)或者更多的子目錄或者文件。
根據(jù)什么來建立層次結(jié)構(gòu)并沒有一個(gè)很有效的方法,在考慮文件安全和文件共享時(shí),層次結(jié)構(gòu)的缺陷更加明顯。比如,一個(gè)文件在網(wǎng)絡(luò)上進(jìn)行共享時(shí),會(huì)把這個(gè)文件復(fù)制到一個(gè)公共目錄下面,同時(shí)設(shè)定好公共目錄的訪問權(quán)限,這樣一個(gè)文件就會(huì)在兩個(gè)不同的層次結(jié)構(gòu)中有著兩份拷貝,會(huì)給文件的管理帶來很大不便,特別是在文件的數(shù)量不斷增加的時(shí)候。
另外,層次化結(jié)構(gòu)使得文件訪問的效率不高。比如,目錄隱藏了它包含的內(nèi)容,并且目錄下可能還有一層又一層的子目錄,用戶很難知道一個(gè)目錄下面到底有什么東西,訪問某個(gè)文件必須通過層次型的目錄樹結(jié)構(gòu)到達(dá)文件的保存位置,如果不知道文件保存位置,就必須遍歷整個(gè)目錄或使用操作系統(tǒng)的搜索功能,而操作系統(tǒng)僅能依靠文件名來檢索和查找數(shù)據(jù)。
語義文件系統(tǒng)高效可靠
在過去十幾年中,文件系統(tǒng)技術(shù)并未進(jìn)行大的變革,而新數(shù)據(jù)類型(如多媒體、電子郵件)不斷出現(xiàn),包括了豐富的元數(shù)據(jù)。沒有給予元數(shù)據(jù)信息足夠重要的位置,存儲(chǔ)在文件系統(tǒng)中的數(shù)據(jù)都缺乏語義支持,因此存儲(chǔ)系統(tǒng)不能提供高層的基于語義的關(guān)聯(lián)式數(shù)據(jù)存取。正因?yàn)檎J(rèn)識到現(xiàn)有文件系統(tǒng)的不足,學(xué)術(shù)界和工業(yè)界做了大量工作,研究如何提高文件的管理和搜索效率。其中,最重要的研究成果是語義文件系統(tǒng),它可以充分利用文件的元數(shù)據(jù)信息進(jìn)行文件瀏覽與搜索。
語義文件系統(tǒng)利用元數(shù)據(jù)抽取工具獲取更多的元數(shù)據(jù),記錄用戶活動(dòng),并采用手工或其他方法對文件進(jìn)行標(biāo)注,最后將這些信息結(jié)合起來實(shí)現(xiàn)統(tǒng)一元數(shù)據(jù)。通過元數(shù)據(jù)信息在非結(jié)構(gòu)化文件和數(shù)據(jù)庫數(shù)據(jù)之間建立起鏈接,存儲(chǔ)系統(tǒng)可以實(shí)現(xiàn)快速的基于文件屬性的文件系統(tǒng)訪問。
語義文件系統(tǒng)提供新的規(guī)則,即相關(guān)性的訪問方法。相關(guān)性訪問是基于內(nèi)容訪問的特性,供一種靈活的關(guān)聯(lián)方式來存取文件。文件屬性由轉(zhuǎn)換器從特定類型文件中自動(dòng)抽取,表達(dá)為 Hkey和Valuei對。同時(shí),語義文件系統(tǒng)又引入了虛擬文件夾的概念。在虛擬文件夾中,一個(gè)使用者可以進(jìn)行基于屬性的搜索,系統(tǒng)在結(jié)果集中創(chuàng)建一組文件的符號連接,提供跨越目錄層次的文件存取通路。比如WinFS和Spotlight的虛擬文件夾,虛擬文件夾可采用XML格式的文本文件進(jìn)行表示,內(nèi)容是對數(shù)據(jù)庫進(jìn)行查詢后返回的結(jié)果組成的列表,包含了指向符合某種規(guī)則的文件或文件夾的鏈接。在占用更多存儲(chǔ)空間的情況下,語義文件系統(tǒng)可輕易實(shí)現(xiàn)一個(gè)文件同時(shí)放在幾個(gè)不同的目錄層次下面。
語義文件系統(tǒng)可對文件進(jìn)行高效分類。比如,基于用戶空間文件系統(tǒng)(Filesystem in Userspace,F(xiàn)USE)的TagFS采用智能標(biāo)簽(Smart Tagging)機(jī)制,可以動(dòng)態(tài)地讓數(shù)據(jù)文件具備特定的標(biāo)簽,而加了標(biāo)簽的數(shù)據(jù)文件能依據(jù)用戶的喜好與意圖分類,并依據(jù)權(quán)重排序后呈現(xiàn)。
語義文件系統(tǒng)便于用戶對數(shù)據(jù)文件進(jìn)行高效地搜索。邏輯文件系統(tǒng) (LISFS)使用一個(gè)數(shù)據(jù)庫為系統(tǒng)的文件提供搜索功能。數(shù)據(jù)庫表由從關(guān)鍵詞到對象的映射組成。目錄的內(nèi)容是一個(gè)符合查詢條件的對象集。蘋果計(jì)算機(jī)的Spotlight是一個(gè)元數(shù)據(jù)和內(nèi)容索引系統(tǒng),并集成在HFS文件系統(tǒng)中。WinFS的元數(shù)據(jù)被儲(chǔ)存在一個(gè)數(shù)據(jù)庫中,而Spotlight的索引內(nèi)容和搜索結(jié)果也保存在數(shù)據(jù)庫中。Linux也有一個(gè)與Spotlight類似的系統(tǒng),稱為Beagle。Beagle利用一個(gè)內(nèi)核中的文件系統(tǒng)事件服務(wù)Inotify,為新文件類型提供一個(gè)即插即用的基礎(chǔ)架構(gòu)。
集成數(shù)據(jù)管理與搜索
盡管語義文件系統(tǒng)在文件的存儲(chǔ)和檢索方面做了很多優(yōu)化工作,相關(guān)方法也獲得了廣泛認(rèn)可,但是其層次化的本質(zhì)并沒有改變,語義文件系統(tǒng)只是層次化文件系統(tǒng)的重要補(bǔ)充技術(shù)。
一種新思想是把文件存儲(chǔ)與Web結(jié)合起來,Web通過加入鏈接來傳達(dá)信息。一般情況下,在Web和超文本文件中,鏈接可以讓使用者從一個(gè)文件自動(dòng)跳轉(zhuǎn)到另一個(gè)文件。鏈接可以通過語義Web進(jìn)行擴(kuò)展。
為了使語義Web成為可能,W3C制訂了各項(xiàng)標(biāo)準(zhǔn),為HTML和HTTP在某種程度上的標(biāo)準(zhǔn)化提供一個(gè)可行的途徑。語義Web標(biāo)準(zhǔn)組分成不同層次,URI和Unicode在底部,XML、名字空間和樣式作為自描述文件層在中間,RDF在頂部。RDF為各種應(yīng)用提供了一個(gè)通用的元數(shù)據(jù)框架。
此外,語義Web增加了對內(nèi)容進(jìn)行處理的能力,并引入了另外兩個(gè)概念,即知識導(dǎo)航員和聯(lián)邦知識或數(shù)據(jù)庫。因此,語義Web可能成為一個(gè)容易獲得的萬能圖書館。
如果使文件存儲(chǔ)變成Web的一部分,文件的存儲(chǔ)和搜索可能會(huì)產(chǎn)生一次變革。基于這種思想,我們正在開發(fā)語義網(wǎng)絡(luò)存儲(chǔ)(Semantic Network Storage,SNStor)系統(tǒng),目的是提供豐富的元數(shù)據(jù)結(jié)構(gòu)和構(gòu)建一個(gè)在線文件系統(tǒng)。為了解決基于Web的文件存儲(chǔ)系統(tǒng)的性能問題,我們準(zhǔn)備采用更快的數(shù)據(jù)結(jié)構(gòu)--平衡樹來取代多種鏈接列表,還要采用壓縮文件,才能實(shí)現(xiàn)高效存儲(chǔ)。此外,我們還在研究使用容錯(cuò)數(shù)據(jù)結(jié)構(gòu),以增加存儲(chǔ)的可靠性和可用性,如開發(fā)一致性檢查程序以提高可用性。
文件數(shù)量的高速增長預(yù)示著,市場對高效率文件存儲(chǔ)系統(tǒng)的需求會(huì)急劇增長。那些可以將數(shù)據(jù)管理和搜索功能集成在一起的文件存儲(chǔ)系統(tǒng),可以提高存儲(chǔ)效率,并減少存儲(chǔ)成本,一定會(huì)受到用戶的熱烈歡迎。
評論