【技術實現(xiàn)步驟摘要】
本專利技術屬于計算機存儲系統(tǒng)的數(shù)據(jù)存取方法,特別涉及一種對象存儲設備中的對象查找方法。
技術介紹
在對象存儲設備中,每個對象都有一個唯一的對象標志符ObjectID,由于沒有目錄層次信息,所有的對象標志符構(gòu)成了一個平面的名字空間。目前,還沒有設立對象接口的磁盤,一種普遍的做法是用通用文件系統(tǒng)(如Ext2,Ext3)來對對象進行組織和管理:一個對象被映射成為一個文件,設備上的所有對象,位于文件系統(tǒng)中的一個大目錄下面。因此,根據(jù)對象標志符定位對象索引節(jié)點的對象查找過程,被映射成為文件系統(tǒng)下由文件名找文件索引節(jié)點的過程,并且這一過程包括兩個階段:(1)從磁盤讀取相應目錄文件塊到內(nèi)存;(2)在相應內(nèi)存塊中,進行匹配查找。然而,傳統(tǒng)文件系統(tǒng)在大目錄下根據(jù)文件名查找文件索引節(jié)點信息時,會出現(xiàn)兩個問題:一是目錄文件需要多次讀盤,二是查找子目錄項的線性查找算法效率低下(它的開銷為O(n))。一個對象存儲設備可能包含2128個對象,面對如此巨大的平面名字空間,用傳統(tǒng)文件系統(tǒng)下的方法查找對象時,上述問題將尤其突出,以至降低了對象查找操作的效率,從而嚴重影響了對象創(chuàng)建,對象刪除和對象讀寫操作的性能。有鑒于此,如何設計一種高效的對象查找方法,從而加快對象存儲設備上對象相關操作的性能顯得及其重要。
技術實現(xiàn)思路
-->本專利技術提出一種對象存儲設備中的對象查找方法,解決現(xiàn)有對象存儲設備上對象查找方法存在需要多次讀盤以及線性查找算法效率低下的問題。本專利技術將對象標識符ObjectID和磁盤上的對象索引節(jié)點的位置OnodeBlock,以記錄的形式存放在磁盤塊中,對象查找過程就是在這些磁 ...
【技術保護點】
一種對象存儲設備中的對象查找方法,包括: (1)系統(tǒng)初始化步驟:讀取磁盤上的索引結(jié)構(gòu)體塊,根據(jù)其內(nèi)容設置內(nèi)存索引結(jié)構(gòu)體的內(nèi)容,等待用戶操作,根據(jù)用戶操作類型,分別轉(zhuǎn)步驟(2)、(3)、(4); (2)對象記錄插入步驟:創(chuàng)建一個新 對象時,將一條新的記錄添加到對應的哈希桶中,同時,判斷當前記錄總數(shù)/當前哈希桶數(shù)的值是否超過給定閾值,以決定是否要添加一個新哈希桶到哈希表中;等待用戶操作,分別轉(zhuǎn)步驟(2)、(3)、(4); (3)對象記錄查找步驟:在讀對象,寫對象或 者查看對象屬性信息時進行,根據(jù)對象標志符,通過哈希表,在哈希桶中搜索記錄是否存在,是則返回要查找的對象記錄,否則返回空記錄信息;等待用戶操作,分別轉(zhuǎn)步驟(2)、(3)、(4); (4)對象記錄刪除步驟:在刪除一個已存在的對象時,刪除相 應的一條記錄;等待用戶操作,分別轉(zhuǎn)步驟(2)、(3)、(4); 所述步驟(2)、(3)、(4)根據(jù)用戶操作類型獨立運行。
【技術特征摘要】
1.一種對象存儲設備中的對象查找方法,包括:(1)系統(tǒng)初始化步驟:讀取磁盤上的索引結(jié)構(gòu)體塊,根據(jù)其內(nèi)容設置內(nèi)存索引結(jié)構(gòu)體的內(nèi)容,等待用戶操作,根據(jù)用戶操作類型,分別轉(zhuǎn)步驟(2)、(3)、(4);(2)對象記錄插入步驟:創(chuàng)建一個新對象時,將一條新的記錄添加到對應的哈希桶中,同時,判斷當前記錄總數(shù)/當前哈希桶數(shù)的值是否超過給定閾值,以決定是否要添加一個新哈希桶到哈希表中;等待用戶操作,分別轉(zhuǎn)步驟(2)、(3)、(4);(3)對象記錄查找步驟:在讀對象,寫對象或者查看對象屬性信息時進行,根據(jù)對象標志符,通過哈希表,在哈希桶中搜索記錄是否存在,是則返回要查找的對象記錄,否則返回空記錄信息;等待用戶操作,分別轉(zhuǎn)步驟(2)、(3)、(4);(4)對象記錄刪除步驟:在刪除一個已存在的對象時,刪除相應的一條記錄;等待用戶操作,分別轉(zhuǎn)步驟(2)、(3)、(4);所述步驟(2)、(3)、(4)根據(jù)用戶操作類型獨立運行。2.如權利要求1所述的對象查找方法,其特征在于:(1).所述系統(tǒng)初始化步驟,順序進行下述過程:(1.1)根據(jù)磁盤的超級塊信息,找到磁盤上索引結(jié)構(gòu)體所在的磁盤塊號W,根據(jù)磁盤塊號W,將磁盤上索引結(jié)構(gòu)體內(nèi)容讀到內(nèi)存中;(1.2)在內(nèi)存中建立映射結(jié)構(gòu)體,將映射結(jié)構(gòu)體的內(nèi)容,設置為讀取的索引結(jié)構(gòu)體的I、R、N、HT;(1.3)等待用戶操作,根據(jù)用戶操作類型,分別轉(zhuǎn)步驟(2)、(3)、(4);(2).所述對象記錄插入步驟,根據(jù)用戶創(chuàng)建對象操作,進行下述過程:(2.1)從內(nèi)存映射結(jié)構(gòu)體中,取參數(shù)I、N、R、HT,以對象標志符為關鍵字,根據(jù)哈希函數(shù),計算出哈希值,取出哈希值對應的二進制形式的低I位,并將其換算為整數(shù),記為M,置R為R+1,將區(qū)分哈希桶是否要分裂的標志Splitflag置為0;(2.2)判斷是否M<N,是則順序進行,否則轉(zhuǎn)過程(2.10);(2.3)將第一操作桶址D1置為HT中第M項的值,將塊號為D1的磁盤塊內(nèi)容讀到內(nèi)存中的第一映射桶;(2.4)主記錄號H置為所述哈希值除以J的余數(shù),第一記錄號F初始化為主記錄號H;(2.5)在第一映射桶中取出第F個記錄,判斷該記錄是否為空記錄,是則順序進行,否則轉(zhuǎn)過程(2.7);(2.6)將新記錄添加到第一映射桶中第F個記錄的位置,同時將第一映射桶的內(nèi)容寫回到塊號為D1的磁盤塊中;轉(zhuǎn)過程(2.12);(2.7)第一記錄號F+1后除以J,所得余數(shù)賦予F,判斷是否F=H,是則順序進行,否則轉(zhuǎn)過程(2.5);(2.8)判斷第一映射桶是否有溢出桶,是則順序進行,否則轉(zhuǎn)過程(2.11);(2.9)將D1置為第一映射桶的溢出桶地址,將塊號為D1的磁盤塊內(nèi)容從磁盤讀到內(nèi)存中的第一映射桶,轉(zhuǎn)過程(2.4);(2.10)將M置為M—2(I-1),轉(zhuǎn)過程(2.3);(2.11)在磁盤上分配塊號為V的磁盤塊作為第一映射桶的溢出桶,將第一映射桶的內(nèi)容寫回到塊號為D1的磁盤塊中;將第一映射桶的所有內(nèi)容置為空,將新記錄添加到第一映射桶中第H條記錄位置,將第一操作桶址D1置為V,將第一映射桶的內(nèi)容寫回到塊號為D1的磁盤塊中;(2.12)判斷是否R/N>t,t為給定的閾值,是則順序進行,否則轉(zhuǎn)過程(2.22);(2.13)在磁盤上分配塊號為U的磁盤塊為一個新哈希桶,將HT的第N項值置為U,將N置為N+1;(2.14)判斷是否N>2I,是則順序進行,否則轉(zhuǎn)過程(2.16);(2.15)將I置為I+1;(2.16)判斷N—1的I位二進制形式第一位是否為1,是則順序進行,否則轉(zhuǎn)過程(2.23);(2.17)將N—1的I位二進制形式的低I-1位換算成整數(shù),記為K,將第二操作桶址D2置為HT中第K項的值,將塊號為D2的磁盤塊內(nèi)容讀到內(nèi)存中的...
【專利技術屬性】
技術研發(fā)人員:馮丹,何水兵,胡洋,陸承濤,龐麗萍,秦亦,譚支鵬,謝雨來,
申請(專利權)人:華中科技大學,
類型:發(fā)明
國別省市:83[中國|武漢]
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。