一種布魯姆過濾器關(guān)聯(lián)刪除的方法
【專利摘要】本發(fā)明公開了一種布魯姆過濾器關(guān)聯(lián)刪除的方法,特點(diǎn)是將現(xiàn)有技術(shù)中用于存儲(chǔ)兩個(gè)維度第一邊和第二邊的第三計(jì)數(shù)型布魯姆過濾器CBFD拆分成兩個(gè)大小相同的第五計(jì)數(shù)型布魯姆過濾器和第六計(jì)數(shù)型布魯姆過濾器,來分別存儲(chǔ)第一邊和第二邊,并分別檢測(cè)可能邊,優(yōu)點(diǎn)是大大提高了布魯姆過濾器關(guān)聯(lián)刪除算法的準(zhǔn)確性,此外,還可以降低假陽性和假陰性。
【專利說明】一種布魯姆過濾器關(guān)聯(lián)刪除的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種在計(jì)算機(jī)網(wǎng)絡(luò)服務(wù)中的布魯姆過濾器,尤其是涉及一種布魯姆過濾器關(guān)聯(lián)刪除的方法。
【背景技術(shù)】
[0002]如果需要判斷一個(gè)一維元素w是不是在一個(gè)集合中,通常做法是把集合的所有元素通過鏈表、樹等結(jié)構(gòu)保存下來,然后通過比較才能知道w在不在集合內(nèi)。當(dāng)集合內(nèi)元素個(gè)數(shù)增多,需要的空間和時(shí)間都將變大,檢索速度也越來越慢。布魯姆過濾器(Bloomfilter)是由B.H.Bloom在文獻(xiàn)[I]提出的位向量數(shù)據(jù)結(jié)構(gòu),具有很好的時(shí)間和空間效率。下面以長(zhǎng)度為m的布魯姆過濾器,檢測(cè)元素w是不是一個(gè)集合Itpt2,…,tn}的成員為例,說明其方法。對(duì)于每個(gè)集合中的元素tx (x=l, 2,…,η),采用k個(gè)哈希函數(shù)映射為k個(gè)范圍為O~m-Ι的地址,即hjt^hjtx),…,!!,^),然后將布魯姆過濾器中這k個(gè)地址的單元置I。當(dāng)檢測(cè)元素w時(shí),采 用同樣的k個(gè)哈希函數(shù)映射成k的地址,即Ii1(W), h2 (W),…,hk(w),如果布魯姆過濾器中這k的地址單元都是I,那么認(rèn)為w在集合內(nèi);如果有0,那么元素不在集合內(nèi)。這種檢測(cè)對(duì)于返回“在集合內(nèi)”的結(jié)果可能會(huì)有誤判,即假陽性(false positive),但對(duì)于“不在集合內(nèi)”的結(jié)果肯定準(zhǔn)確。以上布魯姆過濾器是位向量結(jié)構(gòu),不支持刪除操作,如果將每一個(gè)位改為一個(gè)計(jì)數(shù)器則可支持刪除操作,這種布魯姆過濾器稱為計(jì)數(shù)布魯姆過濾器(Counting Bloom filter)。
[0003]目前,兩維及以上的布魯姆過濾器研究比較少。Guo等人在文獻(xiàn)[2]提出了多維動(dòng)態(tài)布魯姆過濾器(MDDBF)來判斷多維元素是否屬于一個(gè)集合,基本的想法是對(duì)于s維度的元素集合,分別存儲(chǔ)在s個(gè)布魯姆過濾器中。由于MDDBF方法失去了屬性間的關(guān)聯(lián)信息,極大地增加誤報(bào)的概率。Xiao等人意識(shí)到這個(gè)問題,并在文獻(xiàn)[3]中提出輔助結(jié)構(gòu),捕捉一個(gè)多維元素的內(nèi)在相關(guān)性。與MDDBF相比,假陽性的概率要低得多,同時(shí)節(jié)省了存儲(chǔ)空間。
[0004]布魯姆過濾器關(guān)聯(lián)刪除的概念由文獻(xiàn)[4]提出。具體的,設(shè)一個(gè)包含二個(gè)維度元素的集合(維度為A和維度B),將他們分別按維度用兩個(gè)布魯姆過濾器表示。現(xiàn)在需要從集合中刪除幾個(gè)二維元素,但只知道這幾個(gè)元素在維度A經(jīng)過哈希運(yùn)算后的在布魯姆過濾器的地址,問題是如何更新原有的兩個(gè)布魯姆過濾器。
[0005]如圖1所示。假設(shè)一個(gè)網(wǎng)絡(luò)過濾服務(wù)有一個(gè)訪問控制列表,每個(gè)元素在列表中有兩個(gè)維度(IP地址,主機(jī)名),控制訪問目的地的IP地址或主機(jī)名。系統(tǒng)使用了兩個(gè)布魯姆過濾器,即CBFA (CBF為Counting Bloom Filter)和CBFB,分別代表1P地址和主機(jī)名。如果要?jiǎng)h除一組元素(IP,主機(jī)),傳統(tǒng)方法是通過哈希運(yùn)算IP和主機(jī)更新CBFA和CBFB的。然而,在許多情況下,我們只有刪除的IP地址經(jīng)過哈希運(yùn)算后的在布魯姆過濾器的地址。當(dāng)然,更新的CBFA可直接在地址減I得到。但是,如果不知道主機(jī),如何才能得到更新的CBFB ?即,如何維護(hù)它們的一致性,使得在CBFA中刪除一個(gè)IP地址,那么CBFB中相關(guān)聯(lián)的主機(jī)名也要除去。
[0006]文獻(xiàn)[4]提出如圖2所示的數(shù)據(jù)結(jié)構(gòu)和算法,來解決這一問題。保證布魯姆關(guān)聯(lián)刪除準(zhǔn)確性的關(guān)鍵是將其屬性關(guān)聯(lián)。文獻(xiàn)[4]設(shè)立邊檢測(cè)布魯姆過濾器CBFD和邊組合檢測(cè)布魯姆過濾器CBFI,并通過兩步檢測(cè)完成布魯姆關(guān)聯(lián)刪除。第一步檢測(cè)可選邊;第二步對(duì)檢測(cè)通過后的可選邊進(jìn)行邊組合,然后用CBFI檢測(cè)。從而實(shí)現(xiàn)關(guān)聯(lián)刪除。
[0007] 上述提到的文獻(xiàn)如下:
[0008][1]B.H.Bloom, ^Space/Time Trade-Offs in Hash Coding with AllowableErrors, "Comm.ACM, vol.13,n0.7,pp.422-426,1970.[0009][2]D.Guoj J.Wuj H.Chen, and X.Luo,"Theory and Network Application ofDynamic Bloom Filters,^Proc.1EEE INF0C0M,2006.[0010][3]B.Xiao and Y.Hua,"Using Parallel Bloom Filters for Multiat-tributeRepresentation on Network Services, ^IEEE Trans.Parallel and Distributed Systems, vol.21,n0.1,pp.20-32,2010.[0011][4]Jiangbo Qian,Qiang Zhu,Yongli Wang,"Bloom Filter Based AssociativeDeletion,〃IEEE Transactions on Parallel and Distributed Systems, 06Sept.2013.1EEE computer Society Digital Library.1EEE Computer Society, <http://do1.1eeecomputersociety, org/10.1109/TPDS.2013.223〉
【發(fā)明內(nèi)容】
[0012]本發(fā)明所要解決的技術(shù)問題是提供一種能夠更加簡(jiǎn)單、有效地提高精度的布魯姆過濾器關(guān)聯(lián)刪除的方法。
[0013]本發(fā)明解決上述技術(shù)問題所采用的技術(shù)方案為:一種布魯姆過濾器關(guān)聯(lián)刪除的方法,使用兩個(gè)計(jì)數(shù)型布魯姆過濾器,即第一計(jì)數(shù)型布魯姆過濾器CBFA和第二計(jì)數(shù)型布魯姆過濾器CBFB分別存儲(chǔ)第一維度A的元素ax和第二維度B的元素bx,其中x=l,2,...,!!,其中η是任意正整數(shù),將上述兩個(gè)維度元素的集合定義為第一集合,記為Ω = {(ax, bx)},將元素ax用2個(gè)獨(dú)立的哈希函數(shù)表示,記為Ii1 (ax),h2 (ax),即將所述的第一計(jì)數(shù)型布魯姆過濾器CBFA中地址ShJax),h2(ax)的兩個(gè)計(jì)數(shù)器分別加1,將元素1^用2個(gè)相互獨(dú)立的哈希函數(shù)表示,記為h (bx),h2 (bx),即將所述的第二計(jì)數(shù)型布魯姆過濾器CBFB中地址為Ill (bx),h2 (bx)的兩個(gè)計(jì)數(shù)器分別加I ;定義上述兩個(gè)維度的第一邊ShJaxHh1 (bx),上述兩個(gè)維度的第二邊為h2 (ax) +h2 (bx),定義上述兩個(gè)維度的邊組合為Ii1 (ax) +Ii1 (bx) +h2 (ax) +h2 (bx),其中“ + ”表示字符串聯(lián)接操作,使用第三計(jì)數(shù)型布魯姆過濾器CBFD存儲(chǔ)上述兩個(gè)維度第一邊和第二邊,使用第四計(jì)數(shù)型布魯姆過濾器CBFI存儲(chǔ)上述兩個(gè)維度邊組合,將每個(gè)邊組合用q個(gè)獨(dú)立的哈希函數(shù)表示,記為 h' ' ! Qa1 (ax) +hi (bx) +h2 (ax) +h2 (bx)), h; ' 2 Qi1 (ax)+Ii1 (bx)+h2(ax) +h2 (bx)),...,h',^Qi1 (ax)+Ii1 (bx)+h2 (ax)+h2 (bx)),即將所述的第四計(jì)數(shù)型布魯姆過濾器 CBFI 中地址為 h' ' ! Qi1 (a)+Ii1 (b)+h2 (a)+h2 (b)),h' ' 2 Qi1 (a)+Ii1 (b)+h2 (a)+h2 (b)),...,h' ' ^)+1^(13)+112(3)+112(13))的 q 個(gè)計(jì)數(shù)器分別加 I,其中4 = L1n2x(mW)J,m''是所述的第四計(jì)數(shù)型布魯姆過濾器CBFI中計(jì)數(shù)器的個(gè)數(shù);將兩個(gè)維度內(nèi)要?jiǎng)h除元素的集合定義為第二集合,記為W = {(ay,by)} e Ω,y e {1,2,...,η},第二集合Ψ中元素的數(shù)量為
d,使用第七計(jì)數(shù)型布魯姆過濾器CBFAD存儲(chǔ)第二集合Ψ中所有屬于第一維度A的元素ay,將第一維度A中要?jiǎng)h除的元素用2個(gè)獨(dú)立的哈希函數(shù)表示,記為hi (ay),h2 (ay),即將所述的第七計(jì)數(shù)型布魯姆過濾器CBFAD中地址為hi (ay),h2 (ay)的兩個(gè)計(jì)數(shù)器分別加1,將所述的第三計(jì)數(shù)型布魯姆過濾器CBFD拆分成兩個(gè)大小相同的第五計(jì)數(shù)型布魯姆過濾器和第六計(jì)數(shù)型布魯姆過濾器,記為CBFDl和CBFD2,將上述兩個(gè)維度的第一邊用p個(gè)獨(dú)立的哈希函數(shù)表示,記為 h'丨 Qi1 (ax)+Ii1 (bx)),h' 2 Qi1 (ax)+Ii1 (bx)),…,h' p Qi1 (ax)+Ii1 (bx)),并存儲(chǔ)在所述的第五計(jì)數(shù)型布魯姆過濾器CBFDl中,即將所述的第五計(jì)數(shù)型布魯姆過濾器CBFDl中地址為 h' Jh1 (ax) +Ii1 (bx)),h' Jh1 (ax) +Ii1 (bx)),…,h' p Qi1 (ax) +Ii1 (bx))的 p 個(gè)計(jì)數(shù)器分別加1,將上述兩個(gè)維度的第二邊用P個(gè)獨(dú)立的哈希函數(shù)表示,記為h' 1(h2(ax)+h2(bx)),h/2(h2 (ax)+h2 (bx)),…,h' p(h2 (ax)+h2 (bx)),并存儲(chǔ)在所述的第六計(jì)數(shù)型布魯姆過濾器CBFD2中,即將所述的第六計(jì)數(shù)型布 魯姆過濾器CBFD2中地址為h' ^h2 (ax) +h2 (bx)),h' 2(h2 (ax) +h2(bx)),..., p (h2 (ax) +h2 (bx))的 p 個(gè)計(jì)數(shù)器分別加 I,其中,= 1>2χ(〃//(2?))」,m'是所述的第三計(jì)數(shù)型布魯姆過濾器CBFD中計(jì)數(shù)器的個(gè)數(shù);然后根據(jù)所述的第七計(jì)數(shù)型布魯姆過濾器CBFAD對(duì)所述的第二計(jì)數(shù)型布魯姆過濾器CBFB進(jìn)行更新,具體包括兩個(gè)階段:
[0014]第一階段將所述的第七計(jì)數(shù)型布魯姆過濾器CBFAD中任意一個(gè)值不為O的計(jì)數(shù)器的地址記為ZA,將所述的第二計(jì)數(shù)型布魯姆過濾器CBFB中任意一個(gè)值不為O的計(jì)數(shù)器的地址記為Zb,定義ZA+ZB為可能邊,記為Ci,其中i=l,2,…,4dn,“ + ”表示字符串聯(lián)接操作;用所述的第五計(jì)數(shù)型布魯姆過濾器CBFDl和所述的第六計(jì)數(shù)型布魯姆過濾器CBFD2檢測(cè)所有可能邊Ci,如Ci經(jīng)所述的第五計(jì)數(shù)型布魯姆過濾器CBFDl檢測(cè)通過,則放置于第三集合Vl ;如Ci經(jīng)所述的第六計(jì)數(shù)型布魯姆過濾器CBFD2檢測(cè)通過,則放置于第四集合V2 ;
[0015]第二階段將所述的第三集合Vl中的任意邊記為Cil,將所述的第四集合V2中的任意邊記為Ci2,將cn+ci2定義為可能邊組合,其中il和i2是正整數(shù),il最大取值為所述的第三集合Vl中邊的數(shù)目,i2最大取值為所述的第四集合V2中邊的數(shù)目,“ + ”表示字符串聯(lián)接操作;用所述的第四計(jì)數(shù)型布魯姆過濾器CBFI檢測(cè)所有可能邊組合cn+ci2,如果檢測(cè)通過,則上述邊Cil和Ci2在所述的第七計(jì)數(shù)型布魯姆過濾器CBFAD和所述的第二計(jì)數(shù)型布魯姆過濾器CBFB中對(duì)應(yīng)地址的計(jì)數(shù)器都減1,完成更新操作,即完成第一計(jì)數(shù)型布魯姆過濾器CBFA和第二計(jì)數(shù)型布魯姆過濾器CBFB的關(guān)聯(lián)刪除。
[0016]用所述的第五計(jì)數(shù)型布魯姆過濾器CBFDl檢測(cè)所有可能邊Ci的具體步驟為:如果所述的第五計(jì)數(shù)型布魯姆過濾器CBFDl中地址為h'2(Ci),…,h' p(Ci)的P個(gè)計(jì)數(shù)器都不是0,Ci檢測(cè)通過,放置于第三集合VI,用所述的第六計(jì)數(shù)型布魯姆過濾器CBFD2檢測(cè)所有可能邊Ci的具體步驟為:如果所述的第六計(jì)數(shù)型布魯姆過濾器CBFD2中地址為h' 2(Ci),…,h' p(ci)的P個(gè)計(jì)數(shù)器都不是0,Ci檢測(cè)通過,放置于第四集合V2,用所述的第四計(jì)數(shù)型布魯姆過濾器CBFI檢測(cè)所有可能邊組合cn+ci2的具體步驟為:如果所述的第四計(jì)數(shù)型布魯姆過濾器CBFI中地址為h',JciJci2), h',2(cn+ci2),...,h' , q(Cil+Ci2)的q個(gè)計(jì)數(shù)器都不是0,cn+ci2檢測(cè)通過。
[0017]與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于將第三計(jì)數(shù)型布魯姆過濾器CBFD拆分成兩個(gè)大小相同的第五計(jì)數(shù)型布魯姆過濾器和第六計(jì)數(shù)型布魯姆過濾器,來分別存儲(chǔ)第一邊和第二邊,并分別檢測(cè)可能邊,大大提高了布魯姆過濾器關(guān)聯(lián)刪除算法的準(zhǔn)確性。此外,本發(fā)明的方法還可以降低假陽性和假陰性。
【專利附圖】
【附圖說明】
[0018]圖1為一組實(shí)際應(yīng)用的示意圖;[0019]圖2為現(xiàn)有技術(shù)的布魯姆過濾器關(guān)聯(lián)刪除的方法;
[0020]圖3為本發(fā)明的布魯姆過濾器關(guān)聯(lián)刪除的方法。
【具體實(shí)施方式】
[0021]以下結(jié)合附圖實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。
[0022]如圖3所示,一種布魯姆過濾器關(guān)聯(lián)刪除的方法,假設(shè)一個(gè)網(wǎng)絡(luò)過濾服務(wù)有一個(gè)訪問控制列表,每個(gè)項(xiàng)目在列表中有兩個(gè)屬性(IP地址,主機(jī)名),即IP地址表示為維度A,主機(jī)名表示為維度B。系統(tǒng)使用兩個(gè)計(jì)數(shù)型布魯姆過濾器,即第一計(jì)數(shù)型布魯姆過濾器CBFA和第二計(jì)數(shù)型布魯姆過濾器CBFB分別存儲(chǔ)第一維度A的元素ax和第二維度B的元素bx,其中x=l,2,…,n,其中η是任意正整數(shù),將上述兩個(gè)維度元素的集合定義為第一集合,記為Ω = {(ax, bx)},將元素ax用2個(gè)獨(dú)立的哈希函數(shù)表示,記為Ii1 (ax),h2 (ax),即將第一計(jì)數(shù)型布魯姆過濾器CBFA中地址ShikhhJaJ的兩個(gè)計(jì)數(shù)器分別加1,將元素bx用2個(gè)相互獨(dú)立的哈希函數(shù)表示,記為Ii1 (bx),h2(bx),即將第二計(jì)數(shù)型布魯姆過濾器CBFB中地址Sh1(I3x),h2(bx)的兩個(gè)計(jì)數(shù)器分別加I ;定義上述兩個(gè)維度的第一邊為Ill (ax) +Ill (bx),上述兩個(gè)維度的第二邊為h2 (ax) +h2 (bx),定義上述兩個(gè)維度的邊組合為Ill (ax) +Ill (bx) +h2 (ax) +h2 (bx),其中“ + ”表示字符串聯(lián)接操作,使用第三計(jì)數(shù)型布魯姆過濾器CBFD存儲(chǔ)上述兩個(gè)維度第一邊和第二邊,使用第四計(jì)數(shù)型布魯姆過濾器CBFI存儲(chǔ)上述兩個(gè)維度邊組合,將每個(gè)邊組合用q個(gè)獨(dú)立的哈希函數(shù)表示,記為h' ' x Qll (ax) +Ill (bx) +h2 (ax) +h2 (bx)),h' 1 2 (hi (ax) +Ii1 (bx) +h2 (ax) +h2 (bx)),...,h' 1 ^h1 (ax) +Ii1 (bx) +h2 (ax) +h2 (bx)),即將第四計(jì)數(shù)型布魯姆過濾器CBFI中地址為h' ' ^h1 (a)+h1(b)+h2(a)+h2(b)),h/ ' 2(hI (a) +hj (b) +h2 (a) +h2 (b)),...,h' ' q Qi1 (a) +Ii1 (b) +h2 (a) +h2 (b))的 q 個(gè)計(jì)數(shù)器分別加 I,其中,9 = LlB2x(OT"/?)」,m''是第四計(jì)數(shù)型布魯姆過濾器CBFI中計(jì)數(shù)器的個(gè)數(shù);將兩個(gè)維度內(nèi)要?jiǎng)h除元素的集合定義為第二集合,記為w = {(ay,by)} e Ω,Υ e {l,2,...,n},第二集合Ψ中元素的數(shù)量為d,使用第七計(jì)數(shù)型布魯姆過濾器CBFAD存儲(chǔ)第二集合Ψ中所有屬于第一維度A的元素ay,將第一維度A中要?jiǎng)h除的元素用2個(gè)獨(dú)立的哈希函數(shù)表示,記為Ii1 (ay),h2 (ay),即將第七計(jì)數(shù)型布魯姆過濾器CBFAD中地址為比(ay),h2 (ay)的兩個(gè)計(jì)數(shù)器分別加I,將第三計(jì)數(shù)型布魯姆過濾器CBFD拆分成兩個(gè)大小相同的第五計(jì)數(shù)型布魯姆過濾器和第六計(jì)數(shù)型布魯姆過濾器,記為CBFDl和CBFD2,將上述兩個(gè)維度的第一邊用p個(gè)獨(dú)立的哈希函數(shù)表示,記為 h' i Qi1 (ax)+Ii1 (bx)),h' 2 Qi1 (ax)+Ii1 (bx)),…,h' p Qi1 (ax)+Ii1 (bx)),并存儲(chǔ)在第五計(jì)數(shù)型布魯姆過濾器CBFDl中,即將第五計(jì)數(shù)型布魯姆過濾器CBFDl中地址為 h' i Qi1 (ax)+Ii1 (bx)),h' 2 Qi1 (ax)+Ii1 (bx)),…,h ' pQi1 (ax)+Ii1 (bx))的 p 個(gè)計(jì)數(shù)器分別加1,將上述兩個(gè)維度的第二邊用P個(gè)獨(dú)立的哈希函數(shù)表示,記為h' 1(h2(ax)+h2(bx)),h/2(h2 (ax)+h2 (bx)),…,h' p(h2 (ax)+h2 (bx)),并存儲(chǔ)在所述的第六計(jì)數(shù)型布魯姆過濾器CBFD2中,即將第六計(jì)數(shù)型布魯姆過濾器CBFD2中地址為h' 1(h2(ax)+h2(bx)),h/ 2 (h2 (ax)+h2 (bx)), *.., p(h2(ax) +h2(bx))的p個(gè)計(jì)數(shù)器分別加I,其中,= LlnhiV/O))」,m'是第三計(jì)數(shù)型布魯姆過濾器CBFD中計(jì)數(shù)器的個(gè)數(shù);然后根據(jù)第七計(jì)數(shù)型布魯姆過濾器CBFAD對(duì)第二計(jì)數(shù)型布魯姆過濾器CBFB進(jìn)行更新,具體包括兩個(gè)階段:
[0023] 第一階段將第七計(jì)數(shù)型布魯姆過濾器CBFAD中任意一個(gè)值不為O的計(jì)數(shù)器的地址記為Za,將第二計(jì)數(shù)型布魯姆過濾器CBFB中任意一個(gè)值不為O的計(jì)數(shù)器的地址記為Zb,定義ZA+ZB為可能邊,記為Ci,其中i=l,2,…,4dn,“ + ”表示字符串聯(lián)接操作;用第五計(jì)數(shù)型布魯姆過濾器CBFDl和第六計(jì)數(shù)型布魯姆過濾器CBFD2檢測(cè)所有可能邊Ci,用第五計(jì)數(shù)型布魯姆過濾器CBFDl檢測(cè)所有可能邊Ci的具體步驟為:如果第五計(jì)數(shù)型布魯姆過濾器CBFDl中地址為h'2(Ci),…,h' p(Ci)的P個(gè)計(jì)數(shù)器都不是O,Ci檢測(cè)通過,放置于第
三集合VI,用第六計(jì)數(shù)型布魯姆過濾器CBFD2檢測(cè)所有可能邊Ci的具體步驟為:如果第六計(jì)數(shù)型布魯姆過濾器CBFD2中地址為h'2(Ci),…,h' p(Ci)的P個(gè)計(jì)數(shù)器都不
是O,Ci檢測(cè)通過,放置于第四集合V2 ;
[0024]第二階段將所述的第三集合Vl中的任意邊記為Cil,將第四集合V2中的任意邊記為Ci2,將cn+ci2定義為可能邊組合,其中il和i2是正整數(shù),iI最大取值為第三集合Vl中邊的數(shù)目,i2最大取值為第四集合V2中邊的數(shù)目,“ + ”表示字符串聯(lián)接操作;用第四計(jì)數(shù)型布魯姆過濾器CBFI檢測(cè)所有可能邊組合cn+ci2,具體步驟為:如果第四計(jì)數(shù)型布魯姆過濾器 CBFI 中地址為 h',JciAci2), h',2(cil+ci2),-,h/,q(Cil+Ci2)的 q 個(gè)計(jì)數(shù)器都不是0,cn+ci2檢測(cè)通過,則上述邊Cil和Ci2在第七計(jì)數(shù)型布魯姆過濾器CBFAD和第二計(jì)數(shù)型布魯姆過濾器CBFB中對(duì)應(yīng)地址的計(jì)數(shù)器都減1,完成更新操作,即完成第一計(jì)數(shù)型布魯姆過濾器CBFA和第二計(jì)數(shù)型布魯姆過濾器CBFB的關(guān)聯(lián)刪除。
[0025]在上述實(shí)施例中,布魯姆過濾器關(guān)聯(lián)刪除算法的準(zhǔn)確性大大提高,此外,還可以降低假陽性和假陰性。
[0026]這可以用以下的方式進(jìn)行驗(yàn)證:在上述實(shí)施例中,本發(fā)明的技術(shù)方案將文獻(xiàn)[4]的CBFD拆分為CBFDl和CBFD2,總和容量保持不變,即(m,/2) *2=m’。
[0027]布魯姆過濾器假陽性計(jì)算公式
【權(quán)利要求】
1.一種布魯姆過濾器關(guān)聯(lián)刪除的方法,使用兩個(gè)計(jì)數(shù)型布魯姆過濾器,即第一計(jì)數(shù)型布魯姆過濾器CBFA和第二計(jì)數(shù)型布魯姆過濾器CBFB分別存儲(chǔ)第一維度A的元素ax和第二維度B的元素bx,其中x=l,2,…,n,其中η是任意正整數(shù),將上述兩個(gè)維度元素的集合定義為第一集合,記為Ω = {(ax, bx)},將元素ax用2個(gè)獨(dú)立的哈希函數(shù)表示,記為Ii1 (ax),h2 (ax),即將所述的第一計(jì)數(shù)型布魯姆過濾器CBFA中地址為Ill (ax),h2 (ax)的兩個(gè)計(jì)數(shù)器分別加1,將元素bx用2個(gè)相互獨(dú)立的哈希函數(shù)表示,記為Ii1 (bx),h2 (bx),即將所述的第二計(jì)數(shù)型布魯姆過濾器CBFB中地址為Ill (bx),h2 (bx)的兩個(gè)計(jì)數(shù)器分別加I ;定義上述兩個(gè)維度的第一邊為Ii1 (ax) +Ill (bx),上述兩個(gè)維度的第二邊為h2 (ax) +h2 (bx),定義上述兩個(gè)維度的邊組合為Ill (ax) +Ill (bx) +h2 (ax) +h2 (bx),其中“ + ”表示字符串聯(lián)接操作,使用第三計(jì)數(shù)型布魯姆過濾器CBFD存儲(chǔ)上述兩個(gè)維度第一邊和第二邊,使用第四計(jì)數(shù)型布魯姆過濾器CBFI存儲(chǔ)上述兩個(gè)維度邊組合,將每個(gè)邊組合用q個(gè)獨(dú)立的哈希函數(shù)表示,記為
h' 1 I (Ii1 (ax) +Ii1 (bx) +h2 (ax) +h2 (bx)),h' 1 Jh1 (ax) +Ii1 (bx) +h2 (ax) +h2 (bx)),…,
h' ' ,(h^+MbWaWbJ),即將所述的第四計(jì)數(shù)型布魯姆過濾器CBFI中地址為
h ' ' ! (hi (a) +hi (b) +h2 (a) +h2 (b)), h ' ' 2 Qi1 (a)+Ii1 (b)+h2 (a)+h2 (b)),…,h' 1 qOiJaHhJtO+hdaHhJb))的 q 個(gè)計(jì)數(shù)器分別加 I,其中1 是所述的第四計(jì)數(shù)型布魯姆過濾器CBFI中計(jì)數(shù)器的個(gè)數(shù);將兩個(gè)維度內(nèi)要?jiǎng)h除元素的集合定義為第二集合,記為W = {(ay,by)} e Ω,y e {1,2,...,η},第二集合Ψ中元素的數(shù)量為d,使用第七計(jì)數(shù)型布魯姆過濾器CBFAD存儲(chǔ)第二集合Ψ中所有屬于第一維度A的元素ay,將第一維度A中要?jiǎng)h除的元素用2個(gè)獨(dú)立的哈希函數(shù)表示,記為Ii1 (ay),h2 (ay),即將所述的第七計(jì)數(shù)型布魯姆過濾器CBFAD中地址ShJay),h2(ay)的兩個(gè)計(jì)數(shù)器分別加1,其特征在于將所述的第三計(jì)數(shù)型布魯姆過濾器CBFD拆分成兩個(gè)大小相同的第五計(jì)數(shù)型布魯姆過濾器和第六計(jì)數(shù)型布魯姆過濾器,記為CBFDl和CBFD2,將上述兩個(gè)維度的第一邊用p個(gè)獨(dú)立的哈希函數(shù)表示,記為 h' i Qi1 (ax)+Ii1 (bx)),h' 2 Qi1 (ax)+Ii1 (bx)),…,h' p Qi1 (ax)+Ii1 (bx)),并存儲(chǔ)在所述的第五計(jì)數(shù)型布魯姆過濾器CBFDl中,即將所述的第五計(jì)數(shù)型布魯姆過濾器 CBFDl 中地址為 h' i Qi1 (ax)+Ii1 (bx)),h ' 2 Qi1 (ax)+Ii1 (bx)),...,h ' p Qi1 (ax)+Ii1 (bx))的P個(gè)計(jì)數(shù)器分別加1,將上述兩個(gè)維度的第二邊用P個(gè)獨(dú)立的哈希函數(shù)表示,記為h' ! Qa2 (ax) +h2 (bx)), h' 2(h2 (ax)+h2 (bx)),...,h' p (h2 (ax) +h2 (bx)),并存儲(chǔ)在所述的第六計(jì)數(shù)型布魯姆過濾器CBFD2中,即將所述 的第六計(jì)數(shù)型布魯姆過濾器CBFD2中地址為h' ^h2 (ax) +h2 (bx)),h ' 2 (h2 (ax) +h2 (bx)),…,h ' p(h2 (ax) +h2 (bx))的 p 個(gè)計(jì)數(shù)器分別加 I,其中,^ = Lln2x(;;//(2?))J, m'是所述的第三計(jì)數(shù)型布魯姆過濾器CBFD中計(jì)數(shù)器的個(gè)數(shù);然后根據(jù)所述的第七計(jì)數(shù)型布魯姆過濾器CBFAD對(duì)所述的第二計(jì)數(shù)型布魯姆過濾器CBFB進(jìn)行更新,具體包括兩個(gè)階段: 第一階段將所述的第七計(jì)數(shù)型布魯姆過濾器CBFAD中任意一個(gè)值不為O的計(jì)數(shù)器的地址記為ZA,將所述的第二計(jì)數(shù)型布魯姆過濾器CBFB中任意一個(gè)值不為O的計(jì)數(shù)器的地址記為Zb,定義ZA+ZB為可能邊,記為Ci,其中i=l,2,…,4dn,“ + ”表示字符串聯(lián)接操作;用所述的第五計(jì)數(shù)型布魯姆過濾器CBFDl和所述的第六計(jì)數(shù)型布魯姆過濾器CBFD2檢測(cè)所有可能邊Ci,如Ci經(jīng)所述的第五計(jì)數(shù)型布魯姆過濾器CBFDl檢測(cè)通過,則放置于第三集合Vl ;如Ci經(jīng)所述的第六計(jì)數(shù)型布魯姆過濾器CBFD2檢測(cè)通過,則放置于第四集合V2 ; 第二階段將所述的第三集合Vl中的任意邊記為Cil,將所述的第四集合V2中的任意邊記為ci2,將cn+ci2定義為可能邊組合,其中il和i2是正整數(shù),iI最大取值為所述的第三集合Vl中邊的數(shù)目,i2最大取值為所述的第四集合V2中邊的數(shù)目,“ + ”表示字符串聯(lián)接操作;用所述的第四計(jì)數(shù)型布魯姆過濾器CBFI檢測(cè)所有可能邊組合cn+ci2,如果檢測(cè)通過,則上述邊Cil和Ci2在所述的第七計(jì)數(shù)型布魯姆過濾器CBFAD和所述的第二計(jì)數(shù)型布魯姆過濾器CBFB中對(duì)應(yīng)地址的計(jì)數(shù)器都減1,完成更新操作,即完成第一計(jì)數(shù)型布魯姆過濾器CBFA和第二計(jì)數(shù)型布魯姆過濾器CBFB的關(guān)聯(lián)刪除。
2.如權(quán)利要求1所述的一種布魯姆過濾器關(guān)聯(lián)刪除的方法,其特征在于用所述的第五計(jì)數(shù)型布魯姆過濾器CBFDl檢測(cè)所有可能邊Ci的具體步驟為:如果所述的第五計(jì)數(shù)型布魯姆過濾器CBFDl中地址為h'2(Ci),…,h' p (Ci)的P個(gè)計(jì)數(shù)器都不是O,Ci檢測(cè)通過,放置于第三集合VI,用所述的第六計(jì)數(shù)型布魯姆過濾器CBFD2檢測(cè)所有可能邊Ci的具體步驟為:如果所述的第六計(jì)數(shù)型布魯姆過濾器CBFD2中地址為h'2(Ci)^..,h' p(Ci)的p個(gè)計(jì)數(shù)器都不是0,(^檢測(cè)通過,放 置于第四集合V2,用所述的第四計(jì)數(shù)型布魯姆過濾器CBFI檢測(cè)所有可能邊組合cn+ci2的具體步驟為:如果所述的第四計(jì)數(shù)型布魯姆過濾器 CBFI 中地址為 h' ' I (cn+ci2),h' ' 2 (cn+ci2),…,h' ' ^ciJci2)的 q 個(gè)計(jì)數(shù)器都不是0,cn+ci2檢測(cè)通過。
【文檔編號(hào)】H04L12/743GK103929361SQ201410157426
【公開日】2014年7月16日 申請(qǐng)日期:2014年4月18日 優(yōu)先權(quán)日:2014年4月18日
【發(fā)明者】錢江波, 陳華輝, 陳葉芳 申請(qǐng)人:寧波大學(xué)