[发明专利]一种非易失性存储介质的数据处理方法和计算机存储介质有效
申请号: | 202010825520.1 | 申请日: | 2020-08-17 |
公开(公告)号: | CN112181288B | 公开(公告)日: | 2022-03-04 |
发明(设计)人: | 吴素贞;张芝豪;沈志荣;毛波;兰思杰 | 申请(专利权)人: | 厦门大学 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 厦门市首创君合专利事务所有限公司 35204 | 代理人: | 张松亭;林燕玲 |
地址: | 361000 *** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 非易失性 存储 介质 数据处理 方法 计算机 | ||
1.一种非易失性存储介质的数据处理方法,其特征在于,包括如下步骤:
1)初始化时,根据用户指令在非易失性存储介质中创建环状结构的多层环状哈希表,并在最后一层哈希表和第一层哈希表之间设置一层空层,初始化三个变量来分别标识第一层哈希表、最后一层哈希表以及空层的哈希表,根据各层哈希表桶的总数创建一个位图组,设置用于解决哈希冲突的桶的探测距离和探测次数;
2)根据用户指令进行并发的数据插入步骤、数据查询步骤、数据删除步骤或数据更新步骤;
3)在执行数据插入步骤或数据删除步骤过程中,判断是否需要改变多层环状哈希表的大小,若是,则调整哈希表大小后再执行数据插入步骤或数据删除,否则继续执行数据插入步骤或数据删除;
调整多层环状哈希表大小,包括如下:
3.1)将标识第一层、最后一层和空层的变量分别加1或减1后标识新的第一层、新的最后一层和新的空层,并在新的最后一层上生成一个比原先的最后一层大指数倍或小指数倍的哈希表;根据新哈希表的大小生成新的位图组,并将未重新哈希的桶对应的位写入到新的位图组中,进入步骤3.2);
3.2)判断要重新哈希的桶中是否有数据,若是,则进入步骤3.3),否则进入步骤3.6);
3.3)判断各层哈希表和位图组初始索引的桶是否为空,若是,则进入步骤3.5),否则进入步骤3.4);
3.4)判断初始索引加上探测距离后生成的新索引对应的桶是否为空,若是,则进入步骤3.5),否则进入步骤3.8);
3.5)将数据插入到桶中并更改位图组中的对应位,进入步骤3.6);
3.6)判断是否还有要重新哈希的桶,若是,则进入步骤3.2),否则进入步骤3.7);
3.7)释放旧的哈希表和位图组的空间,返回调整大小成功标志;
3.8)返回调整大小失败标志;
4)判断用户是否发出结束访问指令,若是,则将标识第一层哈希表、最后一层哈希表和空层的哈希表的变量、探测距离和探测次数、各层哈希表和位图组的大小写入到非易失性存储介质中,释放相关资源,若否,则回到步骤2)。
2.如权利要求1所述的一种非易失性存储介质的数据处理方法,其特征在于,步骤1)具体包括如下:
1.1)根据用户指令在非易失性存储介质中用哈希值的不同位创建多层环状哈希表,并初始化各层哈希表的索引比特数,每层哈希表中桶的数量为2的索引比特数的次方;
1.2)初始化三个8字节整数型变量来分别标识第一层哈希表、最后一层哈希表以及空层的哈希表;
1.3)根据各层哈希表桶的总数创建一个位图组,位图组由各层哈希表的位图组合得到,位图组中的每一个位对应于哈希表的一个桶,用来确定桶是否存放了数据项;
1.4)设置用于解决哈希冲突的桶探测距离和探测次数。
3.如权利要求1所述的一种非易失性存储介质的数据处理方法,其特征在于,所述数据插入步骤具体包括如下:
A2.1)根据用户要插入的数据计算每层哈希表和位图组中的初始索引,根据位图组的索引,依次判断每一层哈希表中初始索引位置上的桶是否为空,若是,则进入步骤A2.5),否则进入步骤A2.2);
A2.2)判断初始索引加上探测距离后生成的新索引后对应的桶是否为空,若是,则进入步骤A2.5),否则进入步骤A2.3);
A2.3)判断是否可以将桶中的冲突数据移动到它的新索引对应的桶中,若是,则进入步骤A2.4),否则进入步骤3)调整多层环状哈希表大小,回到步骤A2.1);
A2.4)将桶中的冲突数据移动到它的新索引对应的桶中,进入步骤A2.5);
A2.5)将用户要插入的数据插入到对应桶中并更改位图组中对应的位。
4.如权利要求1所述的一种非易失性存储介质的数据处理方法,其特征在于,所述数据查询步骤包括如下:
B2.1)根据用户要查询的数据计算每层哈希表和位图组中的初始索引,判断各层哈希表中初始索引位置上的桶中是否有要找的数据,若是,则进入步骤B2.3),否则进入步骤B2.2);
B2.2)判断初始索引加上探测距离后生成的新索引对应的桶中是否有要查找的数据,若是,则进入步骤B2.3),否则进入步骤B2.4);
B2.3)返回要查找的数据;
B2.4)返回未找到标志。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门大学,未经厦门大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010825520.1/1.html,转载请声明来源钻瓜专利网。