CN109800228A - 一种高效快速解决hash冲突的方法 - Google Patents

一种高效快速解决hash冲突的方法 Download PDF

Info

Publication number
CN109800228A
CN109800228A CN201811617641.6A CN201811617641A CN109800228A CN 109800228 A CN109800228 A CN 109800228A CN 201811617641 A CN201811617641 A CN 201811617641A CN 109800228 A CN109800228 A CN 109800228A
Authority
CN
China
Prior art keywords
hash
address
cuckoo
chain
conflict
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811617641.6A
Other languages
English (en)
Other versions
CN109800228B (zh
Inventor
杨一蛟
宋鹏飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Zhuyun Technology Co ltd
Original Assignee
Shenzhen Zhuyun Science & Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Zhuyun Science & Technology Co Ltd filed Critical Shenzhen Zhuyun Science & Technology Co Ltd
Priority to CN201811617641.6A priority Critical patent/CN109800228B/zh
Publication of CN109800228A publication Critical patent/CN109800228A/zh
Application granted granted Critical
Publication of CN109800228B publication Critical patent/CN109800228B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种高效快速解决hash冲突的方法,一种高效快速解决hash冲突的方法,通过将布谷鸟散列思想与链地址法算法结合并引入LRU算法优化实现混合哈希表查找方法,可以优化hash表构造以及查找效率,同时提高hash table的利用率。将大大加速hash寻址key的索引进程。

Description

一种高效快速解决hash冲突的方法
技术领域
本发明涉及一种解决hash冲突的方法。,更具体地说,涉及一种高效快速解决hash冲突的方法。
背景技术
散列函数能使对一个数据序列的访问过程更加迅速有效,通过散列函数,数据元素将被更快地定位。但是散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入值,由此引出hash冲突。
解决hash冲突可以使用开放定址法。所谓的开放定址法就是一旦发生了冲突,就去寻找下一个空的散列地址,只要散列表足够大,空的散列地址总能找到,并将记录存入。这种方法总能找到空闲地址,但容易产生数据聚集现象,从而达不到记录的均匀分布;需要的存储空间大且利用不充分。
解决hash冲突还可以链地址法。链地址法就是一旦发生了冲突,将冲突的记录存入相应的链表中。链地址法处理冲突时无堆积现象,但是当链表元素逐渐累加变大时,性能会有所下降。
发明内容
本发明要解决的技术问题在于,针对现有技术中的缺陷,提供一种高效快速解决hash冲突的方法,优化hash冲突问题时处理的性能及存储空间问题。
本发明解决其技术问题所采用的技术方案是:构造一种高效快速解决hash冲突的方法,通过将布谷鸟散列思想与链地址法算法结合并引入LRU算法优化实现混合哈希表查找方法,优化hash表构造以及查找效率。
在本发明所述的高效快速解决hash冲突的方法中,所述高效快速解决hash冲突的方法步骤为:
S1.建立两个Hash表Table1和Table2组成布谷鸟散列表以及一个链地址哈希表Table3;同时创建三个Hash函数,hashA、hashB和hashC;
S2.获得key后根据函数hashA、hashB计算hashcode,检查建立两个表Table1、Table2所对应的地址是否为空,如果其中一个为空,则直接插入到空地址当中,同时添加键频次C(count)通过比较Table1和Table2对应地址频次,将出现概率大的分配在所需比较次数少的位置,以而提高查找效率;
S3.如果都不为空,则使用函数hashC插入到链地址哈希表Table3中,并为其添加键频次P(count);
S4.链地址表中的数据根据其P(count)的大小进行排序,将概率大的数据上浮至链地址表的表头;当链地址表中元素的概率大于布谷鸟散列表中元素的概率值时,链地址表中的元素将被移到布谷鸟散列表中,方便查找。
实施本发明的一种高效快速解决hash冲突的方法,具有以下有益效果:通过此发明可以优化hash表构造以及查找效率,同时提高hash table的利用率。将大大加速hash寻址key的索引进程。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明的高效快速解决hash冲突的方法流程图
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,所述高效快速解决hash冲突的方法步骤为:S1.建立两个Hash表Table1和Table2组成布谷鸟散列表以及一个链地址哈希表Table3;同时创建三个Hash函数,hashA、hashB和hashC;
S2.获得key后根据函数hashA、hashB计算hashcode,检查建立两个表Table1、Table2所对应的地址是否为空,如果其中一个为空,则直接插入到空地址当中,同时添加键频次C(count)通过比较Table1和Table2对应地址频次,将出现概率大的分配在所需比较次数少的位置,以而提高查找效率;
S3.如果都不为空,则使用函数hashC插入到链地址哈希表Table3中,并为其添加键频次P(count);
S4.链地址表中的数据根据其P(count)的大小进行排序,将概率大的数据上浮至链地址表的表头;当链地址表中元素的概率大于布谷鸟散列表中元素的概率值时,链地址表中的元素将被移到布谷鸟散列表中,方便查找。
进一步地,使用布谷鸟散列的思想利用较少的计算换取较大的空间,同时引入链表法解决布谷鸟散列在hash冲突处理时处理时间长的问题,并且通过LRU使得热点数据的查询效率变的更快。
尽管通过以上实施例对本发明进行了揭示,但本发明的保护范围并不局限于此,在不偏离本发明构思的条件下,对以上各构件所做的变形、替换等均将落入本发明的权利要求范围内。

Claims (2)

1.一种高效快速解决hash冲突的方法,其特征在于,所述高效快速解决hash冲突的方法步骤为:
S1.建立两个Hash表Table1和Table2组成布谷鸟散列表以及一个链地址哈希表Table3;同时创建三个Hash函数,hashA、hashB和hashC;
S2.获得key后根据函数hashA、hashB计算hashcode,检查建立两个表Table1、Table2所对应的地址是否为空,如果其中一个为空,则直接插入到空地址当中,同时添加键频次C(count)通过比较Table1和Table2对应地址频次,将出现概率大的分配在所需比较次数少的位置,以而提高查找效率;
S3.如果都不为空,则使用函数hashC插入到链地址哈希表Table3中,并为其添加键频次P(count);
S4.链地址表中的数据根据其P(count)的大小进行排序,将概率大的数据上浮至链地址表的表头;当链地址表中元素的概率大于布谷鸟散列表中元素的概率值时,链地址表中的元素将被移到布谷鸟散列表中,方便查找。
2.根据权利要求1所述的高效快速解决hash冲突的方法,其特征在于,使用布谷鸟散列的思想利用较少的计算换取较大的空间,同时引入链表法解决布谷鸟散列在hash冲突处理时处理时间长的问题,并且通过LRU使得热点数据的查询效率变的更快。
CN201811617641.6A 2018-12-28 2018-12-28 一种高效快速解决hash冲突的方法 Active CN109800228B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811617641.6A CN109800228B (zh) 2018-12-28 2018-12-28 一种高效快速解决hash冲突的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811617641.6A CN109800228B (zh) 2018-12-28 2018-12-28 一种高效快速解决hash冲突的方法

Publications (2)

Publication Number Publication Date
CN109800228A true CN109800228A (zh) 2019-05-24
CN109800228B CN109800228B (zh) 2023-03-10

Family

ID=66557883

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811617641.6A Active CN109800228B (zh) 2018-12-28 2018-12-28 一种高效快速解决hash冲突的方法

Country Status (1)

Country Link
CN (1) CN109800228B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111460510A (zh) * 2020-04-17 2020-07-28 支付宝(杭州)信息技术有限公司 基于隐私保护确定相同业务数据的方法及装置
CN113360516A (zh) * 2021-08-11 2021-09-07 成都信息工程大学 基于先进先出及最小活跃数策略的集合成员管理方法
CN113779320A (zh) * 2021-08-18 2021-12-10 北京计算机技术及应用研究所 一种表项存储地址冲突的解决方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102346735A (zh) * 2010-07-29 2012-02-08 高通创锐讯通讯科技(上海)有限公司 一种减少哈希冲突的哈希查找方法
CN105302838A (zh) * 2014-07-31 2016-02-03 华为技术有限公司 分类方法、查找方法和设备
US20170192892A1 (en) * 2016-01-06 2017-07-06 Netapp, Inc. High performance and memory efficient metadata caching
WO2018120109A1 (zh) * 2016-12-30 2018-07-05 华为技术有限公司 数据处理的方法和装置
CN108287840A (zh) * 2017-01-09 2018-07-17 北京大学 一种基于矩阵哈希的数据存储和查询方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102346735A (zh) * 2010-07-29 2012-02-08 高通创锐讯通讯科技(上海)有限公司 一种减少哈希冲突的哈希查找方法
CN105302838A (zh) * 2014-07-31 2016-02-03 华为技术有限公司 分类方法、查找方法和设备
US20170192892A1 (en) * 2016-01-06 2017-07-06 Netapp, Inc. High performance and memory efficient metadata caching
WO2018120109A1 (zh) * 2016-12-30 2018-07-05 华为技术有限公司 数据处理的方法和装置
CN108287840A (zh) * 2017-01-09 2018-07-17 北京大学 一种基于矩阵哈希的数据存储和查询方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111460510A (zh) * 2020-04-17 2020-07-28 支付宝(杭州)信息技术有限公司 基于隐私保护确定相同业务数据的方法及装置
CN113360516A (zh) * 2021-08-11 2021-09-07 成都信息工程大学 基于先进先出及最小活跃数策略的集合成员管理方法
CN113779320A (zh) * 2021-08-18 2021-12-10 北京计算机技术及应用研究所 一种表项存储地址冲突的解决方法
CN113779320B (zh) * 2021-08-18 2024-02-27 北京计算机技术及应用研究所 一种表项存储地址冲突的解决方法

Also Published As

Publication number Publication date
CN109800228B (zh) 2023-03-10

Similar Documents

Publication Publication Date Title
CN109800228A (zh) 一种高效快速解决hash冲突的方法
CN108287840B (zh) 一种基于矩阵哈希的数据存储和查询方法
US11429609B2 (en) Geo-scale analytics with bandwidth and regulatory constraints
US8799284B2 (en) Method for automated scaling of a massive parallel processing (MPP) database
US9965504B2 (en) Transient and persistent representation of a unified table metadata graph
CN105095413B (zh) 一种解决数据倾斜的方法及装置
EP3026579A1 (en) Forced ordering of a dictionary storing row identifier values
CN106991102B (zh) 倒排索引中键值对的处理方法及处理系统
CN104008199B (zh) 一种数据查询方法
US9665612B2 (en) Run-time decision of bulk insert for massive data loading
EP3862888A1 (en) Hybrid data distribution in a massively parallel processing architecture
CN107679104B (zh) 大表流式并行高速数据比对方法
CN112015741A (zh) 一种海量数据的分库分表存储方法与装置
CN104871153A (zh) 用于灵活的分布式大规模并行处理(mpp)数据库的系统和方法
JP6418431B2 (ja) 効率的な1対1結合のための方法
CN107209768A (zh) 用于数据集的可扩展排序的方法和设备
US9489413B2 (en) Asynchronous global index maintenance during partition maintenance
CN105095457A (zh) 历史数据存储管理方法
CN106991116B (zh) 数据库执行计划的优化方法和装置
CN100476815C (zh) 网页标识抓取方法
US9600517B2 (en) Convert command into a BULK load operation
KR20180085633A (ko) 질의 처리 장치 및 방법
KR101658885B1 (ko) 너비우선 탐색을 위한 그래프 처리 방법 및 장치
CN112162981A (zh) 一种自适应的路由分库分表方法及系统
US11216438B2 (en) Database creation and collision reduction

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 518000 4001, Block D, Building 1, Chuangzhi Yuncheng Lot 1, Liuxian Avenue, Xili Community, Xili Street, Nanshan District, Shenzhen, Guangdong

Patentee after: Shenzhen Zhuyun Technology Co.,Ltd.

Address before: 518000 East, 3rd floor, incubation building, China Academy of science and technology, 009 Gaoxin South 1st Road, Nanshan District, Shenzhen City, Guangdong Province

Patentee before: SHENZHEN BAMBOOCLOUD TECHNOLOGY CO.,LTD.

CP03 Change of name, title or address