暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
一种OpenGauss哈希连接中哈希表的访问方法_CN116756180A_海量数据.pdf
42
12页
0次
2024-07-17
免费下载
(19)国家知识产权局
(12)发明专利申请
(10)申请公布号
(43)申请公布日
(21)申请号 202310533714 .8
(22)申请日 2023 .05 .12
(71)申请人 广州海量数据库技术有限公司
地址 510510 广东省广州市天河区建工路4
号佳都科技大厦2号楼3F301(仅限办
(72)发明人 王皓 何小栋 
(74)专利代理机构 北京尚钺知识产权代理事务
所(普通合伙) 11723
专利代理师 严田青
(51)Int.Cl.
G06F
16/2453
(2019 .01)
G06F
16/22
(2019 .01)
(54)发明名称
一种OpenGauss哈希连接中哈希表的访问方
(57)摘要
本发明涉及一种OpenGauss哈希连接中哈希
表的优化访问方法及访问系统本方法包括构建
哈希表完成对哈希桶数组与哈希冲突数组的填
遍历哈希桶数组探测各位置存储的数据是
否发生了哈希冲突根据探测结果利用哈希桶数
组与哈希冲突数组中存储的位置信息的空余空
间填充提示信息等步骤本方法融合了链地址法
和开放寻址法的优点针对哈希表的实现从多个
角度进行了优化通过填充提示信息来区别每个
冲突的数据究竟是使用了链地址法还是开放寻
址法很大程度上提高了哈希表的访问性能
访
HashNext数组即可判断数据是否发生了哈希冲
提升了哈希表的内存访问和哈希连接的
能。
权利要求书2页 说明书6页 附图3页
CN 116756180 A
2023.09.15
CN 116756180 A
1 .一种OpenGauss哈希连接中哈希表的访问方法其特征在于所述方法包括
S1 .构建哈希表完成对哈希桶数组与哈希冲突数组的填充
S2 .从哈希桶数组下标为0的位置开始对哈希桶数组进行遍历探测存储在该位置的数
据是否发生了哈希冲突
S3 .根据步骤S2的探测结果利用哈希桶数组与哈希冲突数组中存储的原始数据在原
始数据数组中的位置信息的空余空间填充提示信息
S4 .重复步骤S2和步骤S3直至完成对哈希桶数组的探测
2.根据权利要求1所述的OpenGauss哈希连接中哈希表的访问方法其特征在于步骤
S1中所述哈希桶数组与哈希冲突数组中存储的是原始数据在原始数据数组中的位置信息
所述位置信息由一个整形数据表示采用int类型或long类型
3 .根据权利要求1所述的OpenGauss哈希连接中哈希表的访问方法其特征在于步骤
S1中所述构建哈希表包括
S11 .从数据源获得M个数据将其放入原始数据数组中
S12.根据M值计算N值N为从M开始的下一个以2为底次幂值
S13 .遍历原始数据数组计算每一个数据的哈希值H
S14 .根据每个数据的哈希值H对N进行取模通过取模结果计算出其在哈希桶数组中的
下标并将该新数据在原始数据数组中的位置存储在哈希桶数组中
S15 .重复步骤S13和步骤S14直到将所有数据都存储在哈希桶数组与哈希冲突数组
中。
4 .根据权利要求3所述的OpenGauss哈希连接中哈希表的访问方法其特征在于S13中
所述计算每一个数据的哈希值H当数据为整形数据时计算哈希值H的方式是使用数据本
身的值
5 .根据权利要求3所述的OpenGauss哈希连接中哈希表的访问方法其特征在于步骤
S14中所述将该数据在原始数据数组中的位置存储在哈希桶数组中包括
(1)当哈希桶数组中对应下标的存储位置空间没有被使用时将新数据在原始数据数
组中的位置直接存储在该存储位置
(2)当哈希桶数组中对应下标的存储位置空间已经被使用时则先将其中的数据取出
并根据该数据中的位置信息将其存储到对应位置的哈希冲突数组中然后将新数据在原
始数据数组中的位置存储在该存储位置
6 .根据权利要求1所述的OpenGauss哈希连接中哈希表的访问方法其特征在于当所
述哈希桶数组与哈希冲突数组中存储的原始数据在原始数据数组中的位置信息为int类型
整形数据时步骤S3中所述根据步骤S2的探测结果利用哈希桶数组与哈希冲突数组中存
储的原始数据在原始数据数组中的位置信息的空余空间填充提示信息包括
(1)数据间未发生哈希冲突则在int类型的低位30bit填充原来的位置信息在最高位
2bit填充提示信息01
(2)数据间发生了哈希冲突并且哈希桶数组中当前下标+1的空间被使用了则在int
类型的低位30bit填充原来的位置信息在最高位2bit填充提示信息11
(3)数据间发生了哈希冲突并且哈希桶数组中当前下标+1的空间未被使用则在int
类型的低位30bit填充原来的位置信息在最高位2bit填充提示信息10并将本应存储在哈
权 利 要 求 书
1/2
2
CN 116756180 A
2
希冲突数组中的位置信息存储到哈希桶数组当前下标+1的位置位置信息填充在该int类
型的低位30bit最高位2bit填充提示信息10
(4)当前哈希桶数组下标的空间未被使用不做任何处理
7 .根据权利要求6所述的OpenGauss哈希连接中哈希表的访问方法其特征在于所述
提示信息的含义如下
0表示哈希桶数组中当前下标的空间int类型的低位30bit没用被使用
01表示哈希桶数组中当前下标的空间int类型的低位30bit的数据没有发生哈希冲
10表示哈希桶数组中当前下标的空间int类型的低位30bit的数据发生了哈希冲突
冲突的数据存储在哈希桶数组当前下标+1的空间中
11表示哈希桶数组中当前下标的空间int类型的低位30bit的数据发生了哈希冲突
冲突的数据存储在哈希冲突数组中
8.一种OpenGauss哈希连接中哈希表的访问系统其特征在于所述系统包括
哈希表构建模块用于构建哈希表并完成对哈希桶数组与哈希冲突数组的填充
哈希冲突探测模块用于探测存储在哈希桶数组中的数据是否发生了哈希冲突
提示信息填充模块用于向哈希桶数组与哈希冲突数组中存储的位置信息的空余空间
中填充提示信息
信息识别模块用于识别提示信息并做出相应的处理决策
9.一种计算机可读存储介质所述存储介质上存储有计算机程序所述程序被处理器
执行时实现权利要求17任一项所述的OpenGauss哈希连接中哈希表的访问方法的步骤
权 利 要 求 书
2/2
3
CN 116756180 A
3
of 12
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。