CN102968467A - 一种多层Bloom Filter的优化方法及查询方法 - Google Patents

一种多层Bloom Filter的优化方法及查询方法 Download PDF

Info

Publication number
CN102968467A
CN102968467A CN2012104471654A CN201210447165A CN102968467A CN 102968467 A CN102968467 A CN 102968467A CN 2012104471654 A CN2012104471654 A CN 2012104471654A CN 201210447165 A CN201210447165 A CN 201210447165A CN 102968467 A CN102968467 A CN 102968467A
Authority
CN
China
Prior art keywords
bloom filter
layer
individual
cryptographic hash
continuous
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.)
Pending
Application number
CN2012104471654A
Other languages
English (en)
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.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN2012104471654A priority Critical patent/CN102968467A/zh
Publication of CN102968467A publication Critical patent/CN102968467A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种多层Bloom Filter的优化方法,包括以下步骤:根据总数据集的大小S确定Bloom Filter的层数N、第一层Bloom Filter个数Q以及底层每个Bloom Filter对应数据集的数据个数M,并设置计数器i=0,判断多层Bloom Filter的构造是否完毕,若未完毕,则接收新数据,判断底层第i个Bloom Filter对应数据集的数据个数是否等于M,若不等于,则使用哈希函数组对新数据进行哈希计算以得到哈希值,将底层Bloom Filter第i个Bloom Filter中与哈希值对应的比特位置1,并对底层Bloom Filter上面的各N-1层进行置位。本发明的方法使比特位查询操作更为简便,大大减少了磁盘访问的次数,有效减少了对多层Bloom Filter的查询时间。

Description

一种多层Bloom Filter的优化方法及查询方法
技术领域
本发明属于计算机存储领域,更具体地,涉及一种多层Bloom Filter的优化方法及查询方法。
背景技术
Bloom filter是由Howard Bloom在1970年提出的二进制向量数据结构,可用来快速判定一个元素是否存在于一个集合中。相较于散列、树等方法,Bloom Filter可保证待查询数据集在存放时的空间局部性。随着待查询数据集的增长,数据集可被分割为若干个相同小容量的数据集,分别对应一个Bloom Filter。由于被查询数据要依次查询每个Bloom Filter,直至找到该数据或者查询结束,多个Bloom Filter的查询时间大大增加。为了加速海量数据集的查询过程,多层Bloom Filter被引进。当上层Bloom Filter的判定元素不存在,其对应下层的Bloom Filter即可不再查询,减少了BloomFilter查询次数。
图2(a)为三层Bloom Filter的结构组织,每层Bloom Filter包含的二进制比特位总数相等。第i层(1≤i<3,i为正整数)每个Bloom Filter对应于i+1层的2个Bloom Filter。
对一个哈希值进行查询时,先分别判定其在第一层的各Bloom Filter对应的比特位是否为1,若为1,查询命中,则该Bloom Filter对应的下层BloomFilter要继续查询。如图1所述,第一层2个Bloom Filter对应比特位值均为1,则需要查询第一层这2个Bloom Filter在第二层中对应的所有BloomFilter。对于没有命中的Bloom Filter,该哈希值不存在于其对应的数据集中,其对应于下层的Bloom Filter不用继续查询。
查询第二层中相应的Bloom Filter,若要查询Bloom Filter的比特位值为1,查询命中,则该Bloom Filter对应的下层Bloom Filter要继续查询。如图1,第二层中第2个Bloom Filter命中,则要继续查询该Bloom Filter对应的第三层中的Bloom Filter。对于没有命中的Bloom Filter,其对应于下层的Bloom Filter不用继续查询。图1中第1、第3和第4个Bloom Filter对应于第三层的Bloom Filter即不用查询。
在底层Bloom Filter查询中,当要查询Bloom Filter相应的比特位值为1,命中,则表示该哈希值可能存在于该Bloom Filter对应的数据集中,取该数据集进行查询。如图1所示,第三层第3个Bloom Filter命中,即取其对应的数据集查询该哈希值是否存在。对于没有命中的底层Bloom Filter,其对于数据集不用查询。图1中除了第三层第3个Bloom Filter对应的数据集外,其他数据集均不用被查询。
多层Bloom Filter将被查询哈希值定位到不同的数据集,大大减少了数据的查询的次数,减少查询开销。
然而,对于海量数据集,对多层Bloom Filter查询次数会很大,BloomFilter的查询变成一个瓶颈,甚至当Bloom Filter规模超过内存容量时,会产生大量的磁盘访问(Input/Output,简称IO),这直接造成元素查询的时间超过我们可承受范围。
发明内容
针对现有技术的缺陷,本发明的目的在于提供一种多层Bloom Filter的优化方法,其能够加快元素的查询过程。
为实现上述目的,本发明提供了一种多层Bloom Filter的优化方法,包括以下步骤:
(1)根据总数据集的大小S确定Bloom Filter的层数N、第一层BloomFilter个数Q以及底层每个Bloom Filter对应数据集的数据个数M,并设置计数器i=0;其中,多层Bloom Filter各层Bloom Filter个数是以第一层BloomFilter个数Q为首项,公比同为Q的等比数列,且满足QN×M≥S,Q是磁盘扇区容量的整数倍,各层Bloom Filter包含的比特位总数相等;
(2)判断多层Bloom Filter的构造是否完毕,若完毕则过程结束,否则进入步骤(3);
(3)接收新数据;
(4)判断底层第i个Bloom Filter对应数据集的数据个数是否等于M,若等于,则进入步骤(5),否则进入步骤(6);
(5)设置i=i+1;
(6)使用哈希函数组对新数据进行哈希计算以得到哈希值,将底层Bloom Filter第i个Bloom Filter中与哈希值对应的比特位置1,并对底层Bloom Filter上面的各N-1层进行置位,然后返回步骤(2)。
步骤(6)中对底层Bloom Filter上面的各N-1层进行置位的操作包括:
(a)在第N层的第i个Bloom Filter对应的所有连续空间中选取与哈希值对应的连续空间,将该连续空间中属于第i个Bloom Filter的比特位置1;
(b)第N层第i个Bloom Filter对应于第N-1层的第
Figure BDA00002383856800031
个Bloom Filter,在第N-1层第
Figure BDA00002383856800032
个Bloom Filter对应的所有连续空间中选取与哈希值对应的连续空间,将该连续空间中属于第
Figure BDA00002383856800033
个Bloom Filter的比特位置1,
Figure BDA00002383856800034
表示向上取整;
(c)第N-1层的第
Figure BDA00002383856800035
个Bloom Filter对应于第N-2层的第
Figure BDA00002383856800036
个Bloom Filter,在第N-2层该第
Figure BDA00002383856800037
个Bloom Filter对应的所有连续空间中选取与哈希值对应的连续空间,将该连续空间中属于第
Figure BDA00002383856800038
个Bloom Filter的比特位置1;
(d)重复(a)至(c),直到将第一层Bloom Filter相应连续空间的相应比特位置1为止。
通过本发明所构思的以上技术方案,与现有技术相比,本发明具有以下的有益效果:
由于采用了比特位组织方式以及步骤(1)至(6)的优化方法,多层Bloom Filter在不增加存储空间的基础上,相应比特位查询操作更为简便,大大减少了磁盘访问的次数,有效减少了对多层Bloom Filter的查询时间。
本发明的另一目的在于提供一种多层Bloom Filter的查询方法,其能够加快元素的查询过程。
为实现上述目的,本发明提供了一种多层Bloom Filter的查询方法,包括以下步骤:
(1)根据总数据集的大小S确定Bloom Filter的层数N、第一层BloomFilter个数Q以及底层每个Bloom Filter对应数据集的数据个数M,并设置计数器i=0;
(2)判断多层Bloom Filter的构造是否完毕,若完毕则进入步骤(7),否则进入步骤(3);
(3)接收新数据;
(4)判断底层第i个Bloom Filter对应数据集的数据个数是否等于M,若等于,则进入步骤(5),否则进入步骤(6);
(5)设置i=i+1;
(6)使用哈希函数组对新数据进行哈希计算以得到哈希值,将底层Bloom Filter第i个Bloom Filter中与哈希值对应的比特位置1,并对底层Bloom Filter上面的各N-1层进行置位,然后返回步骤(2);
(7)初始化计数器j=1;
(8)使用与步骤(6)中相同的哈希函数组对待查询数据进行哈希运算以得到哈希值;
(9)从第一层的Q个Bloom Filter所对应的所有连续地址空间中选取与步骤(8)所得的哈希值对应的连续地址空间,对这些连续地址空间做按位相与运算,进入步骤(10);
(10)判断该与运算结果中的比特位是否全为0,若是,说明待查询数据不存在,过程结束,否则进入步骤(11);
(11)判断j是否等于层数N,若等于,进入步骤(14),否则进入步骤(12);
(12)对于每组与运算结果中值为1的每一个比特位,选取其所属的Bloom Filter对应的第j+1层的Q个Bloom Filter组成一组查询Bloom Filter,置j=j+1;
(13)对于第j层的每一组查询Bloom Filter,从该组查询Bloom Filter对应的所有连续地址空间中选取与步骤(8)所得的哈希值对应的连续地址空间,对这些连续地址空间做按位相与运算,然后返回步骤(11);
(14)在各组与运算结果中值为1的比特位所属的Bloom Filter对应的数据集中查询数据,过程结束。
步骤(6)中对底层Bloom Filter上面的各N-1层进行置位的操作包括:
(a)在第N层的第i个Bloom Filter对应的所有连续空间中选取与哈希值对应的连续空间,将该连续空间中属于第i个Bloom Filter的比特位置1;
(b)第N层第i个Bloom Filter对应于第N-1层的第
Figure BDA00002383856800051
个Bloom Filter,在第N-1层第
Figure BDA00002383856800052
个Bloom Filter对应的所有连续空间中选取与哈希值对应的连续空间,将该连续空间中属于第
Figure BDA00002383856800053
个Bloom Filter的比特位置1,
Figure BDA00002383856800054
表示向上取整;
(c)第N-1层的第
Figure BDA00002383856800061
个Bloom Filter对应于第N-2层的第
Figure BDA00002383856800062
个Bloom Filter,在第N-2层该第
Figure BDA00002383856800063
个Bloom Filter对应的所有连续空间中选取与哈希值对应的连续空间,将该连续空间中属于第个Bloom Filter的比特位置1;
(d)重复(a)至(c),直到将第一层Bloom Filter相应连续空间的相应比特位置1为止。
通过本发明所构思的以上技术方案,与现有技术相比,本发明具有以下的有益效果:由于采用了比特位组织方式以及步骤(1)至(14)的查询方法,一个哈希值对应同层Q个Bloom Filter的比特位存在于同一连续地址空间,通过对少数连续空间的查询即可实现对进行多层Bloom Filter的查询,显著地加快了查询速度。
附图说明
图1是现有技术中多层Bloom Filter的组织结构图。
图2(a)是现有技术中Bloom Filter的比特位组织方式。
图2(b)是本发明Bloom Filter的比特位组织方式。
图3是本发明多层Bloom Filter的优化方法的流程图。
图4是本发明多层Bloom Filter的查询方法的流程图。
图5是本发明多层Bloom Filter的优化方法的实例图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图2(a)给出现有Bloom Filter的比特位组织方式,在现有的多层BloomFilter中,上层一个Bloom Filter对应下层W个Bloom Filter(W为人为设定的正整数),每个Bloom Filter中所有的比特位在物理地址空间中是连续的。
图2(b)为本发明Bloom Filter的比特位组织方式,本发明多层BloomFilter的构建中,第一层Q个Bloom Filter的相同位置的比特位放在磁盘同一连续地址空间中,第j(j=1,…,N-1)层的第m个Bloom Filter对应于第j+1层的Q个Bloom Filter,所有Q个Bloom Filter相同位置的比特位放在磁盘同一连续地址空间中,第j层的第m个Bloom Filter的比特位数与其对应的第j+1层的Q个Bloom Filter的比特位总数相等。连续地址空间大小即为Q bit,第k个连续地址空间中第m(1≤m≤Q)个bit属于相应第m个Bloom Filter,其值即为相应第m个Bloom Filter的第k个比特位的值;对于关联的Q个Bloom Filter,一个哈希值对应于一个连续空间,其中Q、j、k、m、N均为正整数。
如图3所示,本发明多层Bloom Filter的优化方法包括以下步骤:
(1)根据总数据集的大小S确定Bloom Filter的层数N、第一层BloomFilter个数Q以及底层每个Bloom Filter对应数据集的数据个数M,并设置计数器i=0;其中,多层Bloom Filter各层Bloom Filter个数是以第一层BloomFilter个数Q为首项,公比同为Q的等比数列,且满足QN×M≥S,Q是磁盘扇区容量的整数倍,各层Bloom Filter包含的比特位总数相等;
(2)判断多层Bloom Filter的构造是否完毕,即当前的多层Bloom Filter已是否包含总数据集中所有数据,若完毕则过程结束,否则进入步骤(3);
(3)接收新数据;
(4)判断底层第i个Bloom Filter对应数据集的数据个数是否等于M,若等于,则进入步骤(5),否则进入步骤(6);
(5)设置i=i+1;
(6)使用哈希函数组对新数据进行哈希计算以得到哈希值,将底层Bloom Filter第i个Bloom Filter中与哈希值对应的比特位置1,并对底层Bloom Filter上面的各N-1层进行置位,然后返回步骤(2);
其中,对底层Bloom Filter上面的各N-1层进行置位的操作包括:
(a)在底层即第N层的第i个Bloom Filter对应的所有连续空间中选取与哈希值对应的连续空间,将该连续空间中属于第i个Bloom Filter的比特位置1;
(b)第N层第i个Bloom Filter对应于第N-1层的第
Figure BDA00002383856800081
个Bloom Filter,在第N-1层第
Figure BDA00002383856800082
个Bloom Filter对应的所有连续空间中选取与哈希值对应的连续空间,将该连续空间中属于第个Bloom Filter的比特位置1,
Figure BDA00002383856800084
表示向上取整;
(c)第N-1层的第
Figure BDA00002383856800085
个Bloom Filter对应于第N-2层的第
Figure BDA00002383856800086
个Bloom Filter,在第N-2层该第
Figure BDA00002383856800087
个Bloom Filter对应的所有连续空间中选取与哈希值对应的连续空间,将该连续空间中属于第
Figure BDA00002383856800088
个Bloom Filter的比特位置1;
(d)重复(a)至(c),直到将第一层Bloom Filter相应连续空间的相应比特位置1为止。
如图4所示,本发明多层Bloom Filter的查询方法包括以下步骤:
(1)根据总数据集的大小S确定Bloom Filter的层数N、第一层BloomFilter个数Q以及底层每个Bloom Filter对应数据集的数据个数M,并设置计数器i=0;
(2)判断多层Bloom Filter的构造是否完毕,即当前的多层Bloom Filter已是否包含总数据集中所有数据,若完毕则进入步骤(7),否则进入步骤(3);
(3)接收新数据;
(4)判断底层第i个Bloom Filter对应数据集的数据个数是否等于M,若等于,则进入步骤(5),否则进入步骤(6);
(5)设置i=i+1;
(6)使用哈希函数组对新数据进行哈希计算以得到哈希值,将底层Bloom Filter第i个Bloom Filter中与哈希值对应的比特位置1,并对底层Bloom Filter上面的各N-1层进行置位,然后返回步骤(2);
其中,对底层Bloom Filter上面的各N-1层进行置位的操作包括:
(a)在底层即第N层的第i个Bloom Filter对应的所有连续空间中选取与哈希值对应的连续空间,将该连续空间中属于第i个Bloom Filter的比特位置1;
(b)第N层第i个Bloom Filter对应于第N-1层的第个Bloom Filter,在第N-1层第
Figure BDA00002383856800092
个Bloom Filter对应的所有连续空间中选取与哈希值对应的连续空间,将该连续空间中属于第
Figure BDA00002383856800093
个Bloom Filter的比特位置1,
Figure BDA00002383856800094
表示向上取整;
(c)第N-1层的第
Figure BDA00002383856800095
个Bloom Filter对应于第N-2层的第个Bloom Filter,在第N-2层该第
Figure BDA00002383856800097
个Bloom Filter对应的所有连续空间中选取与哈希值对应的连续空间,将该连续空间中属于第
Figure BDA00002383856800098
个Bloom Filter的比特位置1;
(d)重复(a)至(c),直到将第一层Bloom Filter相应连续空间的相应比特位置1为止。
(7)初始化计数器j=1;
(8)使用与步骤(6)中相同的哈希函数组对待查询数据进行哈希运算以得到哈希值;
(9)从第一层的Q个Bloom Filter所对应的所有连续地址空间中选取与步骤(8)所得的哈希值对应的连续地址空间,对这些连续地址空间做按位相与运算,进入步骤(10);
(10)判断该与运算结果中的比特位是否全为0,若是,说明待查询数据不存在,过程结束,否则进入步骤(11);
(11)判断j是否等于层数N,若等于,进入步骤(14),否则进入步骤(12);
(12)对于每组与运算结果中值为1的每一个比特位,选取其所属的Bloom Filter对应的第j+1层的Q个Bloom Filter组成一组查询Bloom Filter,置j=j+1;
(13)对于第j层的每一组查询Bloom Filter,从该组查询Bloom Filter对应的所有连续地址空间中选取与步骤(8)所得的哈希值对应的连续地址空间,对这些连续地址空间做按位相与运算,然后返回步骤(11);
(14)在各组与运算结果中值为1的比特位所属的Bloom Filter对应的数据集中查询数据,过程结束。实例:
对于存储容量为512TB的海量重复数据删除系统,假设它基于块级重删,块大小为4KB,每个块对应一个指纹,指纹个数共有237个,每个指纹20个字节,加上其他元数据信息,一个指纹项需要32个字节,共有4TB大小的指纹库;其在内存中是放不下的;当一个新的数据块到来时,需要判定它是否和已存储的数据重复,即该数据块指纹和已有的指纹是否相同;
为了加快指纹查找过程,本发明引入了多层Bloom Filter,假定BloomFilter的错误率为万分之一,取10个哈希函数,相应每层Bloom Filter大小高达为320GB,两层即为640GB,其在内存中也是放不下的,需要放在磁盘中,其查询即会造成磁盘访问;
根据公式QN×M≥S,建立两层Bloom Filter,第一层有215个BloomFilter,因为公比为215,第二层有230个Bloom Filter,第二层即底层每个Bloom Filter对应27个指纹,即Q=215,N=2,M=27,S=237个,满足公式;
按照本发明的Bloom Filter构造方式,连续地址空间大小为215bit即4KB;
如图5,假定新指纹经过10个哈希函数得到3个不同的哈希值1,2,10。
三个哈希值对应于第一层Bloom Filter中第1、第2、第10个连续地址空间,我们取这3个相应的4KB连续地址空间,做与运算。
三个连续空间中第1个bit分别为1、1、0,相与结果为0;第2个bit分别为0、0、0,相与结果为0;第3个比特位分别为1、1、1,相与结果为1;其他各位相与结果均为0。
连续空间与结果中的第3个bit属于第一层第3个Bloom Filter,值为1表示其所属Bloom Filter查询命中,因为Bloom Filter为2层,需要查询该Bloom Filter对应的下一层即第二层的215个Bloom Filter。
根据哈希值,取第二层相应Bloom Filter的第1、第2、第10个连续地址空间,取这3个相应的4KB连续地址空间,将相应的空间做与运算,三个连续空间中第1个bit分别为1、1、0,相与结果为0;第1个bit分别为1、1、1,相与结果为1;其他各位相与结果均为0。
该层已经是最后一层Bloom Filter,读取该命中Bloom Filter对应的数据集,即第二层第2×215+2个Bloom Filter所对应的数据集。
若该多层Bloom Filter的比特位全部存储在磁盘,该查询访问磁盘的总数即为6次;
如果按照传统方式,要在第一层215个Bloom Filter中,每个Bloom Filter相应的3个比特位进行查询,这样做了3×215个比特位查询和至少215个512字节数据的磁盘访问,第二层做了同样3×215个比特位查询和至少215个512字节数据的磁盘访问,共有至少216次的磁盘访问;
现有Bloom Filter磁盘访问次数为优化后磁盘的访问次数约213倍。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.一种多层Bloom Filter的优化方法,其特征在于,包括以下步骤:
(1)根据总数据集的大小S确定Bloom Filter的层数N、第一层BloomFilter个数Q以及底层每个Bloom Filter对应数据集的数据个数M,并设置计数器i=0;其中,多层Bloom Filter各层Bloom Filter个数是以第一层BloomFilter个数Q为首项,公比同为Q的等比数列,且满足QN×M≥S,Q是磁盘扇区容量的整数倍,各层Bloom Filter包含的比特位总数相等;
(2)判断多层Bloom Filter的构造是否完毕,若完毕则过程结束,否则进入步骤(3);
(3)接收新数据;
(4)判断底层第i个Bloom Filter对应数据集的数据个数是否等于M,若等于,则进入步骤(5),否则进入步骤(6);
(5)设置i=i+1;
(6)使用哈希函数组对新数据进行哈希计算以得到哈希值,将底层Bloom Filter第i个Bloom Filter中与哈希值对应的比特位置1,并对底层Bloom Filter上面的各N-1层进行置位,然后返回步骤(2)。
2.根据权利要求1所述的优化方法,其特征在于,步骤(6)中对底层Bloom Filter上面的各N-1层进行置位的操作包括:
(a)在第N层的第i个Bloom Filter对应的所有连续空间中选取与哈希值对应的连续空间,将该连续空间中属于第i个Bloom Filter的比特位置1;
(b)第N层第i个Bloom Filter对应于第N-1层的第
Figure FDA00002383856700011
个Bloom Filter,在第N-1层第
Figure FDA00002383856700012
个Bloom Filter对应的所有连续空间中选取与哈希值对应的连续空间,将该连续空间中属于第个Bloom Filter的比特位置1,
Figure FDA00002383856700022
表示向上取整;
(c)第N-1层的第
Figure FDA00002383856700023
个Bloom Filter对应于第N-2层的第
Figure FDA00002383856700024
个Bloom Filter,在第N-2层该第
Figure FDA00002383856700025
个Bloom Filter对应的所有连续空间中选取与哈希值对应的连续空间,将该连续空间中属于第个Bloom Filter的比特位置1;
(d)重复(a)至(c),直到将第一层Bloom Filter相应连续空间的相应比特位置1为止。
3.一种多层Bloom Filter的查询方法,其特征在于,包括以下步骤:
(1)根据总数据集的大小S确定Bloom Filter的层数N、第一层BloomFilter个数Q以及底层每个Bloom Filter对应数据集的数据个数M,并设置计数器i=0;
(2)判断多层Bloom Filter的构造是否完毕,若完毕则进入步骤(7),否则进入步骤(3);
(3)接收新数据;
(4)判断底层第i个Bloom Filter对应数据集的数据个数是否等于M,若等于,则进入步骤(5),否则进入步骤(6);
(5)设置i=i+1;
(6)使用哈希函数组对新数据进行哈希计算以得到哈希值,将底层Bloom Filter第i个Bloom Filter中与哈希值对应的比特位置1,并对底层Bloom Filter上面的各N-1层进行置位,然后返回步骤(2);
(7)初始化计数器j=1;
(8)使用与步骤(6)中相同的哈希函数组对待查询数据进行哈希运算以得到哈希值;
(9)从第一层的Q个Bloom Filter所对应的所有连续地址空间中选取与步骤(8)所得的哈希值对应的连续地址空间,对这些连续地址空间做按位相与运算,进入步骤(10);
(10)判断该与运算结果中的比特位是否全为0,若是,说明待查询数据不存在,过程结束,否则进入步骤(11);
(11)判断j是否等于层数N,若等于,进入步骤(14),否则进入步骤(12);
(12)对于每组与运算结果中值为1的每一个比特位,选取其所属的Bloom Filter对应的第j+1层的Q个Bloom Filter组成一组查询Bloom Filter,置j=j+1;
(13)对于第j层的每一组查询Bloom Filter,从该组查询Bloom Filter对应的所有连续地址空间中选取与步骤(8)所得的哈希值对应的连续地址空间,对这些连续地址空间做按位相与运算,然后返回步骤(11);
(14)在各组与运算结果中值为1的比特位所属的Bloom Filter对应的数据集中查询数据,过程结束。
4.根据权利要求3所述的查询方法,其特征在于,步骤(6)中对底层Bloom Filter上面的各N-1层进行置位的操作包括:
(a)在第N层的第i个Bloom Filter对应的所有连续空间中选取与哈希值对应的连续空间,将该连续空间中属于第i个Bloom Filter的比特位置1;
(b)第N层第i个Bloom Filter对应于第N-1层的第
Figure FDA00002383856700031
个Bloom Filter,在第N-1层第个Bloom Filter对应的所有连续空间中选取与哈希值对应的连续空间,将该连续空间中属于第
Figure FDA00002383856700033
个Bloom Filter的比特位置1,
Figure FDA00002383856700034
表示向上取整;
(c)第N-1层的第
Figure FDA00002383856700041
个Bloom Filter对应于第N-2层的第
Figure FDA00002383856700042
个Bloom Filter,在第N-2层该第
Figure FDA00002383856700043
个Bloom Filter对应的所有连续空间中选取与哈希值对应的连续空间,将该连续空间中属于第个Bloom Filter的比特位置1;
(d)重复(a)至(c),直到将第一层Bloom Filter相应连续空间的相应比特位置1为止。
CN2012104471654A 2012-11-10 2012-11-10 一种多层Bloom Filter的优化方法及查询方法 Pending CN102968467A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2012104471654A CN102968467A (zh) 2012-11-10 2012-11-10 一种多层Bloom Filter的优化方法及查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2012104471654A CN102968467A (zh) 2012-11-10 2012-11-10 一种多层Bloom Filter的优化方法及查询方法

Publications (1)

Publication Number Publication Date
CN102968467A true CN102968467A (zh) 2013-03-13

Family

ID=47798605

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012104471654A Pending CN102968467A (zh) 2012-11-10 2012-11-10 一种多层Bloom Filter的优化方法及查询方法

Country Status (1)

Country Link
CN (1) CN102968467A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105975516A (zh) * 2016-04-27 2016-09-28 湖南蚁坊软件有限公司 一种流式大数据去重的方法
WO2017162102A1 (zh) * 2016-03-25 2017-09-28 阿里巴巴集团控股有限公司 数据处理方法和装置以及数据表处理方法和装置
CN108460030A (zh) * 2017-02-17 2018-08-28 北京大学 一种基于改进的布隆过滤器的集合元素判断方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102110171A (zh) * 2011-03-22 2011-06-29 湖南大学 基于树形结构的布鲁姆过滤器的查询与更新方法
CN102799617A (zh) * 2012-06-19 2012-11-28 华中科技大学 多层Bloom Filter的构建及查询优化方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102110171A (zh) * 2011-03-22 2011-06-29 湖南大学 基于树形结构的布鲁姆过滤器的查询与更新方法
CN102799617A (zh) * 2012-06-19 2012-11-28 华中科技大学 多层Bloom Filter的构建及查询优化方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017162102A1 (zh) * 2016-03-25 2017-09-28 阿里巴巴集团控股有限公司 数据处理方法和装置以及数据表处理方法和装置
CN107229663A (zh) * 2016-03-25 2017-10-03 阿里巴巴集团控股有限公司 数据处理方法和装置以及数据表处理方法和装置
TWI746517B (zh) * 2016-03-25 2021-11-21 香港商阿里巴巴集團服務有限公司 資料處理方法和裝置以及資料表處理方法和裝置
CN105975516A (zh) * 2016-04-27 2016-09-28 湖南蚁坊软件有限公司 一种流式大数据去重的方法
CN108460030A (zh) * 2017-02-17 2018-08-28 北京大学 一种基于改进的布隆过滤器的集合元素判断方法

Similar Documents

Publication Publication Date Title
CN103345472B (zh) 基于有限二叉树布隆过滤器的去冗文件系统及其构建方法
CN101963982B (zh) 基于位置敏感哈希的删冗存储系统元数据管理方法
CN104346357B (zh) 一种嵌入式终端的文件存取方法及系统
US9047330B2 (en) Index compression in databases
CN102799617B (zh) 多层Bloom Filter的构建及查询优化方法
CN101404032B (zh) 一种基于内容的视频检索方法及系统
CN103577440A (zh) 一种非关系型数据库中的数据处理方法和装置
CN102110171B (zh) 基于树形结构的布鲁姆过滤器的查询与更新方法
CN108897761A (zh) 一种聚簇存储方法及装置
CN104809182A (zh) 基于动态可分裂Bloom Filter的网络爬虫URL去重方法
CN105117417A (zh) 一种读优化的内存数据库Trie树索引方法
CN102737123B (zh) 一种多维数据分布方法
CN106326475A (zh) 一种高效的静态哈希表实现方法及系统
CN104636349A (zh) 一种索引数据压缩以及索引数据搜索的方法和设备
CN106066818B (zh) 一种提高重复数据删除备份系统恢复性能的数据布局方法
CN103678158B (zh) 一种数据布局优化方法及系统
CN102169491B (zh) 一种多数据集中重复记录动态检测方法
CN102890719B (zh) 一种对车牌号进行模糊搜索的方法及装置
CN104298736A (zh) 数据集合连接方法、装置及数据库系统
CN105117442A (zh) 一种基于概率的大数据查询方法
CN104346458A (zh) 数据存储方法和存储设备
CN102253985B (zh) 一种文件系统数据的管理方法及系统
CN104252457A (zh) 一种用于对数据集合进行管理的方法与设备
CN103870557A (zh) 基于数据库的电子档案存储系统
CN102999637A (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20130313