Dynamic Count Filter

來源:互聯網
上載者:User

Spectral bloom filter(SBF)在counting bloom filter(CBF)的基礎上提出了元素出現頻率查詢的概念,將CBF的應用擴充到了multi-set的領域。但是,SBF為解決動態counter的儲存問題,引入了複雜的索引結構,這讓每個counter的訪問變得複雜而耗時。有沒有一種解決方案既支援元素出現頻率查詢,結構又相對比較簡單呢?Dynamic count filter(DCF)嘗試回答了這個問題。

 

要支援元素出現頻率查詢,就需要解決變化範圍可能很大的counter的儲存問題。DCF和SBF的不同之處,也就是counter的儲存結構。DCF使用兩個數組來儲存所有的counter,它們的長度都為m(即bloom filter的位元組長度)。第一個數組是一個基本的CBF(即中的CBFV,counting bloom filter vector),counter的長度固定,為x = log(M/n),其中M是集合中所有元素的個數,n為集合中不同元素的個數。第二個數組用來處理counter的溢出(即中的OFV,overflow vector),數組每一項的長度並不固定,根據counter的溢出情況動態調整。假設OFj是OFV中某一項的值,那麼OFV中每一項的長度y = floor(log(max(OFj))) + 1,即最大值決定了每項長度。

 

中最右一列是counter的值,我們可以清楚地看出OFV和CBFV的作用。比如第5個counter的值是1026,二進位為10000000010。我們把這個二進位位串分成兩段100和00000010,分別就對應著OFV和CBFV中的值。圖中我們也可以看出x + y就等於counter的最大值的二進位位元。

 

在查詢一個counter時,DCF要求兩次記憶體訪問。假設想查詢位置為j的counter的值,我們先讀出CBFV和OFV的值,分別為Cj和OFj,那麼counter的值就可以表示為Vj = (2x×OFj + Cj)。

 

在集合增加元素時,如果OFV的最大值從2x – 1增加到2x,OFV就需要給每一項增加1位,否則就會溢出。每次OFV大小改變的時候都需要重建。重建是一件開銷很大的工作,必須重新建立一個OFV數組,然後把舊OFV數組的值拷貝到建立的OFV數組中,最後把舊OFV數組的空間釋放掉。如果說增加時的overflow必須重建的話,那麼集合元素減少時的underflow則有更多選擇。當OFV的最大值從2x減少到2x – 1時,我們可以選擇馬上重建OFV,也可以採用一些策略延遲OFV的重建,以避免一些臨時性的減少導致OFV反覆重建。

 

從上面的介紹可以看出,DCF中最大的那個counter決定了整個結構所佔的空間。因此,在counter的值普遍不大的情況下,DCF由於不用維護複雜的索引結構,所以佔用空間比SBF要少。如果將counter的值逐漸增大,SBF在空間佔用上的優勢就會越來越明顯。在counter存取時間上,DCF佔有絕對的優勢,只比CBF多訪問了一次記憶體。在不同的實際應用場合中對比SBF和DCF,論文作者發現DCF整體佔用的空間以及執行時間都比SBF少了一半還多。最後,我們給出一個將CBF、SBF和DCF定性比較的表格:

參考論文:http://www.sigmod.org/sigmod/record/issues/0603/p26-article-pey.pdf

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.