哈希数据处理方法和装置的制作方法

文档序号:6600388阅读:339来源:国知局

专利名称::哈希数据处理方法和装置的制作方法
技术领域
:本发明实施例涉及通信领域,尤其涉及一种哈希数据处理方法和装置。
背景技术
:布隆过滤器(以下简称=BloomFilter)是一种空间效率很高的随机数据结构,它利用位数组表示一个集合,并能判断一个元素是否属于这个集合。现有的BloomFilter一般采用计数式布隆过滤器(以下简称^ountingBloomfilter)以支持删除操作。以三个哈希函数hl、h2和h3举例来说,在添加数据时,可以采用三个哈希函数hl、h2和h3对原始的键值(以下简称key)进行哈希变换,从而得到三个哈希表地址,然后将与这三个哈希表地址对应的计数器加1,在每一次添加数据时,与哈希表地址对应的计数器均需要加1。在查找原始数据时,该原始key经过哈希函数hi、h2和h3得到三个哈希表地址,如果三个哈希表地址对应的计数器的值都大于0,则表示查找到对应的数据。在删除数据时,需要删除的原始key,经过哈希函数hi、h2和h3得到三个哈希表地址,然后将这三个哈希表地址对应的计数器都减1。由于片内容量的限制,现有的countingBloomfilter为了支持大容量集合,一般都采用片外方式实现。在实现本发明过程中,发明人发现现有技术中至少存在如下问题在采用countingBloomfilter判定某一个数据是否属于该集合时,在片外需要随机访问多个地址,判断效率较低。
发明内容本发明实施例提供一种哈希数据处理方法和装置。本发明实施例提供一种哈希数据处理方法,包括对所需添加的数据进行第一哈希处理,获取第一哈希值;若与所述第一哈希值对应的片外哈希表的第一地址上存储用于表示所需添加的数据已存在的第一标识,则对所述数据进行第二哈希处理获取第二哈希值,并将所述第二哈希值与所述第一地址添加到片内哈希表中。本发明实施例提供另一种哈希数据处理方法,包括对所需查找的数据进行第一哈希处理获取第一哈希值,对所述数据进行第二哈希处理获取第二哈希值,在片内哈希表中查找与所述第一哈希值对应的第一地址和所述第二哈希值;若所述片内哈希表中不存在所述第一地址和第二哈希值,则在片外哈希表中查找所述第一地址上存储的用于表示所需查找的数据是否已存在的标识信息。本发明实施例提供一种哈希数据处理装置,包括第一处理模块,用于对所需添加的数据进行第一哈希处理,获取第一哈希值;第二处理模块,用于若与所述第一哈希值对应的片外哈希表的第一地址上存储用于表示所需添加的数据已存在的第一标识,则对所述数据进行第二哈希处理获取第二哈希值,并将所述第二哈希值与所述第一地址添加到片内哈希表中。本发明实施例提供另一种哈希数据处理装置,包括第三处理模块,用于对所需查找的数据进行第一哈希处理获取第一哈希值,对所述数据进行第二哈希处理获取第二哈希值,在片内哈希表中查找与所述第一哈希值对应的第一地址和所述第二哈希值;第四处理模块,用于若所述片内哈希表中不存在所述第一地址和第二哈希值,则在片外哈希表中查找所述第一地址上存储的用于表示所需查找的数据是否已存在的标识fn息ο本发明实施例,在添加或者查找数据时,片外只需要采用一个哈希函数对所需添加或者查找的数据进行哈希变换,从而只需访问一次片外地址,因此,提高了判断效率。为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明哈希数据处理方法一个实施例的流程图;图2为本发明哈希数据处理方法另一个实施例的流程图;图3为本发明哈希数据处理方法再一个实施例的流程图;图4为本发明哈希数据处理方法又一个实施例的流程图;图5为本发明哈希数据处理装置一个实施例的结构示意图;图6为本发明哈希数据处理装置再一个实施例的结构示意图;图7为本发明哈希数据处理装置又一个实施例的结构示意图。具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图1为本发明哈希数据处理方法一个实施例的流程图,如图1所示,本实施例的方法可以包括101、对所需添加的数据进行第一哈希处理,获取第一哈希值。举例来说,本实施例可以采用两级哈希表进行数据添加处理。该两级哈希表可以包括片外哈希表和片内哈希表。片外哈希表用来标识某个或某些原始key是否在数据集合中存在。片内哈希表用来处理对应于片外哈希表的同一位置的多于一个的原始key。本实施例可以假设,与片外哈希表对应的哈希函数为hl,与片内哈希表对应的哈希函数为h2。具体地,本实施例可以采用哈希函数hi对所需添加的数据,即所需添加的原始Key进行第一哈希处理,从而可以获取第一哈希值,该第一哈希值与片外哈希表的第一地址相对应。102、若与所述第一哈希值对应的片外哈希表的第一地址上存储用于表示所需添加的数据已存在的第一标识,则对所述数据进行第二哈希处理获取第二哈希值,并将所述第二哈希值与所述第一地址添加到片内哈希表中。需要说明的是,在本实施例中,哈希函数hi和h2可能相同,本实施例优选hi和h2为不同的哈希函数。本实施例中的片外哈希表可以采用两种标识信息表示各哈希地址对应的位置上是否存储哈希数据。例如,该片外哈希表可以采用用于表示所需添加的数据已存在的第一标识,例如“1”表示与某个或者某些哈希地址对应的位置上已经存储了哈希数据,可以采用用于表示所需添加的数据不存在的第二标识,例如“0”表示与某个或者某些哈希地址对应的位置上未存储哈希数据。具体来说,本实施例在进行第一哈希处理之后,可以根据第一哈希处理后获取的第一哈希值确定对应的第一地址,查找到该第一地址上存储的是第一标识还是第二标识,若该第一地址上存储第一标识,即表示该第一地址对应的存储位置上已经存储了哈希数据,因此,当前所需添加的数据需要被添加到片内哈希表中。添加到片内哈希表的过程可以为,对所需添加的数据进行第二哈希处理,即采用哈希函数h2对所需添加的数据进行哈希处理,从而获取第二哈希值,即fingerprint,然后将该第二哈希值和第一地址一起存储到片内哈希表中。由于不同的数据(Key值)通过第一哈希处理,可能得到的第一哈希值相同,则其对应的第一地址也相同,因此,为了降低误判率,在片内哈希表中存储fingerprint时,也将第一地址存储到片内哈希表中,从而保证在片内哈希表找到的存储地址是对应于片外哈希表的同一地址的。表1为本实施例中的片外哈希表一种实现方式,为了节约片外资源,本实施例中的片外哈希表可以只采用lbit。表1<table>tableseeoriginaldocumentpage6</column></row><table>需要说明的是,本实施例中将第二哈希值和第一地址存储到片内哈希表的过程可以采用现有哈希处理方法实现,例如采用多个哈希函数对“第一地址+fingerprint”进行哈希变换,生成多个存储地址。“第一地址+fingerprint”可能选择这些多个存储地址中的任一个,其具体过程不再赘述。本实施例,在添加数据时,片外只需要采用一个哈希函数对所需添加的数据进行哈希变换,从而只需访问一次片外地址,即可判断所需添加的数据是否已经存在,因此,提高了判断效率。而且,片外哈希表中每个哈希桶可以只使用lbit,因此节约了片外资源。图2为本发明哈希数据处理方法另一个实施例的流程图,如图2所示,本实施例的方法可以包括201、对所需添加的数据进行第一哈希处理,获取第一哈希值。202、判断与该第一哈希值对应的第一地址上存储的是第一标识还是第二标识,若是第一标识则执行204,若是第二标识则执行203。201和202的实现原理与图1所示101和102的实现原理相同,此处不再赘述。203、将第二标识修改为第一标识,结束。若第一地址存储的是第二标识,例如,该第一地址上存储的是“0”,则说明与该第一地址对应的存储位置上还没有存储哈希数据,此时,将该第二标识修改为第一标识,也即将第一地址上存储的“0”修改为“1”,即可完成添加数据的操作。204、对所述数据进行第二哈希处理获取第二哈希值,并尝试将所述第二哈希值与所述第一地址添加到片内哈希表中。若第一地址存储的是第一标识,例如存储的是“1”时,本实施例可以对所需添加的数据进行第二哈希处理,也即采用h2对所需添加的数据进行哈希处理,从而获取该数据的fingerprint,然后尝试着将该fingerprint和第一地址添加到片内哈希表中。该尝试过程,即为在判断片内哈希表是否溢出的过程。为了使片内哈希表降低溢出概率,在本实施例中,片内哈希表可以采用冲突概率可调整的哈希表,例如cuckoo哈希表。表2为本实施例中片内哈希表的一种实现方式,如表2所示,其中的有效表项表示已经存储了“fingerprint+第一地址”的表项,而空表项则表示还可以用于插入新添加的“fingerprint+第一地址”。表2<table>tableseeoriginaldocumentpage7</column></row><table>有效表项空表项空表项空表项205、判断片内哈希表是否溢出,若溢出则执行206,否则结束。如果在将“fingerprint+第一地址”尝试添加到片内哈希表的过程中,片内哈希表没有溢出,则表示添加成功。如果片内哈希表溢出,则表示添加不成功,执行206。206、将所述第一地址和第二哈希值添加到片内数组中。为了解决片内哈希表溢出导致添加不成功的问题,本实施例采用片内数组作为片内哈希表的补充,片内哈希表溢出,则“fingerprint+第一地址”可以存储到片内数组中。本实施例可以预先建立片内数组,该片内数组中的每一项均可以存储“fingerprint+第一地址”,而且每一项的大小也可以根据“fingerrint+第一地址”确定。在本实施例中,该片内数组不需要占用很大存储空间,其只要能够起到对片内哈希表的补偿作用即可。表3为本实施例中片内数组的一种实现方式,如表3所示,其中有效元素表示已经存储了“fingerprint+第一地址”的元素,而空元素则表示还可以用于插入新添加的"fingerprint+第一地址,,。表3<table>tableseeoriginaldocumentpage8</column></row><table>本实施例,在片外只需要采用一个哈希函数对所需添加的数据进行哈希变换,从而只需访问一次片外地址,即可判断所需添加的数据是否已经存在,因此,提高了判断效率;而且,片外哈希表中每个哈希桶可以只使用lbit,因此节约了片外资源;另外,本实施例还可以通过采用片内数组作为片内哈希表的补充,解决了片内哈希表的溢出问题。图3为本发明哈希数据处理方法再一个实施例的流程图,如图3所示,本实施例的方法可以包括301、对所需查找的数据进行第一哈希处理获取第一哈希值,对所述数据进行第二哈希处理获取第二哈希值,在片内哈希表中查找与所述第一哈希值对应的第一地址和所述第二哈希值。本实施例是与图1和图2所示的数据添加过程对应的数据查找过程。本实施例中查找的数据可以是采用图1和图2所示方法添加的数据。举例来说,本实施例可以采用两级哈希表进行数据添加处理。该两级哈希表可以包括片外哈希表和片内哈希表。本实施例可以假设,与片外哈希表对应的哈希函数为hl,与片内哈希表对应的哈希函数为h2。具体地,本实施例可以采用哈希函数hi对所需查找的数据,即所需查找的原始Key进行第一哈希处理,从而可以获取第一哈希值,该第一哈希值与片外哈希表的第一地址相对应,该第一地址即为片外哈希表的地址信息。并且,采用哈希函数h2对所需查找的原始Key进行第二哈希处理,从而可以获取第二哈希值,例如fingerprint。本实施例先在片内哈希表中查找该“fingerprint+第一地址”。在该过程中,采用“fingerprint+第一地址”的存储方式,可以保证在片内哈希表找到的存储地址是对应于片外哈希表的同一地址的,从而提高查找的正确率。302、若所述片内哈希表中不存在所述第一地址和第二哈希值,则在片外哈希表中查找所述第一地址上存储的标识信息。如果在片内哈希表中查找到“fingerprint+第一地址”,则本实施例无需进行下一步查找,而直接反馈查找到数据的确认信息。如果在片内哈希表中没有找到“fingerprint+第一地址”,本实施例可以在片外哈希表中查找,该查找过程可以为,查找第一地址上存储的信息,若第一地址上存储的信息为第一标识,则表示查找到该数据,例如,当第一地址上存储的是“1”时,则表示查找到该数据;若第一地址上存储的信息为第二标识,则表示未查找到该数据,例如,当查找的第一地址存储的是“0”时,则表示未查找到该数据。本实施例,在查找数据时,可以采用从片内到片外的顺序进行查找,在查找过程中,仅需要采用两个哈希函数对所需查找的数据进行哈希变换,而且在片内哈希表中没有找到的情况下访问片外哈希表时,也只需访问一次片外地址,因此,提高了查找效率。而且,片外哈希表中每个哈希桶可以只使用lbit,因此节约了片外资源。图4为本发明哈希数据处理方法又一个实施例的流程图,如图4所示,本实施例的方法可以包括401、对所需查找的数据进行第一哈希处理获取第一哈希值,对所述数据进行第二哈希处理获取第二哈希值。在本实施例可以采用三级哈希表结构进行处理,该三级哈希表可以包括片外哈希表、片内哈希表以及片内数组。其结构分别可以但并不限于采用表1至表3所示的结构。在对数据进行查找时,本实施例可以采用从内向外的顺序,也即按照片内数组、片内哈希表和片外哈希表的顺序进行查找。本实施例可以采用哈希函数hi对所需查找的数据,即所需查找的原始Key进行第一哈希处理,从而获取第一哈希值,该第一哈希值可以与第一地址相对应,该第一地址即为片外哈希表的地址信息。并且,采用哈希函数h2对所需查找的原始Key进行第二哈希处理,从而可以获取第二哈希值,即fingerprint。402、在片内数组中查找所述第一哈希值对应的第一地址和所述第二哈希值。本实施例先在片内数组中查找该“fingerprint+第一地址”。在该过程中,采用"fingerprint+第一地址”的存储方式可以保证在片内哈希表找到的存储地址是对应于片外哈希表的同一地址的,从而提高查找的正确率。403、判断在片内数组中是否找到第一地址和第二哈希值,若是则反馈确认信息,否则执行404。404、在片内哈希表中查找所述第一地址和第二哈希值。如果在片内数组中查找到“fingerprint+第一地址”,则本实施例无需进行下一步查找,而直接反馈查找到数据的确认信息;如果在片内数组中没有查找到“fingerprint+第一地址”,则本实施例可以在片内哈希表中查找“fingerprint+第一地址”。405、判断在片内哈希表中是否找到第一地址和第二哈希值,若是则反馈确认信息,否则执行406。406、在片外哈希表中查找所述第一地址上存储的标识信息。如果在片内哈希表中查找到“fingerprint+第一地址”,则本实施例无需进行下一步查找,而直接反馈查找到数据的确认信息,结束操作。如果在片内哈希表中没有找到“fingerprint+第一地址”,本实施例可以在片外哈希表中查找,该查找过程可以为,查找第一地址上存储的标识信息,若第一地址上存储的标识信息为第一标识,则表示查找到该数据,例如,当第一地址上存储的是“1”时,则表示查找到该数据;若第一地址上存储的标识信息为第二标识,则表示未查找到该数据,例如,当查找的第一地址存储的是“0”时,则表示未查找到该数据。本实施例还可以执行数据删除操作,具体来说,在所述片内数组或者片内哈希表中查找到所述第一地址和哈希值后,还包括删除所述第二哈希值和第一地址;或者在所述片外哈希表中查找到所述第一地址上存储的标识信息为第一标识后,还包括将所述第一地址上存储的第一标识修改为第二标识。具体来说,在需要删除数据时,本实施例可以首先执行上述查找过程。若在片内数组中成功找到第一地址和第二哈希值,则本实施例可以删除片内数组中的第一地址和第二哈希值,该第一地址在删除时可以尽量避免误删除在片外哈希表中其他位置的Key值。若在片内数组中没有找到第一地址和第二哈希值,而在片内哈希表中成功找到第一地址和第二哈希值,则本实施例可以删除片内哈希表中的第一地址和第二哈希值。若在片内数组和片内哈希表中均没有找到第一地址和第二哈希值,则本实施例可以在片外哈希表中查找第一地址上的标识信息,若第一地址上的标识信息为第一标识,则将第一标识修改为第二标识,例如将“1,,修改为“0”,从而完成删除操作。本实施例,在查找数据时,可以采用从片内到片外的顺序进行查找,在查找过程中,仅需要采用两个哈希函数对所需查找的数据进行哈希变换,而且在片内数组中没有找到数据时,则在片内哈希表中查找,在片内哈希表中没有找到的情况下访问片外哈希表时,也只需访问一次片外地址,因此,提高了查找效率。而且,片外哈希表中每个哈希桶可以只使用lbit,因此节约了片外资源。另外,本实施例还支持数据删除操作,在删除数据时可以有效防止误删操作。图5为本发明哈希数据处理装置一个实施例的结构示意图,如图5所示,本实施例的装置可以包括第一处理模块11和第二处理模块12,第一处理模块11用于对所需添加的数据进行第一哈希处理,获取第一哈希值;;第二处理模块12用于若与所述第一哈希值对应的片外哈希表的第一地址上存储用于表示所需添加的数据已存在的第一标识,则对所述数据进行第二哈希处理获取第二哈希值,并将所述第二哈希值与所述第一地址添加到片内哈希表中。本实施例的装置可以用于执行图1所示方法实施例的技术方案,其实现原理相同,不再赘述。本实施例,在添加数据时,片外只需要采用一个哈希函数对所需添加的数据进行哈希变换,从而只需访问一次片外地址,即可判断所需添加的数据是否已经存在,因此,提高了判断效率。而且,片外哈希表中每个哈希桶可以只使用lbit,因此节约了片外资源。本发明哈希数据处理装置另一个实施例可以采用图5所示的结构,在图5所示装置的基础上,进一步地,第二处理模块12还用于若与所述第一哈希值对应的片外哈希表的第一地址上存储用于表示所需添加的数据不存在的第二标识,则存储所需添加的数据并将所述第二标识修改为所述第一标识。而且,第二处理模块还用于若所述片内哈希表溢出,则将所述第一地址和第二哈希值添加到片内数组中。本实施例的装置可以用于执行图2所示方法实施例的技术方案,其实现原理相同,不再赘述。本实施例,在片外只需要采用一个哈希函数对所需添加的数据进行哈希变换,从而只需访问一次片外地址,即可判断所需添加的数据是否已经存在,因此,提高了判断效率;而且,片外哈希表中每个哈希桶可以只使用lbit,因此节约了片外资源;另外,本实施例还可以通过采用片内数组作为片内哈希表的补充,解决了片内哈希表的溢出问题。图6为本发明哈希数据处理装置再一个实施例的结构示意图,如图6所示,本实施例的装置可以包括第三处理模块21和第四处理模块22,其中第三处理模块21用于对所需查找的数据进行第一哈希处理获取第一哈希值,对所述数据进行第二哈希处理获取第二哈希值,在片内哈希表中查找与所述第一哈希值对应的第一地址和所述第二哈希值;第四处理模块22用于若所述片内哈希表中不存在所述第一地址和第二哈希值,则在片外哈希表中查找所述第一地址上存储的用于表示所需查找的数据是否已存在的标识信息。本实施例的装置可以用于执行图3所示方法实施例的技术方案,其实现原理相同,不再赘述。本实施例,在查找数据时,可以采用从片内到片外的顺序进行查找,在查找过程中,仅需要采用两个哈希函数对所需查找的数据进行哈希变换,而且在片内哈希表中没有找到的情况下访问片外哈希表时,也只需访问一次片外地址,因此,提高了查找效率。而且,片外哈希表中每个哈希桶可以只使用lbit,因此节约了片外资源。图7为本发明哈希数据处理装置又一个实施例的结构示意图,如图7所示,本实施例的装置在图6所示装置的基础上,进一步包括删除模块23,该删除模块23用于在所述片内数组或者片内哈希表中查找到所述第一地址和第二哈希值后,删除所述第二哈希值和第一地址;或者在所述片外哈希表中查找到所述第一地址上存储的标识信息为用于表示所需查找的数据已存在的第一标识后,将所述片外哈希表中第一地址上存储的第一标识修改为用于表示所述数据不存在的第二标识。进一步地,第四处理模块22在片内哈希表中查找与所述第一哈希值对应的第一地址和所述第二哈希值之前,还用于在片内数组中查找所述第一地址和第二哈希值,若在所述片内数组中查找到所述第一地址和第二哈希值,则所述第四处理模块结束操作,否则,执行后续步骤。本实施例的装置可以用于执行图4所示方法实施例的技术方案,其实现原理相同,不再赘述。本实施例,在查找数据时,可以采用从片内到片外的顺序进行查找,在查找过程中,仅需要采用两个哈希函数对所需查找的数据进行哈希变换,而且在片内数组中没有找到数据时,则在片内哈希表中查找,在片内哈希表中没有找到的情况下访问片外哈希表时,也只需访问一次片外地址,因此,提高了查找效率。而且,片外哈希表中每个哈希桶可以只使用lbit,因此节约了片外资源。另外,本实施例还支持数据删除操作,在删除数据时可以有效防止误删操作。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。权利要求一种哈希数据处理方法,其特征在于,包括对所需添加的数据进行第一哈希处理,获取第一哈希值;若与所述第一哈希值对应的片外哈希表的第一地址上存储用于表示所需添加的数据已存在的第一标识,则对所述数据进行第二哈希处理获取第二哈希值,并将所述第二哈希值与所述第一地址添加到片内哈希表中。2.根据权利要求1所述的哈希数据处理方法,其特征在于,若与所述第一哈希值对应的片外哈希表的第一地址上存储用于表示所需添加的数据不存在的第二标识,则将所述第二标识修改为所述第一标识。3.根据权利要求1所述的哈希数据处理方法,其特征在于,还包括若所述片内哈希表溢出,则将所述第一地址和第二哈希值添加到片内数组中。4.根据权利要求13中任一权利要求所述的哈希数据处理方法,其特征在于,所述片内哈希表为冲突概率可调整的哈希表。5.一种哈希数据处理方法,其特征在于,包括对所需查找的数据进行第一哈希处理获取第一哈希值,对所述数据进行第二哈希处理获取第二哈希值,在片内哈希表中查找与所述第一哈希值对应的第一地址和所述第二哈希值;若所述片内哈希表中不存在所述第一地址和第二哈希值,则在片外哈希表中查找所述第一地址上存储的用于表示所需查找的数据是否已存在的标识信息。6.根据权利要求5所述的哈希数据处理方法,其特征在于,所述在片内哈希表中查找与所述第一哈希值对应的第一地址和所述第二哈希值之前,还包括在片内数组中查找所述第一地址和第二哈希值,若在所述片内数组中查找到所述第一地址和第二哈希值,则结束所述方法,否则,执行后续步骤。7.根据权利要求6所述的哈希数据处理方法,其特征在于,还包括在所述片内数组或者片内哈希表中查找到所述第一地址和第二哈希值后,删除所述第二哈希值和第一地址;或者在所述片外哈希表中查找到所述第一地址上存储的标识信息为用于表示所需查找的数据已存在的第一标识后,还包括将所述片外哈希表中第一地址上存储的第一标识修改为用于表示所述数据不存在的第二标识。8.一种哈希数据处理装置,其特征在于,包括第一处理模块,用于对所需添加的数据进行第一哈希处理,获取第一哈希值;第二处理模块,用于若与所述第一哈希值对应的片外哈希表的第一地址上存储用于表示所需添加的数据已存在的第一标识,则对所述数据进行第二哈希处理获取第二哈希值,并将所述第二哈希值与所述第一地址添加到片内哈希表中。9.根据权利要求8所述的哈希数据处理装置,其特征在于,所述第二处理模块还用于若与所述第一哈希值对应的片外哈希表的第一地址上存储用于表示所需添加的数据不存在的第二标识,则存储所需添加的数据并将所述第二标识修改为所述第一标识。10.根据权利要求8所述的哈希数据处理装置,其特征在于,所述第二处理模块还用于若所述片内哈希表溢出,则将所述第一地址和第二哈希值添加到片内数组中。11.一种哈希数据处理装置,其特征在于,包括第三处理模块,用于对所需查找的数据进行第一哈希处理获取第一哈希值,对所述数据进行第二哈希处理获取第二哈希值,在片内哈希表中查找与所述第一哈希值对应的第一地址和所述第二哈希值;第四处理模块,用于若所述片内哈希表中不存在所述第一地址和第二哈希值,则在片外哈希表中查找所述第一地址上存储的用于表示所需查找的数据是否已存在的标识信息。12.根据权利要求11所述的哈希数据处理装置,其特征在于,所述第四处理模块在片内哈希表中查找与所述第一哈希值对应的第一地址和所述第二哈希值之前,还用于在片内数组中查找所述第一地址和第二哈希值,若在所述片内数组中查找到所述第一地址和第二哈希值,则所述第四处理模块结束操作,否则,执行后续步骤。13.根据权利要求12所述的哈希数据处理装置,其特征在于,还包括删除模块,用于在所述片内数组或者片内哈希表中查找到所述第一地址和第二哈希值后,删除所述第二哈希值和第一地址;或者在所述片外哈希表中查找到所述第一地址上存储的标识信息为用于表示所需查找的数据已存在的第一标识后,将所述片外哈希表中第一地址上存储的第一标识修改为用于表示所述数据不存在的第二标识。全文摘要本发明实施例提供一种哈希数据处理方法和装置。一个方法,包括对所需添加的数据进行第一哈希处理,获取第一哈希值;若与所述第一哈希值对应的片外哈希表的第一地址上存储用于表示所需添加的数据已存在的第一标识,则对所述数据进行第二哈希处理获取第二哈希值,并将所述第二哈希值与所述第一地址添加到片内哈希表中。本发明实施例,在添加或者查找数据时,片外只需要采用一个哈希函数对所需添加或者查找的数据进行哈希变换,从而只需访问一次片外地址,因此,提高了判断效率。文档编号G06F17/30GK101826107SQ20101014214公开日2010年9月8日申请日期2010年4月2日优先权日2010年4月2日发明者刘振肖申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1