新四季網

一種哈希資料庫的配置方法和裝置製造方法

2023-07-04 05:18:26 1

一種哈希資料庫的配置方法和裝置製造方法
【專利摘要】本發明實施例公開了一種哈希資料庫的配置方法,包括:在磁碟上開闢索引區和數據區,其中,所述索引區由p個大小相等的磁碟頁面組成;接收到Key-Value對的分配請求,將所述Key-Value對中m個Key分配至所述索引區的磁碟頁面中,且將所述Key-Value對中的n個Value分配至所述數據區中,m、n和p均為大於1的整數。本發明實施例還公開了一種哈希資料庫的配置裝置。採用本發明,提高哈希資料庫的訪問效率。
【專利說明】一種哈希資料庫的配置方法和裝置
【技術領域】
[0001]本發明涉及計算機領域,尤其涉及一種哈希資料庫的配置方法和裝置。
【背景技術】
[0002]隨著網絡的發展,信息呈現爆炸性增長,人類的數據達到前所未有的規模,這些超大規模的數據存儲和管理已經成為一大挑戰。基於DHT (Distributed Hash Table)技術的P2P (Pear to Pear)存儲系統擁有很高的擴展性,支持大規模的數據存儲,可以較好地應對這一挑戰,這種存儲系統的底層存儲引擎一般是Key-Value資料庫,以下簡稱K-V資料庫,即以鍵值對形式進行數據存儲和訪問的非關係型資料庫。其通常的數據訪問操作有插入,查找,刪除,數據訪問形式一般如下:put (key, &value), get (key, &value), delete(key),其中key為數據的唯一標識,value即為數據內容。下文中put, get, delete分別對應插入,查找和刪除操作。
[0003]變長Hash K-V資料庫是一種常見的哈希資料庫,這種資料庫可以存儲變長的Key和Value,其基本原理是通過哈希算法確定每個Key和Value的存儲位置,當遇到Hash衝突時,使用特定的數據結構和二叉樹算法來解決。其邏輯結構如圖1所示,圖1中,Hash K-V資料庫從邏輯上分為四個部分,分別為:Bucket Array:即Hash桶,其大小為Hash空間的大小,其中存儲的內容為每個鍵值對(Key Value pair)所對應的在存儲介質的位置;Key:即每個鍵值對的鍵,存儲key的值;Value:即每個鍵值對的值,存儲value的值;Ptr:即當Hash衝突發生時,存儲相同Hash值的下一個鍵值對的位置(或偏移量);以上部件構成了Hash K-V資料庫的通用結構。
[0004]由於使用了哈希算法,根據哈希算法的固有特性,不同的輸入得到的哈希值可能相等,這種不定長Hash K-V資料庫在性能設計上的關鍵在於哈希衝突的處理方式。由於該資料庫採用二叉樹來解決衝突的Key-Value對,當數據量過大時,樹的深度會較大,每次需要讀取、更新葉子節點上的Key-Value時就需要在磁碟上隨機讀取整個二叉樹上的一些節點,造成了性能抖動過大,形成性能長尾,性能在數據量較大壓力較大時會出現急劇下降的情況。

【發明內容】

[0005]本發明實施例所要解決的技術問題在於,提供一種哈希資料庫的配置方法和裝置。可解決現有哈希資料庫的訪問效率低的不足。
[0006]為了解決上述技術問題,本發明提供了一種哈希資料庫的配置方法,包括:
[0007]在磁碟上開闢索引區和數據區,其中,所述索引區由p個大小相等的磁碟頁面組成;
[0008]接收到Key-Value對的分配請求,將所述Key-Value對中m個Key分配至所述索引區的磁碟頁面中,且將所述Key-Value對中的n個Value分配至所述數據區中,m、n和p均為大於I的整數。[0009]在第一種可能的實現方式中,所述將所述Key-Value對中m個Key分配至所述索引區的磁碟頁面中的步驟包括:
[0010]從m個Key中選取一個待分配Key進行哈希運算得到哈希值;
[0011]根據所述哈希值和磁碟頁面的數量p進行求模得到落入的磁碟頁面的序號;
[0012]將所述待分配Key存儲至所述序號對應的磁碟頁面。
[0013]結合第一方面的第一種可能的實現方式,在第二種可能的實現方式中,還包括:
[0014]在所述磁碟上開闢擴展區,其中,所述擴展區由q個大小相等的擴展頁面組成,q為大於I的整數;
[0015]若所述索引區中的磁碟頁面發生溢出時,將溢出的Key存儲至所述擴展頁面中。
[0016]結合第一方面的第二種可能的實現方式,在第三種可能的實現方式中,所述將待分配Key分配至所述序號對應的磁碟頁面的步驟包括:
[0017]若所述序號對應的磁碟頁面的剩餘容量小於所述待分配Key的長度;
[0018]在所述擴展區中查詢其剩餘容量大於所述待分配Key長度的擴展頁面;
[0019]將所述待分配Key存儲至所述擴展頁面中。
[0020]結合第一方面的第三種可能的實現方式,在第四種可能的實現方式中,還包括:
[0021]採用Bitmap技術管理所述擴展區中q個擴展頁面的分配和回收。
[0022]結合第一方面的第四種可能的實現方式,在第五種可能的實現方式中,還包括:
[0023]將哈希值相同的磁碟頁面及擴展頁面組成鍊表,其中磁碟頁面位於所述鍊表的頭部。
[0024]結合第一方面的第五種可能的實現方式,在第六種可能的實現方式中,還包括:
[0025]在所述磁碟開闢備份區,並將所述索引區和所述擴展區中的數據的副本拷貝至所述備份區,其中,所述備份區和所述索引區及擴展區不相鄰。
[0026]本發明第二方面提供了一種哈希資料庫的配置裝置,包括:
[0027]開闢模塊,用於在磁碟上開闢索引區和數據區,其中,所述索引區由p個大小相等的磁碟頁面組成;
[0028]分配模塊,用於接收到Key-Value對的分配請求,將所述Key-Value對中m個Key分配至所述索引區的磁碟頁面中,且將所述Key-Value對中的n個Value分配至所述數據區中,m、n和p均為大於I的整數。
[0029]在第一種可能的實現方式中,所述分配模塊包括:
[0030]計算單元,用於從m個Key中選取一個待分配Key進行哈希運算得到哈希值;
[0031]求模單元,用於根據所述哈希值和磁碟頁面的數量p進行求模得到落入的磁碟頁面的序號;
[0032]分配單元,用於將所述待分配Key存儲至所述序號對應的磁碟頁面。
[0033]結合第二方面的第一種可能的實現方式,在第二種可能的實現方式中,還包括:
[0034]溢出控制模塊,用於在所述磁碟上開闢擴展區,其中,所述擴展區由q個大小相等的擴展頁面組成,q為大於I的整數;若所述索引區中的磁碟頁面發生溢出時,將溢出的Key存儲至所述擴展頁面中。
[0035]結合第二方面的第二種可能的實現方式,在第三種可能的實現方式中,所述分配單元用於若所述序號對應的磁碟頁面的剩餘容量小於所述待分配Key的長度;[0036]在所述擴展區中查詢其剩餘容量大於所述待分配Key長度的擴展頁面;
[0037]將所述待分配Key存儲至所述擴展頁面中。
[0038]結合第二方面得第三種可能的實現方式,在第四種可能的實現方式中,還包括:
[0039]管理模塊,用於採用Bitmap技術管理所述擴展區中q個擴展頁面的分配和回收。
[0040]結合第二方面的第四種可能的實現方式,在第五種可能的實現方式中,還包括:
[0041]生成模塊,用於將哈希值相同的磁碟頁面及擴展頁面組成鍊表,其中磁碟頁面位於所述鍊表的頭部。
[0042]結合第二方面的第五種可能的實現方式,在第六種可能的實現方式中,還包括:
[0043]備份模塊,用於在所述磁碟開闢備份區,並將所述索引區和所述擴展區中的數據的副本拷貝至所述備份區,其中,所述備份區和所述索引區及擴展區不相鄰。
[0044]實施本發明,具有如下有益效果:
[0045]通過將哈希資料庫的Key-Value對中的Key和Value進行分離,分別存儲至磁碟上開闢的索引區和數據區,在接收到對哈希資料庫的操作請求時,避免產生大量的磁碟IO操作,在Key-Value對的數量較大時,磁碟IO操作的次數穩定,提高了哈希資料庫的操作效率。
【專利附圖】

【附圖說明】
[0046]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0047]圖1是現有技術中哈希資料庫的結構示意圖;
[0048]圖2是本發明第一實施例的一種哈希資料庫的配置方法的流程示意圖;
[0049]圖3是本發明第二實施例的一種哈希資料庫的配置方法的流程示意圖;
[0050]圖4本發明實施例的磁碟及哈希資料庫的空間布局示意圖;
[0051]圖5是本發明第一實施例的一種哈希資料庫的配置裝置的結構示意圖;
[0052]圖6是本發明第二實施例的一種哈希資料庫的配置裝置的結構示意圖;
[0053]圖7是圖6中分配模塊的結構示意圖;
[0054]圖8是本發明第三實施例的一種哈希資料庫的配置裝置的結構示意圖。
【具體實施方式】
[0055]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
[0056]參見圖2,為本發明第一實施例的一種哈希資料庫的配置方法的流程示意圖,在本實施例中,所述方法包括:
[0057]S101、在磁碟上開闢索引區和數據區,其中,所述索引區由p個大小相等的磁碟頁面組成。[0058]具體的,磁碟上的空閒空間處開闢索引區和數據區,索引區用於存儲哈希資料庫的Key-Value對中的Key,數據區用於存儲哈希資料庫的Key-Value對中的Value,Key-Value對中的Key和Value分離,其中,索引區由p個大小相等的磁碟頁面組成,每個磁碟頁面存儲哈希值相同的Key。例如,每個磁碟頁面的大小均為8K字節
[0059]S102、接收到Key-Value對的分配請求,將所述Key-Value對中的m個Key分配至所述索引區的磁碟頁面中,且將所述Key-Value對中的m個Value分配至所述數據區中
[0060]具體的,Key-Value對為哈希資料庫中預先配置的,Key與Value是多對一的關係,即至少一個Key與一個Value存在映射關係,Key-Value對中由m個Key和n個Value組成,m > n,將m個Key分配到索引區的p個磁碟頁面中,同時將n個Value分配到數據區中。
[0061]每個Key個長度為固定值,假設Key的長度均為IK字節,每個磁碟頁面的容量為8K字節,則索引區的每個磁碟頁面中可存儲8K/1K=8個Key,考慮到Key的描述信息需要佔用一定的存儲空間,實際上每個磁碟頁面可存儲的Key的數量為7個;m個Key分配到p個磁碟頁面中,具體分配方法為=Key經過哈希運算後求模落在某一個磁碟頁面中,如果哈希算法均勻性好,那麼每個Key落入到各個磁碟頁面的概率是相同的,概率都為1/p,指定某個磁碟頁面為空的概率為(1-1/p) ~m,空的磁碟頁面(即Key的數量為0的磁碟頁面)的數量為p* (1-1/p) ~m,當p, n的值足夠大時,空的磁碟頁面的數量約等於n* (1/e) ' (m/n);指定某個磁碟頁面有k個Key的概率為C(m, k)*(l/p) ~k*(l_l/p) ~ (m-k) ,C(m, k)表示求組合數。假設Key的數量m=8000000,磁碟頁面的數量p=2621431,計算結果圖表1所示
[0062]
【權利要求】
1.一種哈希資料庫的配置方法,其特徵在於,包括: 在磁碟上開闢索引區和數據區,其中,所述索引區由P個大小相等的磁碟頁面組成; 接收到鍵-值Key-Value對的分配請求,將所述Key-Value對中m個Key分配至所述索引區的磁碟頁面中,且將所述Key-Value對中的n個Value分配至所述數據區中,m、n和P均為大於I的整數。
2.如權利要求1所述的方法,其特徵在於,所述將所述Key-Value對中m個Key分配至所述索引區的磁碟頁面中的步驟包括: 從m個Key中選取一個待分配Key進行哈希運算得到哈希值; 根據所述哈希值和磁碟頁面的數量P進行求模得到落入的磁碟頁面的序號; 將所述待分配Key存儲至所述序號對應的磁碟頁面。
3.如權利要求2所述的方法,其特徵在於,還包括: 在所述磁碟上開闢擴展區,其中,所述擴展區由q個大小相等的擴展頁面組成,q為大於I的整數; 若所述索引區中的磁碟頁面發生溢出時,將溢出的Key存儲至所述擴展頁面中。
4.如權利要求3所述的方法,其特徵在於,所述將待分配Key分配至所述序號對應的磁碟頁面的步驟包括: 若所述序號對應的磁碟頁面的剩餘容量小於所述待分配Key的長度; 在所述擴展區中查詢其剩餘容量大於所述待分配Key長度的擴展頁面; 將所述待分配Key存儲至所述擴展頁面中。
5.如權利要求4所述的方法,其特徵在於,還包括: 採用Bitmap技術管理所述擴展區中q個擴展頁面的分配和回收。
6.如權利要求5所述的方法,其特徵在於,還包括: 將哈希值相同的磁碟頁面及擴展頁面組成鍊表,其中磁碟頁面位於所述鍊表的頭部。
7.如權利要求6所述的方法,其特徵在於,還包括: 在所述磁碟開闢備份區,並將所述索引區和所述擴展區中的數據的副本拷貝至所述備份區,其中,所述備份區和所述索引區及擴展區不相鄰。
8.一種哈希資料庫的配置裝置,其特徵在於,包括: 開闢模塊,用於在磁碟上開闢索引區和數據區,其中,所述索引區由P個大小相等的磁碟頁面組成; 分配模塊,用於接收到Key-Value對的分配請求,將所述Key-Value對中m個Key分配至所述索引區的磁碟頁面中,且將所述Key-Value對中的n個Value分配至所述數據區中,m、n和p均為大於I的整數。
9.如權利要求8所述的裝置,其特徵在於,所述分配模塊包括: 計算單元,用於從m個Key中選取一個待分配Key進行哈希運算得到哈希值; 求模單元,用於根據所述哈希值和磁碟頁面的數量p進行求模得到落入的磁碟頁面的序號; 分配單元,用於將所述待分配Key存儲至所述序號對應的磁碟頁面。
10.如權利要求9所述的裝置,其特徵在於,還包括: 溢出控制模塊,用於在所述磁碟上開闢擴展區,其中,所述擴展區由q個大小相等的擴展頁面組成,q為大於I的整數;若所述索引區中的磁碟頁面發生溢出時,將溢出的Key存儲至所述擴展頁面中。
11.如權利要求10所述的裝置,其特徵在於,所述分配單元用於若所述序號對應的磁碟頁面的剩餘容量小於所述待分配Key的長度; 在所述擴展區中查詢其剩餘容量大於所述待分配Key長度的擴展頁面; 將所述待分配Key存儲至所述擴展頁面中。
12.如權利要求11所述的裝置,其特徵在於,還包括: 管理模塊,用於採用Bitmap技術管理所述擴展區中q個擴展頁面的分配和回收。
13.如權利要求12所述的裝置,其特徵在於,還包括: 生成模塊,用於將哈希值相同的磁碟頁面及擴展頁面組成鍊表,其中磁碟頁面位於所述鍊表的頭部。
14.如權利要求13所述的裝置,其特徵在於,還包括: 備份模塊,用於在所述磁碟開闢備份區,並將所述索引區和所述擴展區中的數據的副本拷貝至所述備份區,其中,所述備份區和所述索引區及擴展區不相鄰。
【文檔編號】G06F17/30GK103593477SQ201310627860
【公開日】2014年2月19日 申請日期:2013年11月29日 優先權日:2013年11月29日
【發明者】張雷, 鮑棟 申請人:華為技術有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀