Ang mga filter na bloom ay mga probabilistikong data structure na ginagamit upang subukin kung ang isang elemento ay isang miyembro ng isang set. ang mga ito ay mahusay sa mga termino ng espasyo at bilis, ginagawa ang mga ito na angkop para sa mga aplikasyon kung saan ang mga mabilis na kasaping queries ay kinakailangan na may ilang mga tinatanggap na maling positibo.

Kung Paano Gumagana ang mga Bloom Filmer

Ang isang bloom filter ay gumagamit ng isang bloom filter at multiple hash na mga tungkulin. Kapag ang isang elemento ay idinagdag, ang bawat hash function ay nagreresulta sa isang posisyon sa array, na nagtatakda ng mga bits sa 1. Upang masuri kung may isang elemento, ang parehong mga gawain ng hash ay nilalapat, at ang mga kaukulang piraso ay sinusuri. Kung ang lahat ay nakatakda sa 1, ang elemento ay malamang na nasa set; kung ang kahit ano ay 0, ito ay tiyak na hindi.

Mga Pagkalkula sa mga Bloom Filter

Ang maling positibong probabilidad ay depende sa sukat ng array ng bit array (m), ang bilang ng mga isinanib na elemento (n), at ang bilang ng mga tungkulin ng hash (k). Ang probabilidad (po) ng isang hindi totoong positibo ay maaaring kalkulahin ng:

p ⁇ (1 - e-kn/m)[k[[[[[]

Ang mga pagpapahalagang optimal para sa k at m ay maaaring magpaliit ng mga hindi tunay na positibo para sa isang ibinigay na n. Karaniwan, ang k ay pinipili bilang:

k = (m/n) * ln 2

Gamitin ang mga Kaso ng mga Bloom Filter

Ginagamit ang mga filter sa iba't ibang larangan, pati na:

  • Mga sistema ng Database para sa mabilis na pagsubok sa mga miyembro
  • Web caching upang bawasan ang disk hitsura ng mga ito
  • Mga sistema ng pamamahagi ng impormasyon para sa pagsasanib ng mga impormasyon
  • Ang seguridad ng Network para sa spam salain

Mga Hangganan ng mga Bulwagan

Bagaman ang mga bloom filter ay may limitasyon, ang mga ito ay maaaring magdulot ng maling mga positibo pero hindi naman maling mga negatibo.