[发明专利]关键字存储、查找的方法及装置有效
申请号: | 201080003439.X | 申请日: | 2010-01-26 |
公开(公告)号: | CN102232219A | 公开(公告)日: | 2011-11-02 |
发明(设计)人: | 克里斯蒂安·兰比瑞;崔秀梅 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 王天尧 |
地址: | 518129 中国广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 关键字 存储 查找 方法 装置 | ||
技术领域
本发明涉及通信技术领域,尤其涉及关键字存储、查找的方法及装置。
背景技术
基于哈希(hash)的精确匹配算法在各领域均有广泛应用。低延时、低冲突概率和高性能是大家追求的目标。
现有技术提供了一种通过二次哈希算法实现精确匹配查找的方案。该方案中,对于一个进行精确匹配查找的关键字(key),使用两个哈希函数。
通过哈希函数1运算,可以得到一个初始哈希桶地址,初始哈希桶中包含若干压缩关键字单元和一个级连链表指针。每个压缩关键字单元由一个压缩关键字和一个关键字指针构成。有效的级连链表指针指向一个级连哈希桶。级连哈希桶的数据结构与初始哈希桶一致。
通过哈希函数2运算,可以得到一个压缩关键字。将得到的压缩关键字与初始哈希桶和/或级连哈希桶中存储的有效的压缩关键字进行如下比较:
如果初始哈希桶及相应的链表中没有匹配的压缩关键字,则需要检查是否有有效的级连哈希桶指针,并比较级连哈希桶中是否存在有效的匹配的压缩关键字;
如果所有关联的哈希桶中都没有匹配的压缩关键字,则说明本次查找没有命中;如果有有效的匹配的压缩关键字,则需要一一检查对应的完整关键字是否匹配,直至遍历结束或找到匹配的完整关键字;
如果所有有效匹配的压缩关键字对应的完整关键字都不匹配,说明本次查找没有命中;如果查到有匹配的完整关键字,则说明本次查找命中,查找结束。
发明人在实现本发明的过程中,发现上述现有技术存在如下不足:
哈希函数1的冲突会导致初始哈希桶中需要保存较多表项才能达到减少级连哈希桶的目的。但是初始哈希桶的桶深过深会导致存储空间和带宽的浪费。哈希函数2的冲突会导致压缩关键字冲突,需要多次访问哈希桶才能完成查找,这样会增加查找延时。
发明内容
本发明实施例提供一种关键字的存储方法,用以节约存储空间和带宽,该方法包括:
将关键字经第一哈希函数运算,获得第一哈希桶的地址;根据第一哈希桶的地址,查找第一哈希桶;
将所述关键字经第二哈希函数运算,获得第二哈希桶的地址;根据第二哈希桶的地址,查找第二哈希桶;
若第一哈希桶中没有与所述关键字的压缩关键字相冲突的压缩关键字,所述关键字的压缩关键字由所述关键字经第三哈希函数运算获得,则:
在第一哈希桶有剩余空间时,将所述关键字的压缩关键字及所述关键字的指针存入第一哈希桶;
在第一哈希桶没有剩余空间、第二哈希桶有剩余空间且第二哈希桶中没有与所述关键字的压缩关键字相冲突的压缩关键字时,将所述关键字的压缩关键字及所述关键字的指针存入第二哈希桶。
本发明实施例还提供一种关键字的查找方法,用以降低查找延时,提高查找效率,该查找方法包括:
在所述TCAM中查找所述关键字或所述关键字的压缩关键字;若未查找到,则:
在第一哈希桶中查找所述关键字的压缩关键字;若未查找到,则:
在第二哈希桶中查找所述关键字的压缩关键字。
本发明实施例还提供一种关键字的存储装置,用以节约存储空间和带宽,该装置包括:
第一哈希桶查找模块,用于将关键字经第一哈希函数运算,获得第一哈希桶的地址;根据第一哈希桶的地址,查找第一哈希桶;
第二哈希桶查找模块,用于将所述关键字经第二哈希函数运算,获得第二哈希桶的地址;根据第二哈希桶的地址,查找第二哈希桶;
第一确定模块,用于确定第一哈希桶中没有与所述关键字的压缩关键字相冲突的压缩关键字,所述关键字的压缩关键字由所述关键字经第三哈希函数运算获得;
第一存储模块,用于在第一哈希桶有剩余空间时,将所述关键字的压缩关键字及所述关键字的指针存入第一哈希桶;
第二存储模块,用于在第一哈希桶没有剩余空间、第二哈希桶有剩余空间且第二哈希桶中没有与所述关键字的压缩关键字相冲突的压缩关键字时,将所述关键字的压缩关键字及所述关键字的指针存入第二哈希桶。
本发明实施例还提供一种关键字的查找装置,用以降低查找延时,提高查找效率,该查找装置中的关键字由上述关键字的存储装置进行存储,该查找装置包括:
第一关键字查找模块,用于在所述TCAM中查找所述关键字或所述关键字的压缩关键字;
第二关键字查找模块,用于在所述第一关键字查找模块未查找到所述关键字或所述关键字的压缩关键字时,在第一哈希桶中查找所述关键字的压缩关键字;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201080003439.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:无线承载丢失信息的上报方法和装置
- 下一篇:操作数码相框的方法和装置