[发明专利]哈希数据处理方法和装置有效
申请号: | 201210025028.1 | 申请日: | 2010-04-26 |
公开(公告)号: | CN102609509A | 公开(公告)日: | 2012-07-25 |
发明(设计)人: | 洪荣峰;易毅 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据处理 方法 装置 | ||
技术领域
本发明实施例涉及通信领域,尤其涉及一种哈希数据处理方法和装置。
背景技术
哈希(以下简称:Hash)算法是一种能够将任意长度的二进制值映射为固定长度的较小二进制值的方法。哈希算法可以表示为:Hash值=H(Key),其中Key为原始值(以下简称:complete key),H为Hash函数,Hash值为将Key按照Hash函数H映射而成的较小的二进制值。每个Hash值均指向一个Hash表,该Hash表中可以存储有多个Hash桶,每一个Hash桶的数据格式可以为Key+标识(以下简称:Index),如果Index和Hash桶的位置绑定,则Hash桶的数据格式中可以不包含Index。
在现有技术中,某些Hash算法的应用中,例如IP的流表,Key的位宽很大,例如IPv6的流表,Key的位宽超过了256bit,而Hash表的位宽往往受到诸多约束而十分有限,这样一个Hash表只能存储有限的几个Hash桶,这会大大增加Hash冲突的概率。为了解决这一问题,现有技术采用一种改进的Hash存储结构。Hash桶内不存储complete key,而是用另外一个Hash函数产生一个压缩的Key(以下简称:compressed key)。Hash桶的数据格式中的complete key用compressed key替代,而complete key被存储在一个shadow表中。在进行Hash查找时,如果在Hash桶中匹配到一个相同的compressedkey,则再用匹配的compressed key对应的Index在shadow表中获取completekey。举例来说,对一个位宽为256bit的complete key,compressed key可以压缩到20bit,这样一个Hash桶的位宽大大被压缩,一个Hash表可以存储更多的Hash桶,从而大大降低了Hash冲突的概率。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:当需要插入一个新的Key时,如果在该Hash表的Hash桶中已经存储有一个与该新的Key对应的compressed key相同的compressed key,则由于发生哈希冲突使得该Key不能存储到该Hash表中。
发明内容
本发明实施例提供另一种哈希数据处理方法,包括:
在数据处理过程中接收数据处理指令,所述数据处理指令包括待插入的关键值;
采用与哈希桶内的空表项的位置对应的哈希函数生成与待插入的关键值对应的压缩关键值;
将所述压缩关键值存储在所述空表项中。
相应地,本发明实施例提供一种哈希数据处理装置,包括:
第二接收模块,用于在数据处理过程中接收数据处理指令,所述数据处理指令包括待插入的关键值;
第三生成模块,用于采用与哈希桶内的空表项的位置对应的哈希函数生成与待插入的关键值对应的压缩关键值;
第一存储模块,用于将所述压缩关键值存储在所述空表项中。
本发明上述实施例在插入Key值时,对于选定的不同的Hash桶,可以采用不同的Hash函数生成compressed key,从而使得生成compressed key所需的Hash函数可以在多个Hash函数之间切换,从而降低了哈希冲突的概率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明哈希数据处理方法一个实施例的流程图;
图2为本发明哈希数据处理方法另一个实施例的流程图;
图3为本发明哈希数据处理方法再一个实施例的流程图;
图4为本发明哈希数据处理装置一个实施例的结构示意图;
图5为本发明哈希数据处理装置另一个实施例的结构示意图;
图6为本发明哈希数据处理装置再一个实施例的结构示意图
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210025028.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:介质隔离的压力传感器
- 下一篇:移动通信设备