青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

WisKeyのLullaby

huangwei.pro 『我失去了一只臂膀』「就睜開了一只眼睛」

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  12 Posts :: 0 Stories :: 23 Comments :: 0 Trackbacks

公告

“我該走哪條路?”
“這取決于你要去哪里。”
“我只想能到某個地方。”
“只要你走的夠遠,你始終能到達那個地方。”

Home: huangwei.pro
E-Mail: sir.huangwei [at] gmail.com
09.6 畢業于杭州電子科技大學
進入網易杭州研究院工作至今

常用鏈接

留言簿(1)

我參與的團隊

搜索

  •  

積分與排名

  • 積分 - 51753
  • 排名 - 447

最新評論

閱讀排行榜

評論排行榜

Http://Blog.Huang-Wei.Com/2010/11/02/Bloom-Filter/


Bloom Filter 原理與應用

介紹

Bloom Filter是一種簡單的節省空間的隨機化的數據結構,支持用戶查詢的集合。一般我們使用STL的std::set, stdext::hash_set,std::set是用紅黑樹實現的,stdext::hash_set是用桶式哈希表。上述兩種數據結構,都會需要保存原始數據信息,當數據量較大時,內存就會是個問題。如果應用場景中允許出現一定幾率的誤判,且不需要逆向遍歷集合中的數據時,Bloom Filter是很好的結構。

優點

  1. 查詢操作十分高效。
  2. 節省空間。
  3. 易于擴展成并行。
  4. 集合計算方便。
  5. 代碼實現方便。
  6. 有誤判的概率,即存在False Position。
  7. 無法獲取集合中的元素數據。
  8. 不支持刪除操作。

缺點

  1. 有誤判的概率,即存在False Position。
  2. 無法獲取集合中的元素數據。
  3. 不支持刪除操作。

定義

Bloom Filter是一個有m位的位數組,初始全為0,并有k個各自獨立的哈希函數。

圖1

添加操作

每個元素,用k個哈希函數計算出大小為k的哈希向量 
,將向量里的每個哈希值對應的位設置為1。時間復雜度為  ,一般字符串哈希函數的時間復雜度也就是 。

查詢操作

和添加類似,先計算出哈希向量,如果每個哈希值對應的位都為1,則該元素存在。時間復雜度與添加操作相同。

示例

圖2表示m=16,k=2的Bloom Filter, 和 的哈希值分別為(3, 6)和(10, 3)。

圖2

False Position

如果某元素不在Bloom Filter中,但是它所有哈希值的位置均被設為1。這種情況就是False Position,也就是誤判。

借用示例,如下:

圖3

這個問題其實和哈希表中的沖突是相同的道理,哈希表中可以使用開散列和閉散列的方法,而Bloom Filter則允許這樣的情況發生,它更關心于誤判的發生概率。

概率

宏觀上,我們能得出以下結論:

參數表變量減少增加
哈希函數總數Kl  更少的哈希值計算

l  增加False Position的概率

l  更多的計算

l  位值0減少

Bloom Filter 大小Ml  更少的內存

l  增加False Position的概率

l  更多的內存

l  降低概率

元素總數Nl  降低False Position的概率l  增加概率

False Position的概率為 

假設m和n已知,為了最小化False Position,則 

數據

圖4

擴展

Counter Bloom Filter

Bloom Filter有個缺點,就是不支持刪除操作,因為它不知道某一個位從屬于哪些向量。那我們可以給Bloom Filter加上計數器,添加時增加計數器,刪除時減少計數器。

但這樣的Filter需要考慮附加的計數器大小,假如同個元素多次插入的話,計數器位數較少的情況下,就會出現溢出問題。如果對計數器設置上限值的話,會導致Cache Miss,但對某些應用來說,這并不是什么問題,如Web Sharing。

Compressed Bloom Filter

為了能在服務器之間更快地通過網絡傳輸Bloom Filter,我們有方法能在已完成Bloom Filter之后,得到一些實際參數的情況下進行壓縮。

將元素全部添加入Bloom Filter后,我們能得到真實的空間使用率,用這個值代入公式計算出一個比m小的值,重新構造Bloom Filter,對原先的哈希值進行求余處理,在誤判率不變的情況下,使得其內存大小更合適。

應用

加速查詢

適用于一些key-value存儲系統,當values存在硬盤時,查詢就是件費時的事。

將Storage的數據都插入Filter,在Filter中查詢都不存在時,那就不需要去Storage查詢了。

當False Position出現時,只是會導致一次多余的Storage查詢。

圖5

l  Google的BigTable也使用了Bloom Filter,以減少不存在的行或列在磁盤上的查詢,大大提高了數據庫的查詢操作的性能。

l  在Internet Cache Protocol中的Proxy-Cache很多都是使用Bloom Filter存儲URLs,除了高效的查詢外,還能很方便得傳輸交換Cache信息。

網絡應用

l  P2P網絡中查找資源操作,可以對每條網絡通路保存Bloom Filter,當命中時,則選擇該通路訪問。

l  廣播消息時,可以檢測某個IP是否已發包。

l  檢測廣播消息包的環路,將Bloom Filter保存在包里,每個節點將自己添加入Bloom Filter。

l  信息隊列管理,使用Counter Bloom Filter管理信息流量。

垃圾郵件地址過濾

來自于Google黑板報的例子。

像網易,QQ這樣的公眾電子郵件(email)提供商,總是需要過濾來自發送垃圾郵件的人(spamer)的垃圾郵件。

一個辦法就是記錄下那些發垃圾郵件的 email 地址。由于那些發送者不停地在注冊新的地址,全世界少說也有幾十億個發垃圾郵件的地址,將他們都存起來則需要大量的網絡服務器。

如果用哈希表,每存儲一億個 email 地址,就需要 1.6GB 的內存(用哈希表實現的具體辦法是將每一個 email 地址對應成一個八字節的信息指紋,然后將這些信息指紋存入哈希表,由于哈希表的存儲效率一般只有 50%,因此一個 email 地址需要占用十六個字節。一億個地址大約要 1.6GB, 即十六億字節的內存)。因此存貯幾十億個郵件地址可能需要上百 GB 的內存。

而Bloom Filter只需要哈希表 1/8 到 1/4 的大小就能解決同樣的問題。

Bloom Filter決不會漏掉任何一個在黑名單中的可疑地址。而至于誤判問題,常見的補救辦法是在建立一個小的白名單,存儲那些可能別誤判的郵件地址。

引用

[1]      Bloom filter; http://en.wikipedia.org/wiki/Bloom_filter

[2]      Summary Cache: A Scalable Wide-Area Web Cache Sharing Protocol;http://pages.cs.wisc.edu/~cao/papers/summary-cache/

[3]      Network Applications of Bloom Filters: A Survey;http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.127.9672&rep=rep1&type=pdf

[4]      An Examination of Bloom Filters and their Applications;http://cs.unc.edu/~fabian/courses/CS600.624/slides/bloomslides.pdf

[5]      數學之美系列二十一 - 布隆過濾器(Bloom Filter);http://www.google.com.hk/ggblog/googlechinablog/2007/07/bloom-filter_7469.html

posted on 2010-11-17 11:16 威士忌 閱讀(3297) 評論(1)  編輯 收藏 引用

Feedback

# re: Bloom Filter 原理與應用[未登錄] 2010-11-17 23:49 晉哥哥
牛掰啊棍子  回復  更多評論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日本一区| 蜜臀a∨国产成人精品| 亚洲无限乱码一二三四麻| 午夜老司机精品| 亚欧成人精品| 国产深夜精品| 久久久午夜精品| 亚洲国产一区视频| 久久精品一本久久99精品| 美日韩精品免费| 久久亚洲国产成人| 亚洲老板91色精品久久| 国产精品久久久91| 久久精品视频在线看| 久久免费观看视频| 国产手机视频一区二区| 亚洲欧美日韩人成在线播放| 欧美国产精品va在线观看| 中日韩美女免费视频网址在线观看 | 欧美成人自拍| 亚洲综合成人在线| 91久久精品美女高潮| 亚洲伊人久久综合| 影音先锋亚洲电影| 国产精品久久综合| 欧美精品久久99| 噜噜噜躁狠狠躁狠狠精品视频 | 免费美女久久99| 亚洲美女色禁图| 蜜臀99久久精品久久久久久软件| 亚洲激情成人网| 亚洲欧美999| 蜜臀久久99精品久久久久久9 | 亚洲一区二区三区精品在线| 久久久国产精品一区| 日韩午夜中文字幕| 欲色影视综合吧| 亚洲你懂的在线视频| 亚洲桃色在线一区| 欧美成人福利视频| 欧美成人免费播放| 新狼窝色av性久久久久久| 欧美剧在线观看| 亚洲大片在线观看| 亚洲人午夜精品| 激情懂色av一区av二区av| 黄色精品一区| 狠狠色丁香久久婷婷综合_中| 亚洲视频播放| 亚洲欧洲久久| 美女视频黄 久久| 伊人久久大香线蕉av超碰演员| 亚洲欧美经典视频| 日韩一本二本av| 欧美极品一区二区三区| 亚洲国产精品一区二区尤物区| 亚洲日本va午夜在线影院| 久久久久久久久久看片| 午夜欧美理论片| 国产欧美日韩免费| 久久九九久精品国产免费直播| 久久国产婷婷国产香蕉| 久久精品亚洲精品| 午夜在线精品| 国产综合婷婷| 亚洲精品欧美精品| 午夜精品一区二区在线观看| 久久精品导航| 性欧美xxxx大乳国产app| 国产精品久久久久久久9999| 午夜精品久久久久久| 亚洲欧美日韩国产综合| 国产日韩精品一区二区浪潮av| 午夜欧美电影在线观看| 午夜精品一区二区三区在线播放| 国产免费成人av| 日韩午夜免费| 亚洲调教视频在线观看| 亚洲欧美日韩在线一区| 国产亚洲精品自拍| 一区二区日韩伦理片| 久久se精品一区精品二区| 亚洲福利视频免费观看| 一本色道久久99精品综合| 欧美在线一二三四区| 欧美日本国产视频| 亚洲欧美另类在线观看| 欧美亚洲免费| 国产精品99免费看| 激情综合网址| 亚洲国产精品成人| 国产精品人人做人人爽人人添| 最新热久久免费视频| 亚洲精品欧洲精品| 麻豆精品传媒视频| 亚洲视频国产视频| 欧美一站二站| av成人免费| 亚洲激情黄色| 国产亚洲女人久久久久毛片| 亚洲黄色尤物视频| 国产午夜精品一区二区三区欧美| 亚洲大胆女人| 久久蜜桃精品| 亚洲一区二区3| 狼人天天伊人久久| 永久久久久久| 亚洲一区二区三区精品视频| 欧美日韩中字| 中国成人黄色视屏| 久久久久久国产精品一区| 亚洲视频成人| 免费在线观看成人av| 亚洲成人资源网| 亚洲一区二区视频在线观看| 在线观看91久久久久久| 中文在线资源观看视频网站免费不卡| 欧美成人精品高清在线播放| 香蕉成人伊视频在线观看 | 欧美日韩一卡| 亚洲国产日韩一级| 欧美激情第一页xxx| 欧美在线免费观看亚洲| 国产精品99久久99久久久二8 | 老色鬼精品视频在线观看播放| 欧美一级大片在线观看| 国产精品高潮呻吟久久av黑人| 亚洲欧洲日本国产| 日韩视频精品在线| 欧美国产精品劲爆| 99精品国产热久久91蜜凸| 久久久久久久一区二区| 久久久噜噜噜久久| 欧美成年视频| 欧美激情性爽国产精品17p| 在线不卡a资源高清| 欧美在线精品免播放器视频| 欧美一区二区三区在线观看| 久久亚洲一区二区三区四区| 久久精品av麻豆的观看方式| 国产欧美一区二区精品婷婷 | 亚洲综合日韩| 国产精品欧美日韩久久| 亚洲一区二区三区影院| 亚洲摸下面视频| 国产欧美精品一区aⅴ影院| 亚洲综合成人在线| 久久精品日韩欧美| 原创国产精品91| 欧美福利一区二区| 亚洲免费观看在线观看| 亚洲天堂网在线观看| 国产精品久久7| 欧美一区二区三区在线观看视频| 久久久久久久久久久久久9999| 黄色亚洲大片免费在线观看| 免费成人高清| 夜夜狂射影院欧美极品| 国内揄拍国内精品少妇国语| 久久精品国产亚洲一区二区| 欧美成人69| 亚洲一区二区在线| 国产午夜精品福利| 免费欧美日韩| 一区二区三区欧美视频| 久久久久久久综合色一本| 91久久久久久久久久久久久| 欧美视频在线视频| 久久国产精品久久久| 午夜精品久久久| 有坂深雪在线一区| 欧美午夜精品一区| 久久蜜桃av一区精品变态类天堂| 亚洲精品一区二区三| 久久精品一区蜜桃臀影院| 亚洲久久成人| 国内精品久久久久影院色| 欧美成人中文字幕| 欧美资源在线| 一区二区三区四区五区视频| 麻豆精品视频在线观看视频| 国产日韩亚洲欧美精品| 亚洲一区国产精品| 亚洲欧美日韩精品久久亚洲区| 国产精品视频网址| 老司机亚洲精品| 亚洲宅男天堂在线观看无病毒| 欧美高清视频在线播放| 欧美一区1区三区3区公司| 亚洲精品视频在线观看网站| 国产日韩精品久久久| 欧美日韩久久不卡| 亚洲精品免费电影| 韩国v欧美v日本v亚洲v| 欧美连裤袜在线视频| 欧美影院精品一区| 在线亚洲激情| 亚洲精品一区二区三区av| 免费成人av在线| 久久精品30|