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