[发明专利]多层Bloom Filter的构建及查询优化方法有效
申请号: | 201210202816.3 | 申请日: | 2012-06-19 |
公开(公告)号: | CN102799617A | 公开(公告)日: | 2012-11-28 |
发明(设计)人: | 曹强;黄建忠;谢长生;荣益麟;慎涵;黄国强 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 李智 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 多层 bloom filter 构建 查询 优化 方法 | ||
技术领域
本发明涉及计算机存储领域,具体地说,涉及多层Bloom Filter的构建和查询优化方法。
背景技术
Bloom filter是由Howard Bloom在1970年提出的二进制向量数据结构,可用来快速判定一个元素是否存在于一个集合中。相较于散列、树等方法,Bloom Filter可保证待查询数据集在存放时的空间局部性。随着待查询数据集的增长,数据集可被分割为若干个相同小容量的数据集,分别对应一个Bloom Filter。由于被查询数据要依次查询每个Bloom Filter,直至找到该数据或者查询结束,多个Bloom Filter的查询时间大大增加。为了加速海量数据集的查询过程,多层Bloom Filter被引进。当上层Bloom Filter的判定元素不存在,其对应下层的Bloom Filter即可不再查询,减少了Bloom Filter查询次数。
图2为三层Bloom Filter的结构组织,每层Bloom Filter包含的二进制bit位总数相等。第i层(1≤i<3)每个Bloom Filter对应于i+1层的2个Bloom Filter。
对一个哈希值进行查询时,先分别判定其在第一层的各Bloom Filter对应的bit位是否为1,若为1,查询命中,则该Bloom Filter对应的下层Bloom Filter要继续查询。如图1,第一层2个Bloom Filter对应bit位值均为1,则需要查询第一层这2个Bloom Filter在第二层中对应的所有Bloom Filter。对于没有命中的Bloom Filter,该哈希值不存在于其对应的数据集中,其对 应于下层的Bloom Filter不用继续查询。
查询第二层中相应的Bloom Filter,若要查询Bloom Filter的bit位值为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相应的bit位值为1,命中,则表示该哈希值可能存在在该Bloom Filter对应的数据集中,取该数据集进行查询。如图1,第三层第3个Bloom Filter命中,即取其对应的数据集查询该哈希值是否存在。对于没有命中的底层Bloom Filter,其对于数据集不用查询。如图1,除了第三层第3个Bloom Filter对应的数据集外,其他数据集均不用被查询。
多层Bloom Filter将被查询哈希值定位到不同的数据集,大大减少了数据的查询的次数,减少查询开销。
然而,对于海量数据集,对多层Bloom Filter查询次数会很大,Bloom Filter的查询变成一个瓶颈,。甚至当Bloom Filter规模超过内存容量时,会产生大量的磁盘访问(IO,Input/Output)。这直接造成元素查询的时间超过我们可承受范围。
发明内容
本发明的目的在于提供一种多层Bloom Filter的构建及查询优化方法,加快元素的查询过程。
一种多层Bloom Filter构建优化方法,各层Bloom Filter的个数组成为以第一层Bloom Filter个数为首项,且公比和首项同为Q的等比数列,满足QN×M≥S,Bloom Filter的层数N≥2,Q是磁盘扇区长度的整数倍,S为 总数据集的大小,M为第N层中每个Bloom Filter对应数据集的数据个数;
将第一层Q个Bloom Filter的相同位置的bit位放在磁盘同一连续地址空间,第j层的第m个Bloom Filter对应的第j+1层的Q个Bloom Filter中的相同位置的bit位放在磁盘同一连续地址空间,第j层的第m个Bloom Filter的bit位数与其对应的第j+1层的Q个Bloom Filter的bit位总数相等,j=1,…,N-1;
该方法具体为:
(A1)置i=1;
(A2)判断当前的多层Bloom Filter是否已包含总数据集中所有数据,若是,则结束,否则,进入步骤(3);
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210202816.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种裙式橡胶树根颈防寒保温装置
- 下一篇:边光式面状光源装置和液晶显示装置