【技术实现步骤摘要】
一种哈希冲突的处理方法、装置及计算机可读存储介质
本专利技术实施例涉及网络通信
,尤指一种哈希冲突的处理方法、装置及计算机可读存储介质。
技术介绍
哈希(hash)算法就是把一个k比特(bit)位宽的关键值(key)映射到一个n比特位宽的索引值(index),k>n。比如key是200比特位宽的二进制数据,要通过哈希映射到一个20比特位宽的二进制数据index。由于key的样本空间显然要比index的样本空间大许多,在映射过程中会出现对于不同的key值:key1和key2,经过哈希映射后的index是相同的,这就是哈希冲突。哈希表基于哈希算法,是以index为地址存储相应的key值和其他表项信息的数据结构网络,设备中会经常使用哈希表进行路由查找和数据转发,当哈希冲突出现时,会导致路由查找错误,数据转发失败。相关技术中,解决哈希冲突的方法是扩大哈希表,把一个index指向的哈希表地址划分为M个位置(slot),每个slot存储不同的key,这样一来,原本N个存储单元的哈希表空间扩大为M*N个存储单元,出现哈希冲突时,不同key存储在相同index指向的地址中的不同slot。然而,由于哈希表需要使用存储器对其进行存储,当扩大哈希表时,意味着存储哈希表需要更大容量的存储器,因此会增大设备方面的开销;另一方面,由于存储器具有数据位宽限制,当一个哈希表地址的数据位宽太大,需要多次访问该存储器才能读出该空间所有slot的信息,因此会降低哈希表的查找速度。
技术实现思路
为了 ...
【技术保护点】
1.一种哈希冲突的处理方法,包括:/n获取待插入至哈希表的关键值和结果值;/n利用预先设置的至少两个不同哈希函数分别对所述待插入至哈希表的关键值进行哈希运算,得到至少两个哈希值;/n根据获得的哈希值和预先建立的用于存储索引值的索引表确定出所述待插入至哈希表的关键值不会引起哈希冲突,为所述待插入至哈希表的关键值分配与历史索引值不相同的目标索引值;其中,所述历史索引值为与所述哈希表中已有的关键值对应的索引值;/n以所述目标索引值为地址将所述待插入至哈希表的关键值和结果值添加至所述哈希表。/n
【技术特征摘要】
1.一种哈希冲突的处理方法,包括:
获取待插入至哈希表的关键值和结果值;
利用预先设置的至少两个不同哈希函数分别对所述待插入至哈希表的关键值进行哈希运算,得到至少两个哈希值;
根据获得的哈希值和预先建立的用于存储索引值的索引表确定出所述待插入至哈希表的关键值不会引起哈希冲突,为所述待插入至哈希表的关键值分配与历史索引值不相同的目标索引值;其中,所述历史索引值为与所述哈希表中已有的关键值对应的索引值;
以所述目标索引值为地址将所述待插入至哈希表的关键值和结果值添加至所述哈希表。
2.根据权利要求1所述的处理方法,其特征在于,所述预先设置的至少两个不同哈希函数包括:第一哈希函数和第二哈希函数;
所述对所述待插入至哈希表的关键值进行哈希运算,得到至少两个哈希值包括:
利用所述第一哈希函数对所述待插入至哈希表的关键值进行哈希运算,得到第一哈希值;
利用所述第二哈希函数对所述待插入至哈希表的关键值进行哈希运算,得到第二哈希值。
3.根据权利要求2所述的处理方法,其特征在于,所述索引表包括:若干个地址;
所述地址包括:若干个位置;
所述位置包括:第一字段、第二字段和第三字段;其中,所述第一字段,用于存放利用所述第二哈希函数对关键值进行哈希运算得到的哈希值;所述第二字段,用于存放索引值;所述第三字段,用于存放表示所述位置是否被占用的标记;
其中,所述索引表的地址个数与每个地址的位置个数的乘积不小于所述哈希表的地址个数。
4.根据权利要求3所述的处理方法,其特征在于,所述根据获得的哈希值和预先建立的用于存储索引值的索引表确定出待插入至哈希表的关键值不会引起哈希冲突之前,还包括:
在所述索引表的地址中查找与所述第一哈希值对应的地址,作为目标地址;
判断所述目标地址中每一个位置是否被占用;
如果所述目标地址中所有位置都未被占用,确定所述待插入至哈希表的关键值不会引起所述哈希冲突;
如果所述目标地址中一部分位置被占用且剩余部分位置未被占用,利用所述第二哈希值和所述索引表判断所述待插入至哈希表的关键值是否会引起所述哈希冲突。
5.根据权利要求4所述的处理方法,其特征在于,所述利用第二哈希值和索引表判断待插入至哈希表的关键值是否会引起哈希冲突,包括:
获取所述目标地址中所有被占用位置的第一字段上的哈希值,作为待比较哈希值;
判断所述第二哈希值是否与所述待比较哈希值中任意一个哈希值相同;
如果所述第二哈希值与所述待比较哈希值中任意一个哈希值都不相同,确定所述待插入至哈希表的关键值不会引起所述哈希冲突。
6.根据权利要求4或5所述的处理方法,其特征在于,所述为待插入至哈希表的...
【专利技术属性】
技术研发人员:王磊,刘明强,
申请(专利权)人:中兴通讯股份有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。