CN1737799A - 一种基于分档BloomFilter结构的查询方法 - Google Patents

一种基于分档BloomFilter结构的查询方法 Download PDF

Info

Publication number
CN1737799A
CN1737799A CN 200510032146 CN200510032146A CN1737799A CN 1737799 A CN1737799 A CN 1737799A CN 200510032146 CN200510032146 CN 200510032146 CN 200510032146 A CN200510032146 A CN 200510032146A CN 1737799 A CN1737799 A CN 1737799A
Authority
CN
China
Prior art keywords
inquiry
cost
function
chromosome
file
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 200510032146
Other languages
English (en)
Other versions
CN100385443C (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.)
Hunan University
Original Assignee
Hunan University
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 Hunan University filed Critical Hunan University
Priority to CNB2005100321465A priority Critical patent/CN100385443C/zh
Publication of CN1737799A publication Critical patent/CN1737799A/zh
Application granted granted Critical
Publication of CN100385443C publication Critical patent/CN100385443C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

一种基于分档Bloom Filter结构的查询方法,它将元素根据不同的查询代价分为不同的子集,通过考查每档子集最低查询失效率的关系,建立每档子集合最低假阳性率表示集合整体最低查询失效代价目标函数,使用类目标函数梯度遗传算法获得每档的最优哈希函数个数ki,再完成集合到向量的映射与查找。它用于分布式计算、计算机网络资源定位、数据库的交互查询、P2P网络资源交互、传感器网络信息交换、计算机网络监测、计算机缓存系统设计等产生大量数据、需要进行交互查询的领域,可以大大减少集合查询的失效代价,实现集合的总体查询代价最小,由此降低资源消耗。

Description

一种基于分档Bloom Filter结构的查询方法
技术领域
本发明是一种支持集合查询从代价出发的基于分档Bloom Filter结构的查询方法,属于分布式计算技术领域,特别是涉及分布式系统产生大量数据、需要进行交互查询的应用。
背景技术
近年来,随着计算机的飞速发展,数据库,网络和其他应用中的数据集合规模呈几何增长。集合元素查询是数据集合中最常见的操作。当集合变得越来越大,访问和表示越来越困难,如何表示大数据集合,完成大数据集合下的查询成为国内外学术界的挑战。设计精简的数据结构表示并支持大集合的数据查询就成了迫切需要。
Bloom Filter是一种能够表示集合、支持集合查询的简洁数据结构,它能够有效的过滤掉不属于集合的元素。Bloom Filter结构的实质是将集合中的元素通过k个哈希函数映射到位向量中。Bloom Filter在达到其高效表示集合的同时,进行元素查询时却存在一定的假阳性错误,而不存在假阴性错误。这里假阳性错误是指,将不属于集合中的元素误判断属于集合中,假阴性错误是指,属于集合中的元素而误判断不属于集合中。以往的研究都已经证明Bloom Filter这种优秀的结构不存在假阴性错误。虽然Bloom Filter结构在元素查询时存在少量错误,但是由于它对存储空间的高效性,使得该数据结构由B.Bloom自1970年提出以来得到了比较广泛的应用。早期的应用主要集中在数据库操作和字典查询操作,最近,随着网络研究的发展以及新的覆盖网和P2P网络应用技术的涌现,Bloom Filter已经越来越广泛的应用于网络中,主要体现在以下几类:
1.覆盖网和P2P网节点协作交互:网络节点利用Bloom Filter存储节点的内容摘要,节点间通过互传摘要信息获得其他节点的存储内容信息,无需广播资源请求,节约节点间带宽资源,优化P2P网络的资源查询和资源互补;
2.资源路由:利用Bloom Filter记录邻接节点组的资源信息,通过一个多级的Bloom Filter结构,存储资源的路由分级信息,快速定位最短路径路由并确定到达目的节点的跳数;
3.数据帧路由标签:在IP字段中记录所通过路由器的Bloom Filter值,来判断数据帧是否重复经过路由器,从而确定是否出现环路。
4.网络测量管理:路由器中利用Bloom Filter为业务流计数,当流量超过阈值时产生告警并进行拥塞控制。
目前对Bloom Filter查询结构的研究主要有:1.标准的Bloom Filter;
2.计数器Bloom Filter;3.压缩Bloom Filter;4.Spectral Bloom Filter。
然而,当前的Bloom Filter结构因没有考虑集合的查询代价,它们认为集合元素在查询时所付出的I/O操作代价相同,而在实际中,集合中的元素由于查询失效(假阳性发生),元素的查询失效代价由于元素在集合中的作用和地位并不相同,查询失效时额外付出的操作代价并不相同。以往的Bloom Filter结构因为没有考虑到查询代价,它们对集合中的元素都均一对待,为每个元素分配同样多的哈希映射函数,每个元素查询失效率相同,导致集合的整体查询代价比较高。缺乏查询代价考虑并且缺乏元素的区分对待是当前Bloom Filter中通用弊端,这使得在当前实际应用中往往更耗资源。
发明内容
本发明要解决的技术问题是,针对现有技术存在的缺陷,提出一种基于分档Bloom Filter结构的查询方法,它用到分布式计算、计算机网络资源定位、数据库的交互查询、P2P网络资源交互、传感器网络信息交换、计算机网络监测、计算机缓存系统设计等产生大量数据、需要进行交互查询的应用领域,可以大大减少集合查询的失效代价,降低资源消耗。
本发明的技术解决方案是,所述基于分档Bloom Filter结构的查询方法的步骤为:
(1)按照集合中元素的查询代价分为不同的档(子集合);
   设集合S包含L档,则:
               S={{S1},{S2},L,{SL}}
(2)建立由每档子集合最低假阳性率表示的集合整体最小查询代价目
   标函数:
F baskets ( L ) = Σ i = 1 L n i c i f i = Σ i = 1 L n i c i ( 1 2 ) ln 2 · ( r i m Σ j = 1 L n j r j )
上式中,每档子集合的元素个数为ni=|Si|,子集合Si中元素发生查询失效时,所需的额外I/O操作代价为ci(1≤i≤L),子集合Si所需要的哈希映射函数个数为ki(1≤i≤L),对应的假阳性概率为fi(1≤i≤L),映射到长度为m的位串向量V,ri=ln(fi)(1≤i≤L);
(3)利用类目标函数梯度遗传算法求解最小查询代价目标函数,获得
   ri(1≤i≤L),步骤是:
步骤1:随机产生规模为n二进制编码染色体,每个染色体代表一个
r1,r2,L,rL序列;
步骤2:利用类目标函数梯度适应值函数计算每个染色体的适应值;类目标函数梯度适应值函数为:
F(L)=λf(L)+(1-λ)f(L)/inverse_number
其中inverse_number=τ(r1,r2,L,rL)为逆序数
f ( L ) = C max - F basket ( L ) , iff ( L ) < C max 0 iff ( L ) &GreaterEqual; C max
步骤3:检查是否已经达到最优结果,如果是转到步骤6,返回最优的染色体,否则继续;
步骤4:使用选择、交叉、变异,产生新一代n个染色体;
步骤5:利用新一带染色体代替老的染色体,转到步骤2:
步骤6:将染色体解码,获得r1,r2,L,rL
步骤7:求解获得每档映射哈希函数个数ki(1≤i≤L):
k i = ln 2 &CenterDot; ( r i m &Sigma; j = 1 L n j r j )
(4)利用ki(1≤i≤L)完成集合到向量的映射与查找。
以下对本发明做出进一步说明。
本发明第一次区分对待集合中待查询的元素,第一次考查Bloom Filter的查询代价,即本发明在Bloom Filter领域研究集合查询代价(重点为查询失效代价),将集合中的元素按照查询失效代价的不同而区分为不同的档(子集合),然后通过考查每档最低查询失效率和Bloom Filter设计的关系,建立由每档最低假阳性率表示的集合整体最低查询代价目标函数,将函数依赖转换为r_pair(ri,rj)(1≤i,j≤L),求解过程使用类目标函数梯度遗传算法获得每档的最优哈希函数个数ki(1≤i≤L),通过这些哈希函数的个数ki完成集合的表示和元素的查询。
关于本发明建立分档Bloom Filter集合整体最低查询失效代价目标函数的具体说明:
假设集合S包含L档,则:
         S={{S1},{S2},L,{SL}}
每档子集合的元素个数为ni=|Si|,子集合Si中元素发生查询失效时,所需的额外I/O操作代价为ci(1≤i≤L),子集合Si所需要的哈希映射函数个数为ki(1≤i≤L),对应的假阳性概率为fi(1≤i≤L);映射到长度为m的位串向量V;
那么定义整体查询失效代价函数为:
         F=n1f1c1+n2f2c2+L+nLfLcL    (1)
为了下面的文章中表述方便:我们将分档Bloom Filter方法(简称BBF)用{{n1,n2,L,nL},{c1,c2,L,cL},m,{k1,k2,L,kL}表示,将标准Bloom Filter(简称SBF)。
通过考查每档最低假阳性率和Bloom Filter设计关系,我们得到分档Bloom Filter集合整体最低查询代价表达式为:
F baskets ( L ) = &Sigma; i = 1 L n i c i f i = &Sigma; i = 1 L n i c i ( 1 2 ) ln 2 &CenterDot; ( r i m &Sigma; j = 1 L n j r j ) - - - ( 2 )
其中ri=ln(fi)(1≤i≤L),而且每档元素需要映射的哈希函数个数为:
k i = ln 2 &CenterDot; ( r i m &Sigma; j = 1 L n j r j ) - - - ( 3 )
下面是所述表达式的证明。2档Bloom Filter(L=2):
BBF={n1,n2},{c1,c2},m,{k1,k2}},集合中所有元素插入向量V后,向量V中任一位置为0的概率为:
( 1 - 1 m ) k 1 n 1 ( 1 - 1 m ) k 2 n 2 = ( 1 - 1 m ) k 1 n 1 + k 2 n 2 &ap; e - k 1 n 1 + k 2 n 2 m = p - - - ( 4 )
第一档元素的假阳性率为:
f1=exp(k1 ln(1-p))    (5)第二档元素的假阳性率为:
f2=exp(k2 ln(1-p))    (6)令g1=k1 ln(1-p),g2=k2 ln(1-p)。发现:
g1∶g2=r1∶r2=k1∶k2   (7)对g2求k2倒数,当g2取最小值时
k 2 min = ln 2 ( r 2 m r 1 n 1 + r 2 n 2 ) - - - ( 8 )
得到f2的最小值为:
f 2 min = ( 1 2 ) k 2 min = ( 1 2 ) ln 2 ( r 2 m r 1 n 1 + r 2 n 2 ) - - - ( 9 )
由k1,k2的比率关系(7)得k1=k2r2/r1,所以:
k 1 = ln 2 ( r 1 m r 1 n 1 + r 2 n 2 ) - - - ( 10 )
同理,我们取g1为最小值时,和前面的过程相似,可以得到:
k 1 min = ln 2 ( r 1 m r 1 n 1 + r 2 n 2 ) - - - ( 11 )
那么f1的最小值为:
f 1 min = ( 1 - p ) k 1 min = ( 1 2 ) ln 2 &CenterDot; ( r 1 m r 1 n 1 + r 2 n 2 ) - - - ( 12 )
由式(10)和式(11)我们发现k1=k1min。得出结论,两档子集可以同时获得每档最小假阳性率,那么用最小假阳性率表示的最低代价为:
F baskets ( L ) = n 1 c 1 f 1 min + n 2 c 2 f 2 min = &Sigma; i = 1 L n i c i ( 1 2 ) ln 2 &CenterDot; ( r i m &Sigma; j = 1 L n j r j ) - - - ( 13 )
满足式(2)得证,函数值依赖于r_pair(r1,r2),下面就更一般的情况进行证明。多档Bloom Filter(L>2):
BBF={{n1,n2,L,nL},{c1,c2,L,cL},m,{k1,k2,L,kL}}。
当L档元素都映射到V向量后,向量V中任一位为0的概率为:
( 1 - 1 m ) k 1 n 1 L ( 1 - 1 m ) k L n L = ( 1 - 1 m ) &Sigma; i = 1 L k i n i &ap; e - &Sigma; i = 1 L k i n i m = p - - - ( 14 )
每一档子集中的元素出现假阳性率为:
f 1 = ( 1 - p ) k 1 = exp ( k 1 ln ( 1 - p ) )
f 2 = ( 1 - p ) k 2 = exp ( k 2 ln ( 1 - p ) ) - - - ( 15 )
L
f L = ( 1 - p ) k L = exp ( k L ln ( 1 - p ) )
令g1=k1 ln(1-p),...,gL=kL ln(1-p),得:
gi∶gj=ki∶kj=ri∶rj  (1≤i,j≤L)    (16)g1是k1的函数,p也是k1的函数,当g1求倒数取最小值时:
k 1 min = ln 2 ( m &Sigma; i = 1 L n i r i / r 1 ) - - - ( 17 )
将k1min代入式(15)得f1最小值:
f 1 min = ( 1 2 ) k 1 min = ( 1 2 ) ln 2 ( r j m &Sigma; i = 1 L n i r i ) - - - ( 18 )
从式(17)得出ki=k1r1/ri
k i = ln 2 &CenterDot; ( r i m &Sigma; j = 1 L n i r j ) - - - ( 19 )
类似上面推导,这些k1,k2,L,kL使得每档的f1,f2,L,fL都达最小值,其他每档的最小假阳性率为:
f i min = ( 1 2 ) k i min = ( 1 2 ) ln 2 ( r i m &Sigma; i = 1 L n j r j ) - - - ( 20 )
此时用最小假阳性概率表示的集合查询代价函数为:
F baskets ( L ) = &Sigma; i = 1 L n i c i f i = &Sigma; i = 1 L n i c i ( 1 2 ) ln 2 &CenterDot; ( r i m &Sigma; i = 1 L n j r i ) - - - ( 21 )
式(2)得证。该函数的值取决于r_pair(ri,rj)(1≤i,j≤L)。用类目标函数梯度遗传算法获得ki(1≤i≤L)值:
我们得到由最低假阳性率表示的集合整体最低查询失效代价函数表达式,由于ni,ci都是常数,求该表达式的最小值就是确定r_pair(ri,rj)(1≤i,j≤L)。然后根据式(3)获得查询应用时的哈希函数个数ki
利用类目标函数梯度遗传算法求解每档ki
步骤1:随机产生规模为n二进制编码染色体,每个染色体代表一个r1,r2,L,rL序列;
步骤2:利用类目标函数梯度适应值函数计算每个染色体的适应值;
类目标函数梯度适应值函数为:
F(L)=λf(L)+(1-λ)f(L)/inverse_number
其中inverse_number=τ(r1,r2,L,rL)为逆序数
f ( L ) = C max - F basket ( L ) , iff ( L ) < C max 0 iff ( L ) &GreaterEqual; C max
步骤3:检查是否已经达到最优结果,如果是转到步骤6,返回最优的染色体,否则继续;
步骤4:使用选择、交叉、变异,产生新一代n个染色体;
步骤5:利用新一带染色体代替老的染色体,转到步骤2
步骤6:将染色体解码,获得最优r1,r2,L,rL
步骤7:通过式(3)计算每档的映射函数个数ki(1≤i≤L),此时借助ki可以完成集合到向量的映射和集合元素查询过程,并且可以使集合整体查询代价最小。
考虑到式(2)每个子项nicifi,ni和ci是独立于fi的常数,所以乘积nici越大,fi越小,这样整体查询失效代价减小,fi越小,就要求该子集合的映射函数越多,ki就越大,对应得ri就越大,所以本发明设计类目标函数梯度适应度值函数,首先将元组(nici,ri)根据nici从小到大排列,取此时ri的逆序数带入适应值函数。
这里的适应值函数采用类目标函数梯度适应值函数:
F(L)=λf(L)+(1-λ)f(L)/inverse_number    (22)
其中
f ( L ) = C max - F basket ( L ) , iff ( L ) < C max 0 iff ( L ) &GreaterEqual; C max - - - ( 23 )
inverse_number=τ(r1,r2,L,rL)取的是逆序数,如:τ(1,2,3,4,5)=0+0+0+0+0=0,τ(1,4,2,3,5)=0+2+0+0+0=2。
1.计算代价比较
对于BBF而言完成集合到向量映射需要进行哈希计算的总次数记为:
  Cbasket=n1k1+n2k2+L+nLkL                                (24)对于SBF而言哈希计算总次数为:
  Cstandard=(n1+n2+L+nL)·k                              (25)
k i = ln 2 &CenterDot; ( r i m &Sigma; j = 1 L n j r i ) 带入式(24),得:
Cbasket=(n1k1+n2k2+L+nLkL)
= ln 2 ( n 1 r 1 m &Sigma; j = 1 L n j r j + n 2 r 2 m &Sigma; j = 1 L n j r j + L + n L r L m &Sigma; j = 1 L n j r j ) - - - ( 26 )
= ln 2 ( n 1 r 1 + n 2 r 2 + L + n L r L &Sigma; j = 1 L n j r j ) m = ln ( 2 ) &CenterDot; m
k = ln ( 2 ) ( m &Sigma; i = 1 L n i ) 代入式(25)中, 得:
Cstandard=ln(2)m                                              (27)
这说明分档Bloom Filter和标准Bloom Filter两者计算时间相同。
2.查询代价比较:
参见图1、图2,图中横坐标表示遗传算法代数,纵坐标表示查询代价数。图1是以三档数据为例:图1(a)、图1(b)和图1(c)的向量长度分别为900bit、1050bit和1200bit,图1(a)BBF通过7代遗传得到整体代价为48.98438,比SBF的代价减少77.1%,此时三档BBF用于集合映射的实现参数是:{k1,k2,k3,}={6,6,2}。图1(b)通过1代遗传达到最小查询代价36.36719,比SBF减少代价66%。图1(c)通过14代遗传达到24.49219,通过染色体解码,此时的每档映射需要的哈希函数个数为{k1,k2,k3,}={7,7,3}。
图2以六档数据为例,对查询代价进行比较。
                                    表1
 Baskets  Element number  Element cost  SBF  BBF
2345678910 {31,46}{95,56,28}{91,47,23,32}{48,66,37,30,82}{40,34,26,48,94,42}{61,68,63,45,44,81,77}{64,27,36,79,33,24,34,26}{71,84,39,91,48,63,45,29,77}{34,32,42,38,23,42,27,92,36,22} {20,2}{17,2,1}{14,6,9,1}{19,11,7,5,1}{20,15,15,4,2,2}{16,14,12,15,6,2,2}{10,17,9,3,6,7,3,1}{16,13,19,6,3,2,2,3,1}{20,20,13,10,15,8,11,3,6,3}  22.25219.375112.1875133.0625135.25492.37567.3125504.875118.1875  7.718867.234451.187572.2553.2813256.343837.6992260.37562.7734 35%31%46%54%39%52%56%52%53%
表1是2~10档数据使用标准Bloom Filter和分档Bloom Filter产生的整体查询失效代价比较表。每档元素个数和代价都是随机产生。第一列为档数;每档子集的元素个数和元素查询失效代价为第2、3列;第4、5列分别表示标准Bloom Filter和分档Bloom Filter的集合整体查询失效代价;最后一列表示分档整体失效代价占标准代价的比率。从表中我们发现这些比率都小于60%,分档Bloom Filter的代价和标准Bloom Filter相比,失效代价至少降低40%,使用分档Bloom Filter可以使集合整体失效代价显著减少,大大提高Bloom Filter性能。
由以上可知,本发明为一种基于分档Bloom Filter结构的查询方法,该方法将查询代价引入Bloom Filter研究领域,研究当集合进行查询时,查询失效时的额外I/O操作代价,进而将元素根据不同的查询代价分为不同的档(子集),通过考查每档查询失效率的关系,建立由每档子集合最低假阳性率表示的集合整体最小查询失效代价目标函数,使用类目标函数梯度遗传算法获得每档的最优哈希函数个数ki(1≤i≤L);本发明与Bloom Filter研究领域的其他算法结构相比,所需计算时间相同,集合总体查询失效代价降低至少40%,实现了集合的总体查询代价最小。
附图说明
图1是以三档数据为例的查询代价比较曲线,其中:BBF={{55,30,95},{19,19,1},m,{k1,k2,k3}};
图2是以六档数据为例的查询代价比较曲线,其中:BBF={{80,28,25,84,27,38},{9,10,16,1,2,1},m,{k1,k2,k3,k4,k5,k6}};
图3是基于代理的文件系统结构;
图4是请求消息传输路径示意图。
具体实施方式
本实施例是BBF在一个使用文件代理的系统中的应用。
图3是利用代理的文件系统。其底层是工作站主机,中间是层层文件代理,最后是终极网络文件服务器。同级代理采用合作方式,定期的将自己存储的文件目录用BBF表示成摘要后传给其他的代理,以维护网络上文件列表的一致。在这个系统中,由于安全原因,工作站主机会不定期的更新操作系统补丁或更新防病毒软件的病毒库,同时,工作站之间可能有一些普通文件的交换。因此,我们将文件从安全的角度出发,按照其对机器的影响后果分为四类:关键系统补丁文件、病毒库更新文件、系统运行文件、普通用户文件。当网络中系统出现严重安全漏洞时如不及时打上系统补丁,就可能导致系统出现崩溃,甚至央及整个网络无法正常运行(如worm病毒针对系统漏洞的攻击会导致网络阻塞)。因此关键系统补丁文件在BBF中定义成等级最高,处理中会得到最小的查找失效率。
在系统结构中用了代理,其目的是为了减少工作站主机到服务器的直接流量和减少服务器的负载。因为工作站主机从比较近的代理上获取文件远比从远端服务器上获取文件速度快,而且当多个工作站主机从代理上获取文件时,可以有效的减少服务器到代理之间的链路拥挤程度,从而节约网络带宽,降低网络服务器的负荷。
同级代理之间的文件查找和交互过程中,在传统的采用ICP协议进行文件查找的过程中,文件请求报文以广播的形式在代理之间发出。假设有n个代理,如果时间t每个代理平均需要查找m个文件,则需要发送的报文请求量为m·n·(n-1),这将占用大量的网络带宽,导致网络拥塞。为了减少广播请求,我们在每个代理中存储其它同级代理的文件目录,当工作站主机的文件查找请求到达某个代理时,代理不再将请求以广播的形式发送出去,而是直接在Cache中查找其他同级代理的文件目录,并将结果返回给工作站主机。
同时,在代理的设计中,为了加速查找过程,将代理中的文件目录存储到代理的高速缓存DRAM中。由于DRAM价格昂贵且容量有限,不适合存放大的存储结构,需要采用一种简洁的结构来表示其文件目录,BBF正是这么一种简洁的结构,它对每条文件目录的存储只需要几位比特,因此利用BBF在Cache系统中存储文件目录摘要很合适;更重要的是,代理和代理之间的传输信息也用BBF表示,可以减少传输的带宽。另外,我们提到在该系统中根据文件安全等级分为四类,使用BBF可以调整不同类别文件的查询失效概率,降低重要类别文件查询失效概率,从而使得整体失效代价降低,提高系统的安全性。
使用BBF的文件下载过程如下:
1.客户将文件下载请求传输到其负责的代理服务器。
2.代理首先在Cache中表示自身文件目录的BBF中查找文件,如果找到,就到自身的硬盘获取数据,如果没有,就查找在本代理保存的其他代理的文件目录BBF。
3.如果在某个其他的BBF上找到文件,那么就到该代理服务器去下载文件。
4.如果同级的代理服务器没有对应文件,将文件查找请求传送给上级。现在我们就举一个该环境下的实际的例子,对于不同的文件类型,按照其对系统安全的影响,分为以下四个等级,并简单估计后果为:
1、关键系统补丁文件:如果没有及时打上该补丁,可能会照成系统崩溃或者影响网络中其他的主机运行(后果损失:100)。
2、病毒库更新文件:感染病毒,机器运行速度变慢,或者删除文件,照成数据丢失(后果损失:60)。
3、系统运行文件:直接影响操作系统运行的文件(后果损失:40)。
4、普通用户文件:普通的用户文件(后果损失:20)。
在某段时间内,出现的关键系统补丁文件有20个,病毒库更新文件:25个,系统运行文件30个,普通用户文件40个。代理之间用于交互的文件目录BBF表示为1000Bit。
第一步:根据文件的属性,将文件分为系统补丁文件、病毒库更新文件、系统运行文件和普通用户文件四类,完成BBF数据结构参数,就上面的例子,其表示为:BBF={{20,25,30,40},{100,60,40,20},1000,{k1,k2,k3,k4}}
第二步:建立查询失效引起的安全代价最小目标函数:
F baskets ( L ) = &Sigma; i = 1 L n i c i ( 1 2 ) lm 2 &CenterDot; ( r i * 1000 / ( &Sigma; i = 1 4 n i r i ) )
第三步:利用类目标函数梯度遗传算法求解{r1,r2,r3,r4},并获得最小安全失效代价。
第四步:利用{r1,r2,r3,r4}计算出{k1,k2,k3,k4}={8,8,6,6}。
那么对于第一类文件(关键系统补丁文件),在进行元素查找时利用8个哈希函数映射,第二类的文件(病毒库更新文件)利用8个哈希函数,第三类的文件(系统运行文件)用6个哈希函数映射,第四类的文件(用户文件)用6个哈希函数映射。
如用SBF,系统一共需要付出的安全代价为:78.1250。用BBF需要付出的安全代价为:42.9688。使用BBF使得这段时间的系统安全损失减少了45%,显著减少了系统的损失,提高了计算机系统的安全性。

Claims (1)

1、一种基于分档Bloom Filter结构的查询方法,其特征是将集合中的元素按照查询失效代价分为不同的子集合,并区分对待各子集合,为不同子集合分配不同的哈希映射函数个数,使得集合整体查询失效代价最小,该方法的步骤为:
(1)按照集合中元素的查询代价分为不同的子集合;
设集合S包含L档,则:
                   S={{S1},{S2},L,{SL}}
(2)建立由每档子集合最低假阳性率表示的集合整体最小查询代价目标函数:
F baskets ( L ) = &Sigma; i = 1 L n i c i f i = &Sigma; i = 1 L n i c i ( 1 2 ) ln 2 &CenterDot; ( r i m &Sigma; i = 1 L n j r j )
上式中,每档子集合的元素个数为ni=|Si|,子集合Si中元素发生查询失效时,所需的额外I/O操作代价为ci(1≤i≤L),子集合Si所需要的哈希映射函数个数为ki(1≤i≤L),对应的假阳性概率为fi(1≤i≤L),映射到长度为m的位串向量V。其中ri=ln(fi)(1≤i≤L);
(3)利用类目标函数梯度遗传算法求解最小查询代价目标函数,获得ri(1≤i≤L),步骤是:
步骤1:随机产生规模为n二进制编码染色体,每个染色体代表一个r1,r2,L,rL序列;
步骤2:利用类目标函数梯度适应值函数计算每个染色体的适应值;
类目标函数梯度适应值函数为:
                    F(L)=λf(L)+(1-λ)f(L)/inverse_number
其中inverse_number=τ(r1,r2,L,rL)为逆序数
f ( L ) = C max - F basket ( L ) , if f ( L ) < C max 0 if f ( L ) &GreaterEqual; C max
步骤3:检查是否已经达到最优结果,如果是转到步骤6,返回最优的染色体,否则继续;
步骤4:使用选择、交叉、变异,产生新一代n个染色体;
步骤5:利用新一带染色体代替老的染色体,转到步骤2:
步骤6:将染色体解码,获得r1,r2,L,rL
步骤7:求解获得每档映射哈希函数个数ki(1≤i≤L):
k i = ln 2 &CenterDot; ( r i m &Sigma; j = 1 L n j r j )
(4)利用ki(1≤i≤L)完成集合到向量的映射与集合元素查找。
CNB2005100321465A 2005-09-09 2005-09-09 一种基于分档Bloom Filter结构的查询方法 Expired - Fee Related CN100385443C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100321465A CN100385443C (zh) 2005-09-09 2005-09-09 一种基于分档Bloom Filter结构的查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100321465A CN100385443C (zh) 2005-09-09 2005-09-09 一种基于分档Bloom Filter结构的查询方法

Publications (2)

Publication Number Publication Date
CN1737799A true CN1737799A (zh) 2006-02-22
CN100385443C CN100385443C (zh) 2008-04-30

Family

ID=36080596

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100321465A Expired - Fee Related CN100385443C (zh) 2005-09-09 2005-09-09 一种基于分档Bloom Filter结构的查询方法

Country Status (1)

Country Link
CN (1) CN100385443C (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101383034A (zh) * 2008-09-18 2009-03-11 腾讯科技(深圳)有限公司 一种广告统计和投放的方法及系统
CN101459560B (zh) * 2009-01-09 2011-04-13 中国人民解放军信息工程大学 长流的识别方法、数据流量的测量方法及其设备
CN101505272B (zh) * 2009-03-02 2011-04-20 浙江理工大学 一种基于p2p的查找有关节点子集合的方法
CN101360101B (zh) * 2008-09-09 2011-05-18 宁波三星电气股份有限公司 远程抄表系统的数据传输方法
CN101621539B (zh) * 2009-08-06 2012-05-30 浙江理工大学 一种构建垂直虚拟组的p2p网络的方法
CN103020296A (zh) * 2012-12-31 2013-04-03 湖南大学 一种高精度多维计数布鲁姆过滤器及其大数据处理方法
CN104850656A (zh) * 2015-06-05 2015-08-19 中国信息安全研究院有限公司 一种动态自适应多级Bloom滤波器装置
CN105022784A (zh) * 2015-06-05 2015-11-04 中国信息安全研究院有限公司 一种动态调节多级Bloom滤波器结构的方法
CN105574076A (zh) * 2015-11-27 2016-05-11 湖南大学 一种基于Bloom Filter的键值对存储结构及方法
CN111538727A (zh) * 2020-04-16 2020-08-14 四川轻化工大学 一种基于Bloom Filter的多路快速查找分类方法与系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7926103B2 (en) * 2003-06-05 2011-04-12 Hewlett-Packard Development Company, L.P. System and method for preventing replay attacks
US7444515B2 (en) * 2003-08-14 2008-10-28 Washington University Method and apparatus for detecting predefined signatures in packet payload using Bloom filters
US7602785B2 (en) * 2004-02-09 2009-10-13 Washington University Method and system for performing longest prefix matching for network address lookup using bloom filters

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101360101B (zh) * 2008-09-09 2011-05-18 宁波三星电气股份有限公司 远程抄表系统的数据传输方法
CN101383034A (zh) * 2008-09-18 2009-03-11 腾讯科技(深圳)有限公司 一种广告统计和投放的方法及系统
CN101383034B (zh) * 2008-09-18 2016-05-18 腾讯科技(深圳)有限公司 一种广告统计和投放的方法及系统
CN101459560B (zh) * 2009-01-09 2011-04-13 中国人民解放军信息工程大学 长流的识别方法、数据流量的测量方法及其设备
CN101505272B (zh) * 2009-03-02 2011-04-20 浙江理工大学 一种基于p2p的查找有关节点子集合的方法
CN101621539B (zh) * 2009-08-06 2012-05-30 浙江理工大学 一种构建垂直虚拟组的p2p网络的方法
CN103020296B (zh) * 2012-12-31 2016-02-17 湖南大学 一种高精度多维计数布鲁姆过滤器大数据处理方法
CN103020296A (zh) * 2012-12-31 2013-04-03 湖南大学 一种高精度多维计数布鲁姆过滤器及其大数据处理方法
CN104850656A (zh) * 2015-06-05 2015-08-19 中国信息安全研究院有限公司 一种动态自适应多级Bloom滤波器装置
CN105022784A (zh) * 2015-06-05 2015-11-04 中国信息安全研究院有限公司 一种动态调节多级Bloom滤波器结构的方法
CN104850656B (zh) * 2015-06-05 2018-04-10 中国信息安全研究院有限公司 一种动态自适应多级Bloom滤波器装置
CN105022784B (zh) * 2015-06-05 2019-05-14 中国信息安全研究院有限公司 一种动态调节多级Bloom滤波器结构的方法
CN105574076A (zh) * 2015-11-27 2016-05-11 湖南大学 一种基于Bloom Filter的键值对存储结构及方法
CN105574076B (zh) * 2015-11-27 2019-02-12 湖南大学 一种基于Bloom Filter的键值对存储结构及方法
CN111538727A (zh) * 2020-04-16 2020-08-14 四川轻化工大学 一种基于Bloom Filter的多路快速查找分类方法与系统

Also Published As

Publication number Publication date
CN100385443C (zh) 2008-04-30

Similar Documents

Publication Publication Date Title
CN1737799A (zh) 一种基于分档BloomFilter结构的查询方法
CN1148687C (zh) 用于网络处理器的全匹配搜索方法和设备
CN1195279C (zh) 对软件管理树进行模式范围比较的方法、装置和系统
US11494384B2 (en) Processing queries on semi-structured data columns
US10997179B1 (en) Pruning index for optimization of pattern matching queries
CN1703697A (zh) 用于路由并索引全球可寻址对象和有关的商业模式的系统、方法以及程序
US7472108B2 (en) Statistics collection using path-value pairs for relational databases
CN1588369A (zh) 一种关系型数据库系统及其查询和报表方法
CN1404591A (zh) 执行高速互联网协议路由查找和管理路由选择/转发表的装置和方法
CN101079042A (zh) 一种快速查询黑白名单的系统及方法
CN1529455A (zh) 网络故障实时相关性分析方法及系统
CN108710629B (zh) 基于命名数据网络的Top-k查询方法及系统
CN1992674A (zh) 一种基于多比特分割的多维分组分类方法
CN1932818A (zh) 数据库系统及管理数据库数据的方法
CN1752928A (zh) 一个Web Services的实时、动态合成方法
CN1256671C (zh) 管理资源争用的方法和装置
CN101031886A (zh) 网络系统、管理计算机、集群管理方法以及计算机程序
CN101068173A (zh) 一种资源共享的方法及系统
CN1492361A (zh) 嵌入式数据库查询的处理方法
CN1874284A (zh) 一种用于构建簇状对等网络的分布式聚集方法
CN1874233A (zh) 一种发送广播消息的系统及方法
CN1851693A (zh) 一种对系统资源进行管理的实现方法
US11681708B2 (en) Indexed regular expression search with N-grams
CN1400546A (zh) 用于协议数据单元中协议模式识别的方法和设备
CN1863135A (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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080430