タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

bloomfilterに関するkakku22のブックマーク (5)

  • pixivでBloomFilterを使うためにやったこと - pixiv inside [archive]

    こんにちは。最近はAndroidアプリ開発に入門しました、@edvakfです。 pixivではキャッシュ兼汎用KVSとしてKyotoTycoon (KT)を使用しており、頻繁にアクセスされるキーはアプリケーションサーバー内のAPCPHPのshared memory cacheです)にもキャッシュすることで多段化しています。 このような構成の弱点として、「ほとんどの場合は値が無いけど毎回存在確認が必要なキー」の場合に前段にキャッシュが無くて毎回後段にまで問い合わせなければいけないという問題があります。ネガティブキャッシュ(値がないことをキャッシュする)を使うという手もありますが、問い合わせるキーの数が膨大になってくると現実的ではありません。 pixivでは、作品に付いている最大10個のタグについて、ピクシブ百科事典に記事があるかどうかを判定する必要がありました。これに加え、最近ではBOOT

    pixivでBloomFilterを使うためにやったこと - pixiv inside [archive]
  • Bloom filterの説明 — ありえるえりあ

    Bloom filterの説明 以前、bloom filterに言及したことがあるのですが、実は、言及しただけで何も調べていませんでした。 来週、ある人の話を聞く時、知らないとついていけない可能性があるので、調べてみました。 - 参考サイト 感想ですが、予想以上にシンプルでした。 動作イメージ(だけ)は誰でもイメージできます(実装も簡単)。 上の参考サイトも、英語に気後れせず、図だけでも見てください。動作は想像できるはずです。そして、たぶん、その想像は当たっています。 参考サイトを読めば分かることを日語で改めて説明するのも気がひけますが、どうしても英語を読みたくない人のために、簡単に説明してみます。 動作イメージ あ る入力文書が与えられたとして、後で、その文書に、ある単語fooが存在するかを高速にチェックしたい、という問題を想定するのが理解しやすいと思いま す。入力文書に対する前処理を

    kakku22
    kakku22 2016/10/13
    k が増えると false positive の可能性増えるじゃんと思ってた
  • ブルームフィルタを試してみた - wataメモ

    最近、H2Oの開発者であるKazuhoさんのブログでブルームフィルタという単語があったので調べてみた。 Kazuho's Weblog: ソート済の整数列を圧縮する件 以下はKazuhoさんのブログを読んだ前提で書いています。 特徴 Wikipediaより引用。 空間効率の良い確立的データ構造であり、要素が集合のメンバーであるかどうかのテストに使われる。 偽陽性(False Positive)による誤検出の可能性があるが、偽陰性(False Negative)はない。要素を集合に追加することができるが、削除することはできない(Counting filter を使えば削除できる)。集合に要素が追加されればされるほど、偽陽性の可能性が高くなる。 つまり、特定の要素(例えば名前)が集合(名簿)に含まれているかどうかを調べるために使われる。 ただ、毎回名簿情報をサーバに投げているとデータ量が多くな

    ブルームフィルタを試してみた - wataメモ
  • Scalable Bloom Filtersとは一体....? - Qiita

    Wikipediaを漁っていたところScalable Bloom Filters(SBF)というデータ構造を発見してしまったので紹介します1。 参照した論文 http://haslab.uminho.pt/cbm/publications/scalable-bloom-filters Bloom Filter SBFの説明に入る前に、Bloom Filterについて簡単に紹介します。もっとも、日語のWikipediaでも十分詳しい説明が載っていたりするのですが……。 ささっと説明 Bloom Filterはちょっと不思議な性質を持つデータ構造の一種です2。 いわゆるSetと同じ操作を提供する 要素を入れる操作と、ある要素が入っているかを調べる操作 どちらも時間計算量O(1)で実現できる ハッシュテーブルなどを用いて実装される同種のデータ型と比して、とても空間効率が良い その代わりに、ある

    Scalable Bloom Filtersとは一体....? - Qiita
    kakku22
    kakku22 2016/10/06
    Bloom filter と Counting filter しか知らなかった.面白い
  • Bloomフィルターについて調べた

    Eric Redmond & Jim R. Wilson 著の”Seven Databases in Seven Weeks” を読んでいたところ、Ch.8 Redis の Day2 で書籍名の重複チェックに Bloom Filter という確率的データ構造(アルゴリズム?)が利用されていた。ではさらっとしか触れられていなかったので調査。 処理の流れ 材料 ビット配列(m ビット) ハッシュ関数(k個。整数1からm のどれかをかえす) 作り方 下ごしらえ ビット配列の各ビットは予め0で初期化しておく。 各初期データをk個のハッシュ関数にわせ、ハッシュ関数のかえすビットを立てる。 重複チェック 重複チェックしたい入力値をk個のハッシュ関数にわせる ハッシュ関数のかえすビットがビット配列で立っているかチェック すべてのビットが立っていれば、重複と判定。 一つでも立っていないビットがあれば

    Bloomフィルターについて調べた
  • 1