• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種對象存儲設備中的對象查找方法技術

    技術編號:2912005 閱讀:290 留言:0更新日期:2012-04-11 18:40
    一種對象存儲設備中的對象查找方法,屬于計算機存儲系統(tǒng)的數(shù)據(jù)存取方法,解決現(xiàn)有對象查找方法需要多次讀盤以及查找效率低的問題。本發(fā)明專利技術包括系統(tǒng)初始化、對象記錄插入、對象記錄查找和對象記錄刪除步驟,執(zhí)行系統(tǒng)初始化步驟后,等待并根據(jù)用戶不同類型的操作請求,分別進入對象記錄插入、對象記錄查找和對象記錄刪除步驟。本發(fā)明專利技術直接定位要搜索的哈希桶塊以及直接定位要查找的記錄,將現(xiàn)有方法的塊搜索O(n)性能和記錄搜索O(n)性能都提高到O(1)的性能,避免了多次讀盤和平均查找長度大的不足,從而提高了對象查找速度,同時,本發(fā)明專利技術記錄管理采用動態(tài)線性哈希查找方法,空間利用率高。特別適合包含大量對象的對象存儲設備。

    【技術實現(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,以記錄的形式存放在磁盤塊中,對象查找過程就是在這些磁盤塊中查找對象記錄過程。通過采用動態(tài)的線性哈希技術對記錄進行管理,使得在多數(shù)情況下,只需要一次磁盤讀操作便能找到對應的記錄所在的磁盤塊,而在對記錄進行匹配的同時,由于再次采用哈希技術,也在多數(shù)情況下能一次找到想要的記錄。由于減少了讀盤操作次數(shù)和縮短了記錄平均查找長度,使得對象查找操作的性能得到了極大的提高,特別是當OSD上包含數(shù)量巨大的對象時,這種方法的好處將更是明顯。本專利技術基于動態(tài)的線性哈希查找方法,構(gòu)建在如下結(jié)構(gòu)之上:記錄,哈希桶,哈希函數(shù)和索引結(jié)構(gòu)體;其中,記錄:記錄由對象標志符ObjectID和對象索引節(jié)點塊號BlockNum組成,其中對象標志符ObjectID為128位的無符號整數(shù),對象索引節(jié)點塊號BlockNum為相應對象索引節(jié)點(Onode)在磁盤上的塊號。本專利技術中,一個對象索引節(jié)點占4096字節(jié),里面存放對象大小、對象訪問時間、對象修改時間、對象創(chuàng)建時間和對象數(shù)據(jù)的位置等信息。對象索引節(jié)點塊號可以是磁盤上任何可能被分配的塊號。在本專利技術的實施例中,對象索引節(jié)點塊號為32位無符號整數(shù),它表明對象存儲設備最大可以支持232×4096字節(jié),即16TB的容量;如果要支持更大的磁盤空間,對象索引節(jié)點塊號可以取64或128位無符號整數(shù)。哈希桶:哈希桶是一個存儲單元,由磁盤上固定數(shù)目的磁盤塊構(gòu)成,它最多存放J個記錄和一個32位的溢出桶地址,所有記錄的對象標志符的哈希值的右邊I位均相同,I由索引結(jié)構(gòu)體中指定。本專利技術的實施例中規(guī)定一個哈希桶由一個磁盤塊構(gòu)成,為4096字節(jié);因此,一個哈希桶所-->包含的記錄數(shù)J為204個((4096×8—32)/(128+32)后取整)。當向一個已滿的哈希桶中添加新記錄時,就另外創(chuàng)建一個同樣大小的溢出桶,哈希桶包含的溢出桶地址指向該溢出桶,新記錄存放在該溢出桶中。本專利技術中,使用主記錄號表示根據(jù)記錄哈希值算出的記錄在哈希桶中的位置;使用記錄號表示哈希桶中動態(tài)查找的記錄位置。哈希函數(shù):哈希函數(shù)HASH,它是一個將對象標志符ObjectID映射成一個較小的哈希值hash_value的函數(shù)。索引結(jié)構(gòu)體,是一個數(shù)據(jù)結(jié)構(gòu),由I、N、R、HT?4個參數(shù)組成,其中,I為二進制形式表示的哈希值中當前被使用的位數(shù),N為當前哈希桶數(shù),R為當前記錄總數(shù),HT為含有N個表項的哈希表,它的每個表項存放對應哈希桶在磁盤上的地址,以便通過它可以找到對應的哈希桶。索引結(jié)構(gòu)體在磁盤上的位置放在磁盤的超級塊中。本專利技術的記錄通過哈希桶存放在磁盤上,索引結(jié)構(gòu)體存放在磁盤上,當在對象存儲設備上進行對象查找,創(chuàng)建,刪除時,哈希桶中的內(nèi)容被讀到內(nèi)存中的映射桶中、索引結(jié)構(gòu)體被讀到內(nèi)存中的映射結(jié)構(gòu)體中進行操作,映射桶的存儲空間大小和哈希桶相同,映射結(jié)構(gòu)體的數(shù)據(jù)結(jié)構(gòu)和索引結(jié)構(gòu)體相同;操作后如果內(nèi)存中的映射桶中的內(nèi)容和映射結(jié)構(gòu)體發(fā)生了變化,就將相關的數(shù)據(jù)寫回到磁盤中原哈希桶和索引結(jié)構(gòu)體的對應位置,以保證磁盤上存儲的結(jié)構(gòu)能正確反映當前對象存儲設備上的對象名字空間。本專利技術的一種對象存儲設備中的對象查找方法,包括:(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).所述系統(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);(本文檔來自技高網(wǎng)...

    【技術保護點】
    一種對象存儲設備中的對象查找方法,包括: (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[中國|武漢]

    網(wǎng)友詢問留言 已有0條評論
    • 還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 国产乱人伦Av在线无码| 亚洲精品无码久久久久APP| 亚洲午夜福利AV一区二区无码| 国产成人无码18禁午夜福利p | 精品无码久久久久久国产| 无码AⅤ精品一区二区三区| 无码国内精品人妻少妇蜜桃视频| 蜜臀AV无码一区二区三区| 亚洲精品无码午夜福利中文字幕 | 久久无码AV一区二区三区| 欧洲精品无码成人久久久| 国产成人无码一区二区在线播放| 精品无码国产一区二区三区51安| 亚洲熟妇无码AV在线播放| 欧日韩国产无码专区| 成年男人裸j照无遮挡无码| 无码人妻精品一区二区三区99仓本| 国产精品无码久久av| 亚洲av极品无码专区在线观看| 中文人妻无码一区二区三区| 麻豆亚洲AV成人无码久久精品| 亚洲中文字幕无码久久2020| 无码乱人伦一区二区亚洲| 国产精品无码一区二区三级| 秋霞鲁丝片无码av| 国产精品无码翘臀在线观看| av无码久久久久久不卡网站| 久久久无码一区二区三区| 最新国产AV无码专区亚洲| 久久国产精品无码网站| 无码人妻丰满熟妇区毛片| 少妇仑乱A毛片无码| 亚洲AV永久无码天堂影院| 无码爆乳护士让我爽| 蜜桃无码一区二区三区| 中文字幕无码成人免费视频 | 亚洲av成人无码久久精品| 国产成A人亚洲精V品无码性色| 成人A片产无码免费视频在线观看| 男人av无码天堂| 久久久久久精品无码人妻|