[發明專利]一種針對非易失內存的哈希表構建方法及系統有效
| 申請號: | 201710332674.5 | 申請日: | 2017-05-12 |
| 公開(公告)號: | CN107153707B | 公開(公告)日: | 2020-08-14 |
| 發明(設計)人: | 華宇;左鵬飛;馮丹 | 申請(專利權)人: | 華中科技大學 |
| 主分類號: | G06F16/22 | 分類號: | G06F16/22 |
| 代理公司: | 華中科技大學專利中心 42201 | 代理人: | 廖盈春;李智 |
| 地址: | 430074 湖北*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 針對 非易失 內存 哈希表 構建 方法 系統 | ||
1.一種針對非易失內存的哈希表構建方法,其特征在于,所述方法包括以下步驟:
(1)位置共享:將哈希表中的所有存儲單元邏輯上組織成一個倒立的完全二叉樹,該二叉樹頂層的所有葉子結點為哈希函數尋址單元,當葉子結點發生哈希沖突的時候,沖突元素儲存在葉子結點到根節點路徑上的非葉子結點中;
(2)路徑縮減:只保留所述二叉樹最頂部的K層;
(3)雙路徑哈希:所述哈希表中每個元素使用兩個不同的哈希函數對應到兩個不同的哈希位置;
所述哈希表包括以下操作:
插入操作:要插入一個新的元素key,value,其中key表示存儲元素鍵值,value表示存儲元素值;將key帶入哈希函數計算哈希位置p1和p2,判斷葉子節點p1和p2中是否有空節點,是則將新的元素存入其中一個空節點并將單元標識token置為“1”;否則繼續迭代遍歷路徑-p1和-p2在下一層的節點,直至找到一個空的節點將新的元素存入,并將token置為“1”;若遍歷完兩條路徑依然沒有找到空節點,則插入失敗,其中,所述路徑-p1和-p2分別表示葉子節點p1和p2到根節點的路徑;
查詢操作:通過哈希函數計算查詢key對應的哈希位置p1和p2,由頂層到底層迭代遍歷路徑-p1和-p2中的節點尋找目標元素,找到后返回目標元素的value,若遍歷完路徑-p1和-p2后沒有找到目標元素,則查詢目標不在哈希表中;
刪除操作:通過哈希函數計算查詢key對應的哈希位置p1和p2,由頂層到底層迭代遍歷路徑-p1和-p2中的節點尋找目標元素,找到后將目標元素的token置為“0”,若沒有找到目標元素則刪除目標不在哈希表中。
2.根據權利要求1所述的一種針對非易失內存的哈希表構建方法,其特征在于,將所述二叉樹的所有節點由頂層到底層依次存儲在一個一維數組中,二叉樹中第N層所有節點占據所述一維數組中的2L-(L-N)個位置。
3.根據權利要求1所述的一種針對非易失內存的哈希表構建方法,其特征在于,所述哈希表中每個單元存儲三項數據,分別是單元標識、存儲元素鍵值和存儲元素值;單元標識為“0”表示該單元為空,單元標識為“1”表示該單元被占用。
4.一種針對非易失內存的哈希表構建系統,其特征在于,所述系統包括:
位置共享模塊,用于將哈希表中的所有存儲單元邏輯上組織成一個倒立的完全二叉樹,該二叉樹頂層的所有葉子結點為哈希函數尋址單元,當葉子結點發生哈希沖突的時候,沖突元素儲存在葉子結點到根節點路徑上的非葉子結點中;
路徑縮減模塊,用于只保留所述二叉樹最頂部的K層;
雙路徑哈希模塊,用于將所述哈希表中每個元素使用兩個不同的哈希函數對應到兩個不同的哈希位置;
所述哈希表包括以下操作:
插入操作:要插入一個新的元素key,value,其中key表示存儲元素鍵值,value表示存儲元素值;將key帶入哈希函數計算哈希位置p1和p2,判斷葉子節點p1和p2中是否有空節點,是則將新的元素存入其中一個空節點并將單元標識token置為“1”;否則繼續迭代遍歷路徑-p1和-p2在下一層的節點,直至找到一個空的節點將新的元素存入,并將token置為“1”;若遍歷完兩條路徑依然沒有找到空節點,則插入失敗,其中,所述路徑-p1和-p2分別表示葉子節點p1和p2到根節點的路徑;
查詢操作:通過哈希函數計算查詢key對應的哈希位置p1和p2,由頂層到底層迭代遍歷路徑-p1和-p2中的節點尋找目標元素,找到后返回目標元素的value,若遍歷完路徑-p1和-p2后沒有找到目標元素,則查詢目標不在哈希表中;
刪除操作:通過哈希函數計算查詢key對應的哈希位置p1和p2,由頂層到底層迭代遍歷路徑-p1和-p2中的節點尋找目標元素,找到后將目標元素的token置為“0”,若沒有找到目標元素則刪除目標不在哈希表中。
5.根據權利要求4所述的一種針對非易失內存的哈希表構建系統,其特征在于,所述二叉樹的所有節點由頂層到底層依次存儲在一個一維數組中,二叉樹中第N層所有節點占據所述一維數組中的2L-(L-N)個位置。
6.根據權利要求4所述的一種針對非易失內存的哈希表構建系統,其特征在于,所述哈希表中每個單元存儲三項數據,分別是單元標識、存儲元素鍵值和存儲元素值;單元標識為“0”表示該單元為空,單元標識為“1”表示該單元被占用。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華中科技大學,未經華中科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.17sss.com.cn/pat/books/201710332674.5/1.html,轉載請聲明來源鉆瓜專利網。





