並列ブルームフィルタは、並列共有なしマシンに存在する複数の処理要素(PE)を活用するために実装できます。並列ブルームフィルタの主な障害の 1 つは、一般的に、開始時またはバッチ挿入時にすべての PE に均等に分散される順序付けされていないデータの整理と通信です。データを順序付けるには 2 つのアプローチを使用できます。1 つは、すべてのデータに対するブルームフィルタが各 PE に格納される結果となるもので、複製ブルームフィルタと呼ばれます。もう 1 つは、すべてのデータに対するブルームフィルタが等しい部分に分割され、各 PE がその 1 つの部分を格納する方法です。[ 40 ]どちらのアプローチでも、「シングルショット」ブルームフィルタが使用され、1 つのハッシュのみが計算され、要素ごとに 1 つの反転ビットが生成されて通信量が削減されます。
分散ブルームフィルタは、まずローカルPE上で全ての要素をハッシュ化し、次にハッシュ値に基づいてローカルでソートすることによって開始されます。これは、バケットソートなどを用いて線形時間で実行でき、ローカルでの重複検出も可能です。ソートは、ハッシュ値を割り当てられたPEを区切り文字としてグループ化し、各グループに対してブルームフィルタを作成するために使用されます。これらのブルームフィルタをゴロム符号化などを用いてエンコードした後、各ブルームフィルタは、挿入されたハッシュ値を担当するPEにパケットとして送信されます。PE pは、値間の全てのハッシュ値を担当します。そしてここで、s は全データに対するブルームフィルタの合計サイズです。各要素は一度だけハッシュ化され、したがって単一のビットのみが設定されるため、要素がブルームフィルタに挿入されたかどうかを確認するには、その要素のハッシュ値を担当する PE のみを操作すれば済みます。すべての PE がブルームフィルタを更新する必要がある複製ブルームフィルタと比較して、変更する必要があるのは 1 つの PE のブルームフィルタだけであるため、単一の挿入操作も効率的に実行できます。グローバルブルームフィルタを各 PE に個別に保存するのではなく、すべての PE に分散することで、ブルームフィルタのサイズをはるかに大きくすることができ、結果として容量が大きくなり、偽陽性率が低くなります。分散ブルームフィルタは、最も「ユニーク」な要素をフィルタリングすることで、重複検出アルゴリズム[ 41 ] を改善するために使用できます。これらは、ボリュームがはるかに大きい要素自体ではなく、要素のハッシュのみを通信し、それらをセットから削除することで計算でき、後で使用される重複検出アルゴリズムのワークロードが軽減されます。
ハッシュの通信中、PE は受信パケットの複数で設定されているビットを検索します。これは、2 つの要素が同じハッシュを持ち、したがって重複している可能性があることを意味します。これが発生した場合、ビットのインデックス (重複している可能性のある要素のハッシュでもある) を含むメッセージが、設定されたビットを含むパケットを送信した PE に送信されます。 1 つの送信者から同じ PE に複数のインデックスが送信される場合、インデックスもエンコードすると有利になる場合があります。 ハッシュが返送されなかったすべての要素は、重複していないことが保証され、それ以上評価されません。残りの要素については、再分割アルゴリズム[ 42 ]を使用できます。 まず、ハッシュ値が返送されたすべての要素が、そのハッシュが担当する PE に送信されます。これで、すべての要素とその重複が同じ PE 上にあることが保証されます。 2 番目のステップでは、各 PE は、受信要素 (開始要素の数のごく一部) に対して、重複検出のための逐次アルゴリズムを使用します。重複データの誤検出率を許容することで、通信量をさらに削減できます。これは、PE(プロバイダエッジ)が重複ハッシュを持つ要素を送信する必要がなくなり、重複ハッシュを持つ要素はすべて重複としてマークできるためです。結果として、重複検出の誤検出率は、使用するブルームフィルタの誤検出率と同じになります。
しかし、フィルタの種類に関わらず、n 回挿入した後、偽陽性の合計は偽陰性確率は以下によって制限されるここで、Lは可能なすべての要素の数(アルファベットのサイズ)、mはメモリサイズ(ビット単位)であり、この結果は、Lが十分に大きくnが無限大に近づく場合、下限が収束することを示している。これはランダムフィルタの特性関係です。したがって、十分な挿入が行われ、アルファベットがメモリに格納するには大きすぎる場合(確率フィルタの文脈では想定されます)、フィルタがランダム性よりも優れた性能を発揮することは不可能です。この結果は、フィルタがストリーム全体ではなくスライディングウィンドウでのみ動作することを想定することで活用できます。この場合、上記の式の指数nはwに置き換えられ、 w が小さすぎなければ、1 からずれる可能性のある式が得られます。
深さ D の減衰ブルームフィルタは、D 個の通常のブルームフィルタの配列と見なすことができます。ネットワークにおけるサービス発見のコンテキストでは、各ノードは通常のブルームフィルタと減衰ブルームフィルタをローカルに格納します。通常のローカルブルームフィルタは、ノード自身が提供するサービスを示します。レベル i の減衰フィルタは、現在のノードから i ホップ離れたノードで見つけることができるサービスを示します。i 番目の値は、ノードから i ホップ離れたノードのローカルブルームフィルタの和集合を取ることによって構築されます。[ 50 ]
分子フィンガープリントは、1940年代後半にパンチカードで検索された化学構造を検索する方法として始まりました。しかし、事前に計算されたテーブルを使用するのではなく、ハッシュベースの方法でビットを生成する方法をDaylight Chemical Information Systems, Inc.が導入したのは1990年頃になってからです。辞書方式とは異なり、ハッシュ方式では、これまで見られなかった部分構造にビットを割り当てることができます。1990年代初頭には、「フィンガープリント」という用語は「構造キー」とは異なると考えられていましたが、その後、構造キー、スパースカウントフィンガープリント、3Dフィンガープリントなど、類似性比較に使用できるほとんどの分子特性を包含するようになりました。ブルームフィルタとは異なり、Daylightハッシュ方式では、特徴ごとに割り当てられるビット数を特徴サイズの関数にすることができますが、Daylightのようなフィンガープリントのほとんどの実装では、特徴ごとに固定数のビットを使用するため、ブルームフィルタになります。オリジナルのDaylightフィンガープリントは、類似性とスクリーニングの両方の目的で使用できました。 ECFP2のような他の多くの指紋タイプは、類似性の確認には使用できますが、スクリーニングには使用できません。なぜなら、スクリーニングに使用すると、局所的な環境特性によって偽陰性が発生するからです。これらの指紋タイプは同じメカニズムで構築されていても、フィルタリングに使用できないため、ブルームフィルタではありません。
1 2 Swamidass, S. Joshua; Baldi, Pierre (2007). "化学物質検索を改善するための指紋類似度尺度の数学的補正". Journal of Chemical Information and Modeling . 47 (3): 952– 964. doi : 10.1021/ci600526a . PMID 17444629 .
↑ Dasgupta, Sanjoy; Sheehan, Timothy C.; Stevens, Charles F.; Navlakha, Saket (2018-12-18). "新規性検出のためのニューラルデータ構造" . Proceedings of the National Academy of Sciences . 115 (51): 13093– 13098. Bibcode : 2018PNAS..11513093D . doi : 10.1073/pnas.1814448115 . ISSN 0027-8424 . PMC 6304992 . PMID 30509984 .
↑ Jones, JC (2020-01-09). "CRLiteの紹介: Web PKIのすべての失効を圧縮" . Mozilla Security Blog . 2026-01-12に取得.
↑ Jones, JC (2020-01-09). "CRLite のエンドツーエンド設計" . Mozilla Security Blog . 2026-01-12に取得.
↑ Colville, Stuart (2020-08-24). "拡張可能なアドオンブロックリストの紹介" . Mozilla Add-ons Community Blog . 2026-01-12に取得.
↑ Goodwin, Bob; Hopcroft, Michael; Luu, Dan; Clemmer, Alex; Curmei, Mihaela; Elnikety, Sameh; Yuxiong, He (2017). "BitFunnel: Revisiting Signatures for Search" (PDF) . Proceedings of the 40th International ACM SIGIR Conference on Research and Development in Information Retrieval . pp. 605–614 . doi : 10.1145/3077136.3080789 . ISBN978-1-4503-5022-8. S2CID 20123252 .
↑ 「Grafana Tempo ドキュメント - キャッシング」 . Grafana . 2022-11-16に取得。
1 2 Carter, Larry; Floyd, Robert; Gill, John; Markowsky, George; Wegman, Mark (1978). "Exact and approximate membership testers" . Proceedings of the tenth annual ACM symposium on Theory of computing - STOC '78 . New York, New York, USA: ACM Press. pp. 59–65 . doi : 10.1145/800133.804332 . S2CID 6465743 .
↑ Larisch, James; Choffnes, David; Levin, Dave; Maggs, Bruce M.; Mislove, Alan; Wilson, Christo (2017). "CRLite: A Scalable System for Pushing All TLS Revocations to All Browsers". 2017 IEEE Symposium on Security and Privacy (SP) . pp. 539–556 . doi : 10.1109/sp.2017.17 . ISBN978-1-5090-5533-3. S2CID 3926509 .
↑ Sanders, Peter; Schlag, Sebastian; Müller, Ingo (2013). "Communication efficient algorithms for fundamental big data problems". 2013 IEEE International Conference on Big Data . pp. 15–23 . doi : 10.1109/BigData.2013.6691549 . ISBN978-1-4799-1293-3. S2CID 15968541 .
↑ Schlag, Sebastian (2013). 「分散型重複削除」。カールスルーエ工科大学。
↑ Shatdal, Ambuj; Jeffrey F. Naughton (1994). "並列データベースシステムにおける集計の処理".ウィスコンシン大学マディソン校コンピュータサイエンス学部: 8.
↑ V. Kumar; A. Grama; A. Gupta; G. Karypis (1994).並列コンピューティング入門。アルゴリズムの設計と分析。Benjamin/Cummings。
↑ Yoon, MyungKeun (2010). "動的セットのための2つのアクティブバッファを備えたエイジングブルームフィルタ". IEEE Transactions on Knowledge and Data Engineering . 22 (1): 134– 138. Bibcode : 2010ITKDE..22..134Y . doi : 10.1109/TKDE.2009.136 . S2CID 15922054 .
↑ Géraud-Stewart, Rémi; Lombard-Platet, Marius; Naccache, David (2020). "スライディングウィンドウにおける最適な重複検出へのアプローチ". Computing and Combinatorics . Lecture Notes in Computer Science. Vol. 12273. pp. 64–84 . arXiv : 2005.04740 . doi : 10.1007/978-3-030-58150-3_6 . ISBN978-3-030-58149-7. S2CID 218581915 .
Dharmapurikar, Sarang; Song, Haoyu; Turner, Jonathan; Lockwood, John (2006)、「ブルームフィルタを用いた高速パケット分類」、2006 ACM/IEEE Symposium on Architecture for Networking and Communications Systems (PDF)、pp. 61–70、CiteSeerX 10.1.1.78.9584、doi : 10.1145/1185347.1185356、ISBN978-1595935809S2CID 7848110、2007年2月2日にオリジナル(PDF)からアーカイブ済み
Dietzfelbinger, Martin; Pagh, Rasmus (2008)、「検索と近似メンバーシップのための簡潔なデータ構造」、Aceto, Luca; Damgård, Ivan; Goldberg, Leslie Ann; Halldórsson, Magnús M.; Ingólfsdóttir, Anna; Walukiewicz, Igor (編)、Automata, Languages and Programming: 35th International Colloquium, ICALP 2008、アイスランド、レイキャビク、2008 年 7 月 7 ~ 11 日、Proceedings、Part I、Track A: Algorithms, Automata, Complexity, and Games、Lecture Notes in Computer Science、vol. 5125、Springer、pp. 385–396、arXiv:0803.3693、doi:10.1007/978-3-540-70575-8_32、ISBN978-3-540-70574-1S2CID 1699996
Dillinger, Peter C.; Manolios, Panagiotis (2004a)、「SPIN のための高速かつ正確なビット状態検証」、第 11 回国際 SPIN モデル検査ソフトウェアワークショップ議事録、Springer-Verlag、Lecture Notes in Computer Science 2989
Dillinger, Peter C.; Manolios, Panagiotis (2004b)、「確率的検証におけるブルームフィルタ」、第5回コンピュータ支援設計における形式手法に関する国際会議議事録、Springer-Verlag、Lecture Notes in Computer Science 3312
Fan, Bin; Andersen, Dave G.; Kaminsky, Michael; Mitzenmacher, Michael D. (2014)、「カッコウフィルタ:ブルームフィルタより実質的に優れている」、第10回ACM国際新興ネットワーク実験技術会議議事録、pp. 75–88、doi : 10.1145/2674005.2674994、ISBN9781450332798オープンソースの実装はGitHubで入手可能です。
Fan, Li; Cao, Pei ; Almeida, Jussara ; Broder, Andrei (2000)、「Summary Cache: A Scalable Wide-Area Web Cache Sharing Protocol」(PDF)、IEEE/ACM Transactions on Networking、8(3):281–293、Bibcode:2000ITNet...8..281L、CiteSeerX 10.1.1.41.1487、doi:10.1109/90.851975、S2CID 4779754 、2017年9月22日にオリジナル(PDF)からアーカイブ、2018年7月30日に取得予備版はSIGCOMM '98で発表された。
Kirsch, Adam; Mitzenmacher, Michael (2006)、「ハッシュ回数を減らしてパフォーマンスを維持する:より優れたブルームフィルタの構築」、Azar, Yossi; Erlebach, Thomas (編)、Algorithms – ESA 2006、第14回欧州シンポジウム(PDF)、Lecture Notes in Computer Science、vol. 4168、Springer-Verlag、Lecture Notes in Computer Science 4168、pp. 456–467、doi : 10.1007/11841036、ISBN978-3-540-38875-32009年1月31日にオリジナル(PDF)からアーカイブされました
Maggs, Bruce M. ; Sitaraman, Ramesh K. (2015年7月)、「コンテンツ配信におけるアルゴリズムのヒント」(PDF)、ACM SIGCOMM Computer Communication Review、45 (3): 52–66、CiteSeerX 10.1.1.696.9236、doi : 10.1145/2805789.2805800、S2CID 65760 、 2021年8月14日にオリジナル(PDF)からアーカイブ済み
Mortensen, Christian Worm; Pagh, Rasmus ; Pătrașcu, Mihai (2005)、「一次元におけるダイナミックレンジの報告について」、第37回ACM理論計算機科学シンポジウム議事録、pp. 104–111、arXiv : cs/0502032、doi : 10.1145/1060590.1060606、ISBN978-1581139600S2CID 56473
Mullin, James K. (1990)、「分散データベースシステムのための最適なセミジョイン」、IEEE Transactions on Software Engineering、16 (5): 558–560、Bibcode : 1990ITSEn..16..558M、doi : 10.1109/32.52778
Porat, Ely (2009)、「行列ソルビングに基づく最適なブルームフィルタ置換」、Frid, Anna E.、Morozov, Andrey、Rybalchenko, Andrey、Wagner, Klaus W. (編)、Computer Science, Theory and Applications: Fourth International Computer Science Symposium in Russia, CSR 2009、ロシア、ノボシビルスク、2009年8月18~23日、Proceedings、Lecture Notes in Computer Science、vol. 5675、Springer、pp. 263–273、arXiv : 0804.1845、doi : 10.1007/978-3-642-03351-3_25、ISBN978-3-642-03350-6S2CID 3205108
Pournaras, E.; Warnier, M.; Brazier, FMT (2013)、「大規模分散ネットワーク向けの汎用的かつ適応的な集約サービス」、Complex Adaptive Systems Modeling、1 (19): 19、doi : 10.1186/2194-3206-1-19プロトタイプの実装はGitHubで入手可能です。
Putze, F.; Sanders, P. ; Singler, J. (2007)、「キャッシュ効率、ハッシュ効率、スペース効率に優れたブルームフィルタ」、Demetrescu, Camil (編)、Experimental Algorithms、第6回国際ワークショップ、WEA 2007 (PDF)、Lecture Notes in Computer Science、vol. 4525、Springer-Verlag、Lecture Notes in Computer Science 4525、pp. 108–121、doi : 10.1007/978-3-540-72845-0、ISBN978-3-540-72844-32007年6月23日にオリジナル(PDF)からアーカイブされ、2007年7月18日に取得されました。