Bloom Filters 散列函数数目多阶段动态优化算法
张 伟
1, 2
, 王汝传
1, 2
( 1. 南京邮电大学计算机学院, 江苏南京 210003; 2. 南京邮电大学计算机技术研究所, 江苏南京 210003)
摘 要: 标准 Bloom Filters 在操作前需要知道数据集合中不同元素数目才能确定最佳的 Hash 函数数目, 但是数
据集的分布情况并不容易事先获得. 本 文提出一种多阶段 Hash 函数数目动态优化 的 Bloom Filters( Multistage Dynamic
optimization Bloom Filters , MDBF) , 它将元素插入过程分为多个阶段, 在每个阶 段根据比特向量的使用情况分析插 入元
素的分布, 动态调整最优的 Hash 函数数目. 实验表明 MDBF 能够适应元素多样性和偏斜分布的 复杂情况, 选择最 优的
Hash 函数数目, 获得更低的误检率.
关键词: Bloom Filters; hash 函数; 偏斜分布; 误检率
中图分类号: TP393 文献标识码: A 文章编号: 03722112 ( 2011) 04087706
A MultiStage Dynamic Optimization Algorithm for
Bloom Filters Hash Functions Number
ZHANG Wei
1, 2
, WANG Ruchuan
1, 2
( 1. College of Computer , Nanj ing University of Posts & Telecommunications, N anji ng , Jiangsu 210003, China;
2. Institute of Computer Technology , Nanjing University of Posts & Telecommunications , Nanjing , Jiangsu 210003, China )
Abstract: Standard Bloom Filters needs to know the number of different elements in data set in order to determine the opti
mal number of hash functions.However, the data distribution information is not easy to obtain prior. This paper proposes a multi
stage dynamic optimization for Bloom Filters hash functions number ( MDBF ) . It splits element insertion procedure into several
stages, and in each stage of element insertion, M DBF decides the optimal hash function number by analyzing the inserted data distri
bution with bit vector usage situation. The experimental results show that MDBF can select the optimal number of hash functions to
obtain low false po sitive probability in complicated applications, which have element multiplicity and skewed distribution.
Key words: bloom filters; hash function; skewed distribution; false positive probability
1 引言
标准 Bloom Filters ( Standard Bloom Filters, SBF)
[ 1]
是
一种支持对元素集合成员关系查询的空间压缩数据结
构, 主要用于在有限空间中对大量数据进行管理的场
合. 近年来标准 BF 在网络应用领域中受到越来越多的
重视
[ 2]
, 如在 Web 缓存机制
[ 3]
中, 使用少量的空间生成
标准 BF 来保存大量邻居节点的资源存储情况, BF 应用
还包括 P2P 网络
[ 4]
、数据包分类
[ 5]
、快速 Hash 表查找
[ 6]
和路由过滤
[ 7]
等众多领域. BF 的各种改进版本可以分
为应用扩展、性能扩展和结构扩展三类. BF 的应用扩展
以 Counting Bloom Filters
[ 3]
, Compressed Bloom Filters
[ 8]
为
代表, 计数型 BF 使用多比特计数器代替标准 BF 中的
单比特位, 支持频度测量. 压缩型 BF 根据 Shannon 编码
原理, 通过改变标准 BF 比特向量串中 0 和 1 出现的概
率, 达到压缩数据的目的. BF 的性能扩展强调利用数据
信息来优化 BF 的设计, 如Weighted Bloom Filter
[ 9]
和 Bas
ket Bloom Filter
[ 10]
, 加权 BF 针对不同的元素使用不同数
目的 Hash 函数, 具体的Hash 数目取决于元素的查询频
率和集合相似度, 整个加权 BF 的误检值是所有元素查
询频度的加权和. 分档 BF 把元素分为若干集合, 不同
档的集合使用不同数目的 Hash 函数, 使总的查询失效
代价更小. BF 的结构扩展可以看成是多个 BF 的组合,
典型的有拆分型 Bloom Filters
[ 11]
、Dynamic Bloom Filters
[ 12]
和Timedecaying Bloom Filters
[ 13]
. 它们的共同之处是在标
准 BF 结构上进行空间的扩展, 都通过将 BF 的位向量
收稿日期: 20080925; 修回日期: 20100910
基金项目: 国家自然科学 基金 ( N o. 60973193, 61003039, 61003236) ; 江苏 省自 然科学 基 金( No. BK2008451) ; 省 级现 代服务业 发展 专项 基 金( No.
0801019C) ; 国家博士后基金 (No. 20090451241) ; 江苏高 校科技创新计 划项目( No. CX09B
-
153Z, CX10B
-
260Z, CX10B
-
261Z, CX10B
-
262Z) ; 江 苏省
六大高峰人才项目( No. 2008118) ; 江苏省计算机信息处理技术重点实验室基金( 2010)
第 4 期
2011 年 4 月
电 子 学 报
ACTA ELECTRONICA SINICA
Vol . 39 No. 4
Apr. 2011