摘 要:數據存儲問題是SaaS模式下多租戶數據庫的重要問題,現有的基于層次目錄樹的數據存儲系統已不能滿足多租戶數據庫的大規模數據集和復雜的元數據查詢,本文提出一種語義感知元數據組織,稱為SmartStore,即利用信息檢索工具將文件元數據的語義和相關文件合并成語義感知分組。本文首先介紹了SmartStore的功能目標,然后對元數據存儲表進行了設計和分析,最后詳細討論了如何通過版本控制確保一致性。
關鍵詞:數據存儲;元數據;語義感知;SmartStore
中圖分類號:TP3 文獻標識碼:A 文章編號:1674-7712 (2014) 20-0000-02
目前廣泛應用于傳統文件系統中基于元數據管理的目錄樹[1]已不能滿足多租戶數據庫的大規模數據集和復雜的元數據查詢,新的元數據組織方案需要滿足兩個關鍵目標:(1)低延遲服務大量并發訪問;(2)提供靈活的I/O接口,允許用戶執行高級元數據查詢。根據這兩個關鍵目標引入一個語義感知元數據組織,稱為智能存儲(SmartStore)[2],即利用語義關聯使用戶能有效的進行復雜查詢,且能在應用程序中提高系統性能。
一、SmartStore
SmartStore的基本思想是,文件根據其元數據語義被分組和存儲,而不是目錄命名空間,元數據語義可以將高度相關的聚合文件分成組,查詢和其他相關操作可在一個或少數這樣的組完成,而不是在一個目錄命名空間里幾乎所有存儲節點線性搜索。另一方面,語義分組可以提高系統的可伸縮性,可以避免訪問瓶頸和單點失敗,因為它呈現的元數據組織充分分散,大多數操作,如插入、刪除和查詢,可以在一個給定的組執行。如圖1所示。
(一)用戶視圖
SmartStore的查詢工作如下:最初,用戶給一個隨機選擇的存儲單元發送一個查詢請求,稱為home單元,然后檢索語義R樹定位相應的R樹節點。對于點查詢,home單元檢索本地存儲的Bloom過濾器[3],對于復雜查詢,home單元通過查詢MBR(最小邊界矩形[4])來確定查詢服務器里的查詢文件成員,獲取查詢結果后,home單元將它們返回給用戶。
(二)系統視圖
SmartStore最重要的組件是有效利用元數據語義進行語義分組,如利用文件物理和行為屬性將文件分類成迭代分組,SmartStore通過檢索這些屬性標識不同文件之間的相關性,將相關文件定位到群體,然后將所有分組組織到一個語義R樹中,這些分組可能駐留在多個元數據服務器中。通過將相關元數據分組,SmartStore利用他們的親和力來提高查詢性能。
(三)配置相匹配的查詢模式
語義R樹建造的目的是通過分析語義相關的元數據屬性為用戶匹配復雜查詢模式。但在現實應用程序中,查詢屬性往往是不可預測的,即一個查詢請求可能探測到任意維元數據屬性的子集。為了有效地支持屬性不可預測的復雜查詢,可以開發一個自動配置技術,自適應地構造一個或多個語義R樹來提高查詢的準確性和效率。每一個被關聯到一個多維屬性的不同組合的R樹可以提供更好的查詢性能,但是會需要更多的存儲空間,自動配置技術必須權衡存儲空間和查詢性能之間的優化。因此我們需要配置一個或多個語義R樹自適應滿足復雜查詢。
二、通過版本控制確保一致性
在SmartStore中,最新的版本附加到其相關副本可以暫時維持聚合變化,但是沒有更新相應的原始副本,該方法消除了索引上許多小的、隨機的和頻繁的訪問,并且已廣泛應用在大多數版本控制文件系統中[5]。下面首先介紹標準的多版本管理方案,然后改進解決方案獲得空間效率、支持快速更新。
(一)多版本管理
為了保持語義相關性和局部性,SmartStore為每組創建一個版本,將已經復制到其他索引單元的版本表示為第一級索引單元。SmartStore從ti-1到ti發送原始索引單元的副本到其索引單元,將聚合更新后的第ti個版本附加到相關索引單元,如圖2所示,這些更新包括元數據的插入、刪除和修改。
(二)空間效率的改進
SmartStore利用空間Bloom過濾器提高多版本計劃的空間效率來減少空間開銷和提供對陳舊版本的快速識別。圖3顯示了改進版本控制的結構,與圖2所示的標準版本相比,改進的版本控制結構通過部署兩級Bloom過濾器進行多版本管理和支持快速查詢服務。第一級Bloom過濾器是一種使用計數器的計數Bloom過濾器[6]支持刪除操作,如果所有的計數器是非零時,意味著有陳舊的新到達的數據副本,然后更新數據探針VBFs確定哪個版本包含了進一步促進更新的陳舊副本,一旦發現陳舊版本,立即用新數據將其更新。如果第一級計數Bloom過濾器顯示更新后的數據沒有陳舊的副本,直接將它們插入到根據時間序列排列的版本中。
此外,當一個數據項從一個版本中被刪除,系統會減少兩級Bloom過濾器相應的計數器。如果增量更新版本重新配置到基線版本中,所有元數據被移入到更新的版本中,因此通過所有計數器設置為零初始化二級Bloom過濾器。當執行可能包含最新數據的查詢操作時,通過第一個散列查詢項目將點查詢簡化到Bloom過濾器上,然后檢查增量更新版本。
改進的方案需要的空間開銷要小得多,主要原因是前者在二級Bloom過濾器快速查詢的幫助下,在之前配置到相應的基線版本的增量版本中維護更新數據的一個副本,而后者只是積累時間序列上的更新版本。此外,盡管Bloom過濾器在改進方案時可能增加空間開銷,但相比于保留一個副本的益處是微不足道的。
三、結束語
本文對多租戶數據庫的元數據組織提出了一種新的范式,稱為SmartStore,利用文件語義信息提供有效的和可擴展的復雜查詢,同時提高系統的可伸縮性和功能需求。SmartStore的優勢在于它匹配實際數據分布和邏輯語義關聯的物理布局,這樣復雜查詢可以被成功地服務在一個或少量的存儲單元。SmartStore可以非常有效地支持復雜查詢,如范圍查詢和top-k查詢,這可能會在多租戶數據庫系統中變得越來越重要。
參考文獻:
[1]何海棠,朱曉輝,陳蘇蓉.SaaS模式下多租戶數據庫的研究[J].鄭州鐵路職業技術學院學報,2012.
[2]Gifford D K,Jouvelot P.Semantic file systems[J].ACM Symposium on Operating Systems Principles,1991.
[3]韓德志,劉昊.智能存儲及管理技術探析[J].計算機應用研究,2005.
[4]Guttman A.R-Trees:A dynamic index structure for spatial searching[J].Proc of the 1984 ACM SIGMOD Int’I Conf on the Management of Data. Boston,1984.
[5]Bloom,BH.Space/time trade-offs in hash coding with allow-able errors[J].Communications of the ACM,1970.
[6]熊安萍,葛軍,鄒洋.Lustre文件系統中范圍鎖機制的應用研究[J].重慶郵電大學學報,2011.
[作者簡介]李婷婷(1989.10-),女,陜西咸陽人,2012級計算機技術專業,碩士研究生,主要從事管理信息系統研究;劉世裕(1989.04-),男,陜西榆林人,主要從事工程監督管理,助理工程師,本科。