收藏 分享(赏)

联合多维布鲁姆过滤器查询算法.doc

上传人:tkhy51908 文档编号:7730701 上传时间:2019-05-24 格式:DOC 页数:10 大小:1.15MB
下载 相关 举报
联合多维布鲁姆过滤器查询算法.doc_第1页
第1页 / 共10页
联合多维布鲁姆过滤器查询算法.doc_第2页
第2页 / 共10页
联合多维布鲁姆过滤器查询算法.doc_第3页
第3页 / 共10页
联合多维布鲁姆过滤器查询算法.doc_第4页
第4页 / 共10页
联合多维布鲁姆过滤器查询算法.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、2008 年 1 月 Journal on Communications January 2008第 29 卷第 1 期 通 信 学 报 Vol.29 No.1联合多维布鲁姆过滤器查询算法谢鲲 1,4,秦拯 2,文吉 刚 1,张大方 2,谢高岗 31(1. 湖南大学 计算机与通信学院, 湖南 长沙 410082; 2. 湖南大学 软件学院, 湖南 长沙 410082;3. 中国科学院 计算技术研究所 网络与普适计算研究部, 北京 100080; 香港理工大学 电子计算学系,香港 九龙红石勘)摘 要:分析了现有多维布鲁姆过滤器查询算法(MDBF)工作原理,提出了一种改进的两步表示和查询的联合多维

2、布鲁姆过滤器(CMDBF)查询算法。CMDBF 新增一个用于表示元素整体的联合布鲁姆过滤器 CBF,CMDBF 中元素表示和查找分两步进行。将 MDBF 的各属性的表示和查询作为第一步,第二步联合元素所有属性域,利用CBF 完成元素整体的表示和查询确认。理论分析和仿真实验结果表明,CMDBF 能够支持多维集合元素的简洁表示和查询,相比 MDBF 查询误判率降低明显。关键词:计算机网络;分布式计算;分布式消息系统;集合元素查询;多维布鲁姆过滤器中图分类号:TP393 文献标识码:A 文章编号:1000-436X(2008)01-0056-09Combine multi-dimension Blo

3、om filter for membership queriesXIE Kun1,4, QIN Zheng2, WEN Ji-gang1, ZHANG Da-fang2, XIE Gao-gang3(1. School of Computer and Communication, Hunan University, Changsha 410082, China;2. School of Software, Hunan University, Changsha 410082, China;3. Networking and Ubiquitous Computing Department, Ins

4、titute of Computing Technology, Chinese Academy of Sciences, Beijing 100080, China;4. Department of Computing, The Hong Kong Polytechnic University, HungHom Kowloon, China)Abstract: Based on the analysis of multi-dimension Bloom filter(MDBF) presented before, a combine multi-dimension Bloom filter(C

5、MBE) was presented. CMDBF adds a combine Bloom filter (CBF) to MDBF to assist in representing the whole element. When representing or querying an element, CMDBF needs two steps, the first step is representing or querying every attribute of the element with MDBF, the second step is combining all attr

6、ibutes to further represent or query the whole element with combine Bloom filter for further validation. Both theoretical analysis and experiment show that the CMDBF can support concise representation and approximate membership query of data set from multiple attribute dimensions and CMDBF outperfor

7、ms MDBF in false positive.Key words: computer networks; distributed computing; distributed information system; set membership query; multidimensional bloom filter1 引言布鲁姆过滤器(Bloom filter)是一种精简的信息表示方案。布鲁姆过滤器对集合采用一个位串向量表示并能有效支持元素的哈希散列查找,是一种能够表示集合、支持集合查询的简洁数据结构。与传统查询算法、结构相比,传统的树型查询算法和哈希散列查询算法存储空间与元素自身大小

8、收稿日期:2006-12-07;修回日期:2007-10-11基金项目:国家自然科学基金资助项目(60673155, 90604015, 60703097); 湖南省科技计划基金资助项目(2006FJ4110);广东省科技计划基金资助项目(2007B01020043)Foundation Items: The National Natural Science Foundation of China(60673155, 90604015, 60703097); The Science and Technology Plan of Hunan Province(2006FJ4110); The S

9、cience and Technology Plan of Guangdong Province (2007B01020043)第 1 期 谢鲲等:联合多维布鲁姆过滤器查询算法 57和集合规模直接相关,而布鲁过滤器查询算法所需空间与元素自身大小无关,仅与元素映射到向量位数相关,大大节约存储空间。布鲁姆过滤器查询算法虽然存在稍许查询误判 1,2,但是由于其哈希散列查找的常数时间和存储空间开销 较 小 , 从 而 使 它 具 有 很 好 的 实 用 价 值 。最 初 的 应 用 主 要 集 中 在 数 据 库 操 作 、 字 典 查 询 和 文件 操 作 2。 最近 10 年,随着网络研究的发展以

10、及新的覆盖网和 P2P 网络应用技术的涌现,出现了布鲁姆过滤器查询算法研究高潮,应用于网络的领域和方式越来越多 2,3,包括覆盖网和 P2P 网节点协作交互 4,5、资源路由 6、数据帧路由标签 7、网络测量管理 8,9、网络入侵检测(intrusion detection)10、无线网络交互协议设计 11、流数据管理 12等网络应用领域。随着布鲁姆过滤器查询算法越来越多地被研究人员认识和重视,它将在现代计算机网络和一些新的学术领域得到更为广泛的应用。目 前 布 鲁 姆 过 滤 器 算 法 的 研 究 主 要 集 中 在 单 维元 素 的 表 示 和 查 询 , 如 标 准 布 鲁 姆 过 滤

11、 器 算 法 1、计 数 器 布 鲁 姆 过 滤 器 算 法 13、 压 缩 布 鲁 姆 过 滤 器算 法 14, 光 谱 布 鲁 姆 过 滤 器 算 法 15、 拆 分 型 布鲁 姆 过 滤 器 查 询 算 法 16、 动 态 布 鲁 姆 过 滤 器 算 法17和 本 文 作 者 提 出 的 分 档 布 鲁 姆 过 滤 器 算 法 18,19和可 扩 展 布 鲁 姆 过 滤 器 查 询 算 法 20。 这 些 算 法 从 不同 的 角 度 讨 论 和 优 化 布 鲁 姆 过 滤 器 的 设 计 以 满 足实 际 应 用 的 不 同 需 求 。 但 是 , 布 鲁 姆 过 滤 器 查 询算 法

12、 研 究 处 于 急 需 发 展 的 阶 段 , 存 在 很 大 的 理 论创 新 空 间 2。除了单维元素的表示和查询,在分布式系统中,多维元素的表示和查询是经常遇到的问题。以网络监测管理系统中的网络业务流为例,每个业务流都由五元组(source address, dest address, source port, dest port, protocol)惟一确定,在表示和查询网络业务流这种 5 维元素集合时,同样需要高效算法提高系统效率。所以,利用布鲁姆过滤器查找方便,空间简洁的特点,研究多维元素的高效查询算法,完成多维元素高效表示和查询成为查询算法领域迫切需要解决的问题,具有广泛的应用

13、前景。针对多维元素的表示和查询存在一种布鲁姆过滤器解决方案,文献17提出多维布鲁姆过滤器(MDBF, multi-dimensional bloom filters)。MDBF 由多个标准的布鲁姆过滤器组成,每个标准布鲁姆过滤器用来表示元素的一维属性子集合。MDBF实现简单,但是由于任何一维属性值出现误判,都会导致元素误判,MDBF 分割了各属性值合为元素一体的特点,误判率较高,算法具有改进的空间。本文详细讨论了多维元素的布鲁姆过滤器表示和查询方法,分析 MDBF 算法在元素表示和查询时的缺陷,提出一种改进的两步表示和查询的联合多维布鲁姆过滤器(CMDBF, combine multi- di

14、mensional Bloom filters)。CMDBF 在 MDBF 的基础上,增加一个联合标准布鲁姆过滤器 CBF,将多维元素整体经过 2 次哈希散列运算表示到 CBF中。CMDBF 的元素表示和查找分 2 步进行,将MDBF 作为元素表示和查找第一步,第二步联合元素各属性值利用 CBF 进行确认。仿真实验表明,CMDBF 和 MDBF 相比,虽然以增加一个 m bit 长的向量空间为代价,查询误判率降低效果明显。2 布鲁姆过滤器相关研究2.1 标准布鲁姆过滤器标 准 布 鲁 姆 过 滤 器 查 询 算 法 1, 核心是一个 V向量和一组哈希散列函数,标准布鲁姆过滤器原理如图 1 所示

15、。设集合 S=s1,s2,sn共有 n 个元素,通过 k 个哈希 散列函数 h1,h2,hk 映射到长度为 m 的向量 V 中。每一个哈希 散列函数相互独立且函数的取值范围为0,1,2, ,m1。集合映射到过滤器时,向量 V 初始化,将向量 V 所有比特位置 0。当元素插入集合中时,对于每一个元素 si,计算 hj(si)(1j k ),若 hj(si)=q,则令 BFq=1,将向量对应位置置位,完成元素的插入。当查询元素是否在集合时,对于给定的元素 x,检查向量V 的 k 个位置 (h1(x),h2(x),hk(x)是否都为 1。如果有一个为 0,x 一定不在集合中;如果全是 1,x 可能在

16、集合中,但不一定。此时就可能出现所谓假阳性误判(false positive)14,将不属于集合的元素误判断成属于集合中,而不存在假阴性误判(false negative),将属于集合中的元素而误判为不属于集合中。58 通 信 学 报 第 29 卷图 1 标准布鲁姆过滤器原理例 1 图 2 是标准布鲁姆过滤器查询算法实例。布鲁姆过滤器向量长度 m=5bit。每次映射和查找的哈希散列函数的个数为 k=2 个,2 个哈希散列函数分别为 h1(x)=x mod 5 和 h2(x)= (2x+3) mod 5。其中数据集合是 S=9,11,需要查询的元素是 15 和16。图 2 标准布鲁姆过滤器查询算

17、法实例定义 1 将不属于集合的元素误判断成属于集合中称为一次误判。发生误判的概率称为误判率。下文用三元组n,m,k 形式化表示标准布鲁姆过滤器算法,用四元组n,m,k,L 表示多维布鲁姆过滤器。n 为集合 S 的元素个数,m 为向量 V 的长度,k 为哈希散列函数个数,L 为元素维数。在本文的讨论中,假设哈希散列函数取值服从均匀分布,当集合中所有元素都映射完毕后,V 向量任一位为0 的概率为(1)/1()eknmpp标准布鲁姆过滤器的误判率为 14(2)BF /,xlkknfmkn使用标准布鲁姆过滤器完成集合存储。m 比特位的向量表示 n 个元素的集合,每个元素平均保存 m/n 位,空间十分节

18、俭。布鲁姆过滤器是在空间节俭和查询误判上的一个折衷。2.2 多维布鲁姆过滤器 MDBF针 对 多 维 元 素 的 表 示 和 查 询 问 题 , 目 前 存 在一 种 多 维 布 鲁 姆 过 滤 器 (MDBF) 17解 决 方 案 。MDBF 采 用 和 元 素 维 数 相 同 的 多 个 标 准 布 鲁 姆 过滤 器 组 成 , 直 接 将 多 维 元 素 的 表 示 和 查 询 分 解 为单 属 性 值 子 集 合 的 表 示 查 询 , 元 素 的 维 数 有 多 少 ,就 采 用 多 少 个 标 准 的 布 鲁 姆 过 滤 器 分 别 表 示 各 自对 应 的 属 性 。 进 行 元

19、 素 查 询 时 , 通 过 判 断 多 维 元素 的 各 个 属 性 值 是 否 都 在 相 应 的 标 准 布 鲁 姆 过 滤器 中 来 判 断 元 素 是 否 属 于 集 合 。 如 图 3 所 示 。对于n,m,k,L 的 MDBF,判断元素是否从属集合,需要判断所有的属性值是否在对应的属性子集合,多维布鲁姆过滤器误判率为 17图 3 MDBF 工作原理(3)MDBFBFBF1,L Lifmknfmknfkn多维布鲁姆过滤器查询时间为 O(kL),所需空间为 O(mL)。3 联合多维布鲁姆过滤器(CMDBF)3.1 MDBF 分析通过一个二维元素表示和查询的例子来分析现有 MDBF 误

20、判率情况。经过分析指出 MDBF 算法在元素表示和查询时的缺陷,进而给出改进的CMDBF 查询算法。例 2 多维布鲁姆过滤器查询算法实例。设二维元素为 x=A1,A2,其中 A1 和 A2 是 2 个不同的属性。使用 MDBF 需要 2 个标准布鲁姆过滤器BF1、BF 2 用来 分 别 表 示 属 性 A1 和 属 性 A2。 单 属 性域 的 布 鲁 姆 过 滤 器 向 量 都 取 m=8 bit。 每 次 映 射 和查 找 的 哈 希 散 列 函 数 的 个 数 为 2 个 , 2 个 属 性 值 映射 的 哈 希 散 列 函 数 取 一 致 , 简 单 定义这 2 个哈希散列函数为:h

21、1(x)=x mod 8 和 h2(x)=(2x+3) mod 8。其中数据集合是(9,7), (11,9),需要查询的元素是(11,15)。表 示 集 合 之 前 , 2 个 向 量 都 需 要 初 始 化 。 元 素第 1 期 谢鲲等:联合多维布鲁姆过滤器查询算法 59(9,7)插 入 后 , 第 一 维 布 鲁 姆 过 滤 器 向 量 BF11和BF15置 位 , 第 二 维 布 鲁 姆 过 滤 器 向 量 BF27和BF21置 位 , 两 向 量 状 态 分 别 如 图 4 第 2 行 所 示 。那 么 元 素 (11,9)插 入 后 的 向 量 状 态 如 图 4 第 3 行 所示

22、。图 4 MDBF 算法实例查询(11,15)是否在集合中。首先检查 11 是否在第一个属性集合中,11 对应的 2 个哈希散列地址 3、1,发现 BF13,BF 11都已置位,说明 11在属性 A1 集合中。然后检查 15 的 2 个哈希散列地址,发现 BF27,BF 21也已经置位,说明 15 也在属性 A2 的集合中,得出(11,15)在集合中的错误结论。文 献 17提 出 了 MDBF 算 法 , 并 认 为 “MDBF出 现 误 判 的 情 况 是 每 维 都 出 现 误 判 断 时 , 元 素 才 会被 误 判 断 ”。 通 过 上 面 的 实 例 分 析 发 现 : 实 际 上

23、,MDBF 算 法 在 任 何 一 维 误 判 断 时 都 会 导 致 元 素 的 误判 断 。 如 例 2 所 示 , 两 维 元 素 (11,15)进 行 查 询 判 断时 , 第 二 维 15 却 不 在 第 二 维 子 集 中 , 但 是 使 用 BF2误 判 断 15 在 该 子 集 中 , 此 时 就 出 现 了 两 维 元 素 由于 一 维 的 误 判 而 导 致 元 素 整 体 的 误 判 。 成 为 MDBF的 缺 陷 。上述结果的产生,是因为 MDBF 使用每个单独的 BF 来表示元素的每个单独的属性值,没有相应的结构将各属性值合成的元素表达出来。MDBF分割了各个属性值属

24、于元素一体的特点,仅通过单独判断元素的各个属性值是否在对应的子集合来进行元素的从属判断,不可避免发生例 2 的情况,将不属于集合的元素(11,15)误判为属于集合,因此有必要对 MDBF 进行改进。3.2 联合多维布鲁姆过滤器(CMDBF )原理考 虑 到 如 果 能 将 各 个 属 性 合 为 一 体 的 特 性 在 布鲁 姆 过 滤 器 中 表 示 出 来 , 得 到 元 素 的 整 体 信 息 必 然 可以 减 少 由 于 单 维 属 性 误 判 而 导 致 的 元 素 整 体 误 判 的可 能 性 。 由 此 提 出 改 进 的 联 合 多 维 布 鲁 姆 过 滤 器(CMDBF, c

25、ombine multi-dimensional Bloom filters)。CMDBF 由 两 部 分 过 滤 器 组 成 , 第 一 部 分 是 用 标 准 布鲁 姆 过 滤 器 表 示 的 各 属 性 子 集 , 采 用 和 MDBF 一 样的 机 制 ; 第 二 部 分 是 一 个 联 合 布 鲁 姆 过 滤 器CBF(combine blooms filter), 用 来 表 示 各 个 属 性 值 的联 合 。 这 里 存 在 如 何 将 元 素 表 示 到 CBF 的 问 题 , 如果 MDBF 每 次 映 射 哈 希 散 列 地 址 范 围 一 致 , 那 么 可以 直 接

26、用 不 同 属 性 域 的 对 应 哈 希 散 列 映 射 地 址 进 行异 或 运 算 , 通 过 2 次 哈 希 散 列 运 算 获 得 元 素 在 CBF中 的 位 置 , 将 CBF 对 应 位 置 置 位 , 完 成 元 素 到 CBF的 表 示 。 下 面 用 一 个 例 子 来 解 释 算 法 思 路 , 如 图 5 所示 , 其 中 , 为 异 或 运 算 。例 3 用 CMDBF 表示的二维集合(9,7), (11,9) ,查询(11,15)是否在集合中。表示集合之前,3 个向量都需要初始化。2 个元素插入后,BF 1 和 BF2 状态和例 2 中的 MDBF完全相同。所不同

27、的是,改进的多维布鲁姆过滤器中,增加了一个联合过滤器 CBF,元素(9,7) 在CBF 的映射地址可由单属性 9,7 在 BF1 和 BF2 中的地址直接计算,如 addr1=1 7=6(这里的 1 是属性“9”在 BF1 中的地址,7 是属性“7”在 BF1 中的地址,addr1 是由 2 个属性“9” , “7”共同决定) ,addr2=51=4。因此将 CBF6和 CBF4置位,完成元素(9,7)的插入。同理完成元素(11,9)到CMDBF 的表示,状态如图 5 第 3 行所示。查 询 (11,15)是 否 是 集 合 的 元 素 。 在 MDBF 的 基础 上 , 还 需 要 进 行

28、元 素 整 体 是 否 在 CBF 的 检 查 , 元素 (11,15)在 CBF 中 的 2 个 映 射 地 址 分 为addr1=3 7=4, addr2=1 1=0。 虽 然 CBF4=1, 但是 CBF0=0, 得 出 元 素 (11,15)不 在 集 合 中 的 正 确 结论 。图 5 CMDBF 算法实例60 通 信 学 报 第 29 卷虽 然 CMDBF 算 法 只 在 MDBF 算 法 上 增 加 了 一个 用 于 表 示 各 属 性 联 合 的 CBF 过 滤 器 , 但 元 素 在CBF 的 映 射 位 置 由 所 有 的 属 性 值 共 同 决 定 , 有 效 解决 由

29、于 单 属 性 的 误 判 断 而 造 成 元 素 整 体 误 判 断 的 可能 。设多维元素 x=A1,A2,AL,使用布鲁姆过滤器,虽然对于每维属性值,可能需要选择不同的哈希散列函数,但是仍然可以设计每维属性使用相同的哈希散列函数个数 ki=k(1i L) ,每个属性维数使用相同的长度的过滤器向量 mi=m(1iL)。那么每个属性的哈希散列映射地址为(4)atr_dHash(.)0,1 1,jjiixALk 和 MDBF 一样 17,attrj_addri0,1, ,m1就是属性 j 的第 i 个哈希散列地址。这就为每维属性值的联合提供了方便,可以通过这些映射地址的运算完成元素的多属性联合

30、表示,可定义联合布鲁姆过滤器 CBF 的哈希散列函数为(5)Hash()tr1_adtr2_adtr ixiiLk addri(1ik)是元素在 CBF 中的第 i 个映射地址,由各个属性值的映射地址通过异或运算得来,由多个属性联合确定。可以表现元素各属性值一体的特性,而且异或函数也是常用的哈希散列处理函数。由 attrj_addri 易得 addri,这样定义的 CBF 向量长度仍然是 m。CMDBF 在 MDBF 基础上增加一个联合的布鲁姆过滤器 CBF,而新增的 CBF 又由元素的所有属性值确定,这样元素整体就可以通过 2 次哈希散列运算表示出来,完成元素的表示和查找,如图 6 所示。图

31、 6 CMDBF 算法原理定理 1 CMDBF 算法的查询误判率小于MDBF 算法。证明 对于n ,m,k,L的 CMDBF,判断元素是否从属集合,需要第一轮 MDBF 的 L 个布鲁姆过滤器和第二轮联合布鲁姆过滤器对应位置都已置位。第二轮联合布鲁姆过滤器 CBF 的误判率可以直接计算为(6)CBF /BF,1expln1,kknmfmknef 则 CMDBF 的误判率为(7)CMDBFMDFCBF1B,LfknLfknfknm由 于 0f BF(m,k,n)1, 由 式 (3)和 式 (7)显 然 有f CMDBf MDBF。推 广 到 更 一 般 的 情 况 , 当 进 行 元 素 到 C

32、BF的 表 示 时 , 如 采 用 其 他 由 attrj_addri 到 addri 的转 换 方 法 , 此 时 CBF 的 长 度 可 能 并 不 是 m, 设为 m1, 由 式 (2)知 , 0f CBF(m1,k,n)1, 式 (7)仍 然可 以 得 出 f CMDB f MDBF 的结论。虽然 CMDBF 采用多于 MDBF 一个 m bit 长度的向量空间为代价,但是能够将元素属性值表达成一个整体,可以得到比 MDBF 更低的查询误判率,在第 4 节的实验分析中,将得出这种空间消耗对整个算法的性能影响并不大。3.3 联合多维布鲁姆过滤器算法CMDBF 算 法 的 元 素 插 入

33、流 程 如 图 7 所 示 。新 元 素 加 入 时 , 首 先 分 离 元 素 的 各 个 属 性 值 , 将每 个 属 性 值 对 应 的 标 准 布 鲁 姆 过 滤 器 置 位 , 同 时 ,在 计 算 每 个 属 性 值 映 射 地 址 时 , 通 过 异 或 运 算 ,得 到 由 多 属 性 值 确 定 的 该 元 素 在 联 合 布 鲁 姆 过 滤器 CBF 的 地 址 , 将 对 应 地 址 位 置 位 , 完 成 元 素 的插 入 。第 1 期 谢鲲等:联合多维布鲁姆过滤器查询算法 61图 7 CMDBF 算法元素插入进 行 元 素 是 否 在 集 合 的 查 询 判 断 时

34、。 使 用CMDBF, 需 要 进 行 2 个 步 骤 的 检 查 , 第 一 轮 检查 各 个 单 维 的 属 性 值 是 否 在 单 维 属 性 子 集 合 中 ,如 果 此 轮 检 查 发 现 元 素 的 各 属 性 值 都 已 经 映 射 到单 维 布 鲁 姆 过 滤 器 中 , 再 进 行 第 二 轮 检 查 , 第 二轮 由 各 维 属 性 值 联 合 映 射 所 对 应 的 联 合 布 鲁 姆 过滤 器 (CBF)是 否 都 被 置 位 , 如 已 经 被 置 位 , 判 断该 元 素 属 于 集 合 。 CMDBF 的 元 素 查 询 如 图 8 所示 。联合多维布鲁姆过滤器查

35、询时间为 O(k(L+1)= O(kL),存储空间为 O(m(L+1)=O(mL)。A l g o r i t h m 2 M e m b e r s h i p Q u e r y ( O b j e c t E l e m e n t )I n p u t : A n o b j e c t e l e m e n t w i t h m u l t i - a t t r i b u t eO u t p u t : I f e l e m e n t i s a m e m b e r o f S e t A , r e s p o n s e t r u e , e l s e r

36、e s p o n s e f a l s ei n t A d d r k , C A d d r k F o r ( i = 0 ; i E l e m e n t . a t t r _ L e n g t h ; i + + )B F = G e t B F ( i ) / / 获得该维对应的过滤器H a s h = G e t H a s h ( i ) / / 获得第 i 维属性对应的 k 个 h a s h 函数F o r ( j = 0 ; j k ; j + + )A d d r j = h a s h j ( E l e m e n t . a t t r i ) / /

37、得到单维布鲁姆过滤器地址I f ( B F A d d r j = = 0 ) / / 判断是否置位R e t u r n f a l s eE n d i fC A d d r j = C A d d r j A d d r j / / 计算 C B F 的哈希地址E n d F o rE n d F o rF o r ( j = 1 ; j k + 1 ; j + + )I f ( C B F C A d d r j = = 0 ) / / 判断是否置位R e t u r n f a l s eE n d I fE n d F o rR e t u r n t r u e图 8 CMDBF

38、 算法元素查询4 仿真实验本节通过仿真实验来验证 2 种多维布鲁姆过滤器算法性能。实验 1 通过随机实验验证算法性能。对二、三、四、五维元素集合分别进行实验。为了简化实验,每一维属性值直接采用的 32bit 整数,这些 32bit 整数都是由计算机随机产生的 32bit的无符号整数,数值范围为0,2 321。映射哈希散列函数采用 Carter 和 Wegman 定义的 H3 哈希散列函数 21,每个 H3 哈希散列函数对应一个 0,1 函数矩阵,H 3 函数具有很强的散列性,是一种常见的布鲁姆过滤器的实现函数 22,23,随机产生 H3 哈希散列函数矩阵,数据集合中每个元素的各个属性均通过 k

39、 个哈希散列运算映射到该属性对应的向量中和联合向量 CBF 中。实验过程首先将 10 000 个 元 素 通 过 元 素 插 入 流程 表 示 到 过 滤 器 中 。 为 了 得 到 查 询 误 判 率 , 采 取 1 000 个不在这 10 000 个元素集合中的元素完成布鲁姆过滤器查询,进行误判数目统计。如果所需查找元素的所有属性值对应的 k 个映射位置均为 1,表明该元素在集合中,出现了误判,因为这 1 000个元素都是不在集合中的元素。统计误判率为累计误判元素的个数和 1 000 比值。同时,为了得到一般的结论,对于每一组n,m,k,L,使用 100 个不同的多维数据集合完成100 次

40、仿真实验,仿真实验的误判率平均值和标准差如表 1 所示。为了比较起见,将误判率和空间消耗放到同一个表格中。从表 1,可以得出:1)仿真实验的误判率均值和理论结果十分一致,而且每组仿真实验的标准差都较小,不仅验证了误判率理论公式的正确性,而且说明通过随机产生的 H3 哈希散列函数完成的布鲁姆过滤器表示和查询,函数的散列性好,哈希散列地址可以均匀的分布到布鲁姆过滤器向量中。2)使用相同的哈希散列函数个数,当元素的维数越大时,查询误判率越低,验证了理论的误判率随着元素维数增加时的趋势,如式(3)和式(7)所示。3)当使用相同的哈希散列函数个数时,如L=2,k =4 时,CMDBF 的误判率为 0.0

41、15 045,而MDBF 的误判率为 0.060 47,约为 CMDBF 的误判率的 4 倍,CMDBF 查询误判率明显低于 MDBF的查询误判率。4)当 L=5 时 , CMDBF 使 用 196 608bit 表 示 10 000 个元素,平均每个元素占用 20bit 空间,而如果直接存储五维元素,共需要 325=160bit,用CMDBF 算法节约空间 87.7%。虽然 CMDBF 比 MDBF 多一个联合布鲁姆过62 通 信 学 报 第 29 卷滤器 CBF(m=32 768bit)的空间为代价,(CMDBF 的空间消耗依然十分少,具有布鲁姆过滤器算法空间节俭的特点),但是其查询误判率

42、明显优于MDBF,具有更好的查询算法性能。实验 2 根据实际 trace 记录进行网络业务流主机对统计。为了进一步验证所提出的 CMDBF 的有效性。本节对实际网络 trace 数据进行分析,统计实际网络中一段时间内的网络业务流主机对分布情况。实验数据源采用 NLANR 的 Trace25。实验目的是借助布鲁姆过滤器这种简洁的数据结构,统计每个时间片的通信主机对的个数,获得随时间的通信流量主机对的分布。进而为进一步构建网络 OD(origin-destination)流矩阵,为网络测量的全网流量分析和流量预测奠定基础。本实验的工作是统计随时间分布的网络业务流量主机对。从网络数据报文中提取源 I

43、P 地址和目的 IP地址组成的二维元素(Source_IP,Dest_IP)的集合是实验中操作的数据集合。实验中分别使用MDBF 和 CMDBF 算法辅助完成主机对个数统计,进而和实际网络运行结果比较。实验过程如下:Step1 首先初始化 BF(实验中分别实现了MDBF 和 CMDBF 2 种算法) ,将它们作为存储网络业务流主机对的数据结构;Step2 从 Trace 中获得数据报文,对于每一个数据报文,首先查询其对应源 IP 地址、目的 IP地址二维元素(Source_IP ,Dest_IP)是否在对应的BF 中?Step3 No,表明这是一个新的主机对,将新的二维元素(Source_IP

44、 ,Dest_IP)插入到对应的 BF中,将相应的统计变量加 1;Step4 Yes,表明该主机对已经存在,则处理下一个数据报文,转 Step2。实验结果如下。实验数据来源是加州大学的圣迭戈超级计算机中心(SDSC) 到 Abilene 的 OC12 链路,报文格式DAG3.2,采集于 2005 年 8 月 1 日。图 9(a)采用标记为 SDA-1122856626 的 Trace 数据源,采集时间为上午 08:38:14.26734808:39:47.196113;图 9(b)采用标记为 SDA-1122879035 的 Trace 数据源,采集时间为下午14:51:43.34630514

45、:53:15.616775。2 个数据源分别持续 93s,进行报文统计的时间粒度 t 为 1s。从图 9(a)和图 9(b),可以看出使用 CMDBF 算法获得的主机对和真实网络流量主机对基本一致,具有很高的准确性,并且比 MDBF 算法提高精度10%左右。 (如果直接采用上面的公式进行理论计算,只可能提高精度 4%左右,这里 6%的差距是因为 IP 报文的地址和上述的随机数据源不同,多个元素的单属性值存在一定的相关性,如相同的表 1 MDBF 和 CMDBF 比较 n=10 000;m=32 768bit; k=4,6,8;L=2,3,4,5维数哈希散列函数MDBF 误判率MDBF 空间/b

46、itCMDBF 误判率CMDBF 空间/bit理论值仿真实验理论值仿真实验均值 标准差 均值 标准差2K=4 0.06 101 0.060 47 0.002 0665 5360.015 07 0.015 045 0.001 27198 304K=6 0.122 98 0.123 696 0.003 66 0.043 127 0.043 058 0.002 285K=8 0.232 938 0.233 057 0.005 379 0.112 42 0.112 99 0.004 0033K=4 0.015 07 0.014 877 0.001 25598 3040.003 722 0.003 54

47、8 0.000 612131 072K=6 0.043 127 0.043 335 0.001 952 0.015 124 0.015 288 0.001 365K=8 0.112 42 0.111 411 0.004 17 0.054 26 0.053 532 0.002 6254K=4 0.003 722 0.003 827 0.000 333131 0720.000 919 0.000 949 0.000 333163 840K=6 0.015 124 0.015 294 0.001 203 0.005 304 0.005 34 0.000 805K=8 0.054 26 0.054 5

48、27 0.002 906 0.026 188 0.026 166 0.001 85K=4 0.000 919 0.000 923 0.000 297163 8400.000 227 0.000 242 0.000 169196 608K=6 0.005 304 0.005 339 0.000 746 0.001 86 0.001 851 0.000 425K=8 0.026 188 0.026 221 0.001 858 0.012 639 0.012 64 0.001 256第 1 期 谢鲲等:联合多维布鲁姆过滤器查询算法 63源地址对应不同目标地址组成的多个元素)。CMDBF 算法在此情况

49、下比 MDBF 算法具有更好的性能;C MDBF 的 查 询 误 判 率 永 远 小 于 MDBF,尤 其 是 当 集 合的多维属性和属性值存在一定相关性的情况下,图 9 网络业务流主机对分布CMDBF 比 MDBF 查询误判率降低明显。而且由于算法自身的空间简洁,可以有效的在高速缓存中实现,从而加快数据报文处理速度,可直接用于高速网络数据报文处理,具有较强的实用性。5 应用探讨布鲁姆过滤器的一个典型应用是 Web 代理系统 13:用布鲁姆过滤器表示每个代理所缓存的URL 目录摘要(summary cache),并存储到代理的高速缓存 DRAM 中,代理之间通过互传这种Summary Cache 信息来相互告知自己缓存

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报