[发明专利]一种面向非易失内存的链式散列插入和删除方法及系统在审

专利信息
申请号: 202110903042.6 申请日: 2021-08-06
公开(公告)号: CN113742339A 公开(公告)日: 2021-12-03
发明(设计)人: 冯丹;肖仁智;胡燏翀 申请(专利权)人: 华中科技大学
主分类号: G06F16/22 分类号: G06F16/22;G06F16/245;G06F3/06
代理公司: 武汉华之喻知识产权代理有限公司 42267 代理人: 李君;廖盈春
地址: 430074 *** 国省代码: 湖北;42
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 面向 非易失 内存 链式 插入 删除 方法 系统
【权利要求书】:

1.一种面向非易失内存的链式散列插入方法,其特征在于,包括以下步骤:

根据键的散列值寻找链式散列中主桶区链表是否有空闲,如有空闲则将键值对写入主桶内;否则,从预分配桶数组中取一个未使用的预分配桶,将键值对链接到预分配桶内,若预分配桶数组中无空闲的桶则插入键值对失败;

其中,在键值对写的过程中不采用条目计数变量count计算NVM散列表的键值对数目;在统计散列表中有效键值对数目时通过Size函数计算。

2.根据权利要求1所述的链式散列插入方法,其特征在于,在判断主桶区链表是否有空闲之前,链式散列划分为主桶和预分配桶。

3.根据权利要求1或2所述的链式散列插入方法,其特征在于,寻找主桶写键值对的方法,包括以下步骤:

通过散列函数计算键的散列值后,根据散列值寻找链式散列中对应的多槽散列主桶;

判断多槽散列主桶的链表是否存满,若未存满则寻找标志为0的槽,将键值对写入主桶内。

4.根据权利要求3所述的链式散列插入方法,其特征在于,采用免日志故障原子写将键值对写入主桶或预分配桶,具体执行过程如下:

寻找NVM中标志为0的槽,采用缓存行刷新指令刷回键和键值至槽中;

设置栅栏指令,防止栅栏指令之后的命令先于栅栏指令之前的命令将数据写入NVM;

将标志值设置为1,并将标志值通过缓存行刷新指令写入NVM,追加栅栏指令。

5.根据权利要求1所述的链式散列插入方法,其特征在于,所述主桶和预分配桶包括四个标志、四个槽位和一个指向下一个桶的指针;

其中,标志1代表被占用;标志0代表空闲;每个槽位存储一个键值对。

6.一种面向非易失内存的链式散列删除方法,其特征在于,包括以下步骤:

根据键的散列值,找出在链式散列中对应的散列桶;

在散列桶的链表中查找是否同时存在标志为1,且存在槽内的键和需寻找的键相等的槽;

若存在,则将槽的标志值设置为0,采用缓存行刷新指令将标志值0刷回NVM中,删除操作完成;

否则,判定找不到对应的键值对,删除失败;

其中,在键值对删除的过程中不采用条目计数变量count计算NVM散列表的键值对数目;在统计散列表中有效键值对数目时通过Size函数计算;

所述散列桶包括主桶和预分配桶。

7.根据权利要求6所述的链式散列删除方法,其特征在于,主桶和预分配桶包括四个标志、四个槽位和一个指向下一个桶的指针;

其中,标志1代表被占用;标志0代表空闲;每个槽位存储一个键值对。

8.一种面向非易失内存的链式散列插入系统,其特征在于,包括:

空闲主桶判断模块,用于根据键的散列值寻找链式散列中主桶区链表是否有空闲;

写模块,用于将键值对写入主桶或预分配桶内;

散列冲突预分配模块,用于判断预分配桶数组是否有空闲的预分配桶,若有则取一个未使用的预分配桶,否则判定插入键值对失败;

无局部快速写穿模块,用于在键值对写的过程中不采用条目计数变量count计算NVM散列表的键值对数目;在统计散列表中有效键值对数目时通过Size函数计算。

9.根据权利要求8所述的链式散列插入系统,其特征在于,所述写模块为免日志故障原子写模块,具体执行过程如下:

寻找NVM中标志为0的槽,采用缓存行刷新指令刷回键和键值至槽中;

设置栅栏指令,防止栅栏指令之后的命令先于栅栏指令之前的命令将数据写入NVM;

将标志值设置为1,并将标志值通过缓存行刷新指令写入NVM,追加栅栏指令。

10.一种面向非易失内存的链式散列删除系统,其特征在于,包括:

散列桶寻找模块,用于根据键的散列值,找出在链式散列中对应的散列桶;

键值比对模块,用于在散列桶的链表中查找是否同时存在标志为1,且存在槽内的键和需寻找的键相等的键;

删除模块,用于在散列桶的链表中存在标志为1,且存在槽内的键和需寻找的键相等时,将槽的标志值设置为0,采用缓存行刷新指令将标志值0刷回NVM中,删除操作完成;

删除失败判定模块,用于在散列桶的链表中不存在标志为1,且存在槽内的键和需寻找的键相等时,判定找不到对应的键值对,删除失败;

其中,在键值对删除的过程中不采用条目计数变量count计算NVM散列表的键值对数目;在统计散列表中有效键值对数目时通过Size函数计算;

所述散列桶包括主桶和预分配桶。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110903042.6/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top