CN101826107A - 哈希数据处理方法和装置 - Google Patents

哈希数据处理方法和装置 Download PDF

Info

Publication number
CN101826107A
CN101826107A CN 201010142145 CN201010142145A CN101826107A CN 101826107 A CN101826107 A CN 101826107A CN 201010142145 CN201010142145 CN 201010142145 CN 201010142145 A CN201010142145 A CN 201010142145A CN 101826107 A CN101826107 A CN 101826107A
Authority
CN
China
Prior art keywords
hash
address
data
sheet
cryptographic hash
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
CN 201010142145
Other languages
English (en)
Other versions
CN101826107B (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.)
Guangzhou Verce Intelligent Technology Co ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201010142145.7A priority Critical patent/CN101826107B/zh
Publication of CN101826107A publication Critical patent/CN101826107A/zh
Application granted granted Critical
Publication of CN101826107B publication Critical patent/CN101826107B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

本发明实施例提供一种哈希数据处理方法和装置。一个方法,包括:对所需添加的数据进行第一哈希处理,获取第一哈希值;若与所述第一哈希值对应的片外哈希表的第一地址上存储用于表示所需添加的数据已存在的第一标识,则对所述数据进行第二哈希处理获取第二哈希值,并将所述第二哈希值与所述第一地址添加到片内哈希表中。本发明实施例,在添加或者查找数据时,片外只需要采用一个哈希函数对所需添加或者查找的数据进行哈希变换,从而只需访问一次片外地址,因此,提高了判断效率。

Description

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

Claims (13)

1.一种哈希数据处理方法,其特征在于,包括:
对所需添加的数据进行第一哈希处理,获取第一哈希值;
若与所述第一哈希值对应的片外哈希表的第一地址上存储用于表示所需添加的数据已存在的第一标识,则对所述数据进行第二哈希处理获取第二哈希值,并将所述第二哈希值与所述第一地址添加到片内哈希表中。
2.根据权利要求1所述的哈希数据处理方法,其特征在于,若与所述第一哈希值对应的片外哈希表的第一地址上存储用于表示所需添加的数据不存在的第二标识,则将所述第二标识修改为所述第一标识。
3.根据权利要求1所述的哈希数据处理方法,其特征在于,还包括:
若所述片内哈希表溢出,则将所述第一地址和第二哈希值添加到片内数组中。
4.根据权利要求1~3中任一权利要求所述的哈希数据处理方法,其特征在于,所述片内哈希表为冲突概率可调整的哈希表。
5.一种哈希数据处理方法,其特征在于,包括:
对所需查找的数据进行第一哈希处理获取第一哈希值,对所述数据进行第二哈希处理获取第二哈希值,在片内哈希表中查找与所述第一哈希值对应的第一地址和所述第二哈希值;
若所述片内哈希表中不存在所述第一地址和第二哈希值,则在片外哈希表中查找所述第一地址上存储的用于表示所需查找的数据是否已存在的标识信息。
6.根据权利要求5所述的哈希数据处理方法,其特征在于,所述在片内哈希表中查找与所述第一哈希值对应的第一地址和所述第二哈希值之前,还包括:
在片内数组中查找所述第一地址和第二哈希值,若在所述片内数组中查找到所述第一地址和第二哈希值,则结束所述方法,否则,执行后续步骤。
7.根据权利要求6所述的哈希数据处理方法,其特征在于,还包括:在所述片内数组或者片内哈希表中查找到所述第一地址和第二哈希值后,
删除所述第二哈希值和第一地址;或者
在所述片外哈希表中查找到所述第一地址上存储的标识信息为用于表示所需查找的数据已存在的第一标识后,还包括:
将所述片外哈希表中第一地址上存储的第一标识修改为用于表示所述数据不存在的第二标识。
8.一种哈希数据处理装置,其特征在于,包括:
第一处理模块,用于对所需添加的数据进行第一哈希处理,获取第一哈希值;
第二处理模块,用于若与所述第一哈希值对应的片外哈希表的第一地址上存储用于表示所需添加的数据已存在的第一标识,则对所述数据进行第二哈希处理获取第二哈希值,并将所述第二哈希值与所述第一地址添加到片内哈希表中。
9.根据权利要求8所述的哈希数据处理装置,其特征在于,所述第二处理模块还用于若与所述第一哈希值对应的片外哈希表的第一地址上存储用于表示所需添加的数据不存在的第二标识,则存储所需添加的数据并将所述第二标识修改为所述第一标识。
10.根据权利要求8所述的哈希数据处理装置,其特征在于,所述第二处理模块还用于若所述片内哈希表溢出,则将所述第一地址和第二哈希值添加到片内数组中。
11.一种哈希数据处理装置,其特征在于,包括:
第三处理模块,用于对所需查找的数据进行第一哈希处理获取第一哈希值,对所述数据进行第二哈希处理获取第二哈希值,在片内哈希表中查找与所述第一哈希值对应的第一地址和所述第二哈希值;
第四处理模块,用于若所述片内哈希表中不存在所述第一地址和第二哈希值,则在片外哈希表中查找所述第一地址上存储的用于表示所需查找的数据是否已存在的标识信息。
12.根据权利要求11所述的哈希数据处理装置,其特征在于,所述第四处理模块在片内哈希表中查找与所述第一哈希值对应的第一地址和所述第二哈希值之前,还用于在片内数组中查找所述第一地址和第二哈希值,若在所述片内数组中查找到所述第一地址和第二哈希值,则所述第四处理模块结束操作,否则,执行后续步骤。
13.根据权利要求12所述的哈希数据处理装置,其特征在于,还包括:
删除模块,用于在所述片内数组或者片内哈希表中查找到所述第一地址和第二哈希值后,删除所述第二哈希值和第一地址;或者在所述片外哈希表中查找到所述第一地址上存储的标识信息为用于表示所需查找的数据已存在的第一标识后,将所述片外哈希表中第一地址上存储的第一标识修改为用于表示所述数据不存在的第二标识。
CN201010142145.7A 2010-04-02 2010-04-02 哈希数据处理方法和装置 Expired - Fee Related CN101826107B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010142145.7A CN101826107B (zh) 2010-04-02 2010-04-02 哈希数据处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010142145.7A CN101826107B (zh) 2010-04-02 2010-04-02 哈希数据处理方法和装置

Publications (2)

Publication Number Publication Date
CN101826107A true CN101826107A (zh) 2010-09-08
CN101826107B CN101826107B (zh) 2015-08-05

Family

ID=42690027

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010142145.7A Expired - Fee Related CN101826107B (zh) 2010-04-02 2010-04-02 哈希数据处理方法和装置

Country Status (1)

Country Link
CN (1) CN101826107B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011100924A2 (zh) * 2011-04-14 2011-08-25 华为技术有限公司 在哈希表中添加、查找或删除键值的方法及装置
CN104036054A (zh) * 2014-07-08 2014-09-10 携程计算机技术(上海)有限公司 目标地查找方法及系统
CN104182435A (zh) * 2013-05-24 2014-12-03 三星Sds株式会社 基于数据缺失标记的信息检索系统及方法
CN105683898A (zh) * 2014-01-17 2016-06-15 网络装置公司 对储存系统中数据高效存储与检索的组相关哈希表组织
CN106411654A (zh) * 2016-10-27 2017-02-15 任子行网络技术股份有限公司 一种处理网络流量分析的方法和装置
CN106484852A (zh) * 2016-09-30 2017-03-08 华为技术有限公司 数据压缩方法、设备与计算设备
CN107451271A (zh) * 2017-08-03 2017-12-08 上海达梦数据库有限公司 一种哈希表处理方法、装置、设备及存储介质
CN111107068A (zh) * 2019-12-09 2020-05-05 江苏云涌电子科技股份有限公司 一种fpga高效规则匹配方法及终端
CN111125093A (zh) * 2019-11-19 2020-05-08 贝壳技术有限公司 一种基于哈希存储的数据处理方法及装置
CN111723266A (zh) * 2019-03-19 2020-09-29 北京沃东天骏信息技术有限公司 海量数据处理方法和装置
CN112416933A (zh) * 2020-11-19 2021-02-26 重庆邮电大学 一种基于片内片外内存的高性能散列表实现方法
CN112511441A (zh) * 2020-11-18 2021-03-16 潍柴动力股份有限公司 报文的处理方法及装置
CN114253979A (zh) * 2021-12-23 2022-03-29 北京百度网讯科技有限公司 一种报文处理方法、装置及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1932818A (zh) * 2006-09-20 2007-03-21 华为技术有限公司 数据库系统及管理数据库数据的方法
CN101034412A (zh) * 2007-04-02 2007-09-12 华为技术有限公司 一种信息存储的方法、信息查找的方法及引擎装置
US20080229056A1 (en) * 2007-03-12 2008-09-18 Broadcom Corporation Method and apparatus for dual-hashing tables
CN101655820A (zh) * 2009-08-28 2010-02-24 深圳市茁壮网络股份有限公司 关键字存储方法及存储装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1932818A (zh) * 2006-09-20 2007-03-21 华为技术有限公司 数据库系统及管理数据库数据的方法
US20080229056A1 (en) * 2007-03-12 2008-09-18 Broadcom Corporation Method and apparatus for dual-hashing tables
CN101034412A (zh) * 2007-04-02 2007-09-12 华为技术有限公司 一种信息存储的方法、信息查找的方法及引擎装置
CN101655820A (zh) * 2009-08-28 2010-02-24 深圳市茁壮网络股份有限公司 关键字存储方法及存储装置

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011100924A3 (zh) * 2011-04-14 2012-04-05 华为技术有限公司 在哈希表中添加、查找或删除键值的方法及装置
WO2011100924A2 (zh) * 2011-04-14 2011-08-25 华为技术有限公司 在哈希表中添加、查找或删除键值的方法及装置
CN104182435B (zh) * 2013-05-24 2017-09-22 三星Sds株式会社 基于数据缺失标记的信息检索系统及方法
CN104182435A (zh) * 2013-05-24 2014-12-03 三星Sds株式会社 基于数据缺失标记的信息检索系统及方法
CN105683898A (zh) * 2014-01-17 2016-06-15 网络装置公司 对储存系统中数据高效存储与检索的组相关哈希表组织
CN104036054A (zh) * 2014-07-08 2014-09-10 携程计算机技术(上海)有限公司 目标地查找方法及系统
CN106484852A (zh) * 2016-09-30 2017-03-08 华为技术有限公司 数据压缩方法、设备与计算设备
CN106484852B (zh) * 2016-09-30 2019-10-18 华为技术有限公司 数据压缩方法、设备与计算设备
CN106411654A (zh) * 2016-10-27 2017-02-15 任子行网络技术股份有限公司 一种处理网络流量分析的方法和装置
CN107451271A (zh) * 2017-08-03 2017-12-08 上海达梦数据库有限公司 一种哈希表处理方法、装置、设备及存储介质
CN111723266A (zh) * 2019-03-19 2020-09-29 北京沃东天骏信息技术有限公司 海量数据处理方法和装置
CN111125093B (zh) * 2019-11-19 2023-09-15 贝壳技术有限公司 一种基于哈希存储的数据处理方法及装置
CN111125093A (zh) * 2019-11-19 2020-05-08 贝壳技术有限公司 一种基于哈希存储的数据处理方法及装置
CN111107068A (zh) * 2019-12-09 2020-05-05 江苏云涌电子科技股份有限公司 一种fpga高效规则匹配方法及终端
CN111107068B (zh) * 2019-12-09 2021-03-09 江苏云涌电子科技股份有限公司 一种fpga高效规则匹配方法及终端
CN112511441A (zh) * 2020-11-18 2021-03-16 潍柴动力股份有限公司 报文的处理方法及装置
CN112416933B (zh) * 2020-11-19 2022-09-23 重庆邮电大学 一种基于片内片外内存的高性能散列表实现方法
CN112416933A (zh) * 2020-11-19 2021-02-26 重庆邮电大学 一种基于片内片外内存的高性能散列表实现方法
CN114253979A (zh) * 2021-12-23 2022-03-29 北京百度网讯科技有限公司 一种报文处理方法、装置及电子设备
CN114253979B (zh) * 2021-12-23 2023-10-03 北京百度网讯科技有限公司 一种报文处理方法、装置及电子设备

Also Published As

Publication number Publication date
CN101826107B (zh) 2015-08-05

Similar Documents

Publication Publication Date Title
CN101826107B (zh) 哈希数据处理方法和装置
US7225186B2 (en) Binary search tree system and method
CN103164490B (zh) 一种不固定长度数据的高效存储实现方法和装置
CN107368436B (zh) 一种联合地址映射表的闪存冷热数据分离存储方法
CN102754394B (zh) 一种哈希表存储、查找方法以及装置
CN111352931A (zh) 一种哈希冲突的处理方法、装置及计算机可读存储介质
CN112131218B (zh) 一种基因对比的哈希查表方法、装置、设备及存储介质
CN111538724A (zh) 管理索引的方法
CN105224560A (zh) 缓存数据的查找方法和装置
US10838875B2 (en) System and method for managing memory for large keys and values
CN102959548A (zh) 数据存储方法、查找方法及装置
CN111831691B (zh) 一种数据读写方法及装置、电子设备、存储介质
CN112596949B (zh) 一种高效率的ssd删除数据恢复方法及系统
EP3343395A1 (en) Data storage method and apparatus for mobile terminal
CN104166649A (zh) 一种用于搜索引擎的缓存方法和设备
CN105574124A (zh) 一种基于产品信息的数据存储系统
CN102915324B (zh) 数据存储与检索装置和数据存储与检索方法
CN112527196B (zh) Cache读写方法、装置、计算机可读存储介质及电子设备
CN112068948B (zh) 数据散列方法、可读存储介质和电子设备
US20100077147A1 (en) Methods for caching directory structure of a file system
US20200320054A1 (en) Computer program for providing database management
CN105653464B (zh) 一种java智能卡的结构及其对象管理方法
CN111045608B (zh) 一种有效性代码的查找方法、装置、设备及可读存储介质
JP2006012006A (ja) キャッシュ装置及び方法
CN102760489B (zh) 闪存区块选取方法及数据储存装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20170615

Address after: 510640 Guangdong City, Tianhe District Province, No. five, road, public education building, unit 371-1, unit 2401

Patentee after: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right
CB03 Change of inventor or designer information

Inventor after: Jiang Ying

Inventor after: Shen Chao

Inventor after: Zhong Shan

Inventor after: Zhang Xin

Inventor before: Liu Zhenxiao

CB03 Change of inventor or designer information
TR01 Transfer of patent right

Effective date of registration: 20170808

Address after: 510000, unit 1109, 1110, sports east road, Guangzhou, Guangdong, Tianhe District (only for office use). 136138

Patentee after: Guangzhou Verce Intelligent Technology Co.,Ltd.

Address before: 510640 Guangdong City, Tianhe District Province, No. five, road, public education building, unit 371-1, unit 2401

Patentee before: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

TR01 Transfer of patent right
CP02 Change in the address of a patent holder

Address after: Room 901, Radio and Television Technology Building, 163 Pingyun Road, Tianhe District, Guangzhou City, Guangdong Province

Patentee after: Guangzhou Verce Intelligent Technology Co.,Ltd.

Address before: 510000 Tianhe District, Guangzhou, Guangdong Sports East Road 136138, 1109, 1110 units (for office use only)

Patentee before: Guangzhou Verce Intelligent Technology Co.,Ltd.

CP02 Change in the address of a patent holder
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150805

CF01 Termination of patent right due to non-payment of annual fee