Skip to main content
QUICK REVIEW

[論文レビュー] An Optimal Bloom Filter Replacement Based on Matrix Solving

Ely Porat|ArXiv.org|Apr 11, 2008
Caching and Content Delivery参考文献 7被引用数 8
ひとこと要約

本論文は、GF(2^k)上での行列解法を用いることでブールフィルタを置き換える、空間最適化された新しい辞書データ構造を提案する。n 個のキーに k ビットの値を割り当てる場合、nk + o(n) ビットの最適な空間使用量を達成する。1 回のクエリ時間は O(1) であり、一様ハッシュ関数の代わりにペアワイズ独立なハッシュ関数のみを必要とし、従来の方法と比較して顕著な空間削減を実現しながら、片側エラー(誤検出のみ)を維持する。

ABSTRACT

We suggest a method for holding a dictionary data structure, which maps keys to values, in the spirit of Bloom Filters. The space requirements of the dictionary we suggest are much smaller than those of a hashtable. We allow storing n keys, each mapped to value which is a string of k bits. Our suggested method requires nk + o(n) bits space to store the dictionary, and O(n) time to produce the data structure, and allows answering a membership query in O(1) memory probes. The dictionary size does not depend on the size of the keys. However, reducing the space requirements of the data structure comes at a certain cost. Our dictionary has a small probability of a one sided error. When attempting to obtain the value for a key that is stored in the dictionary we always get the correct answer. However, when testing for membership of an element that is not stored in the dictionary, we may get an incorrect answer, and when requesting the value of such an element we may get a certain random value. Our method is based on solving equations in GF(2^k) and using several hash functions. Another significant advantage of our suggested method is that we do not require using sophisticated hash functions. We only require pairwise independent hash functions. We also suggest a data structure that requires only nk bits space, has O(n2) preprocessing time, and has a O(log n) query time. However, this data structures requires a uniform hash functions. In order replace a Bloom Filter of n elements with an error proability of 2^{-k}, we require nk + o(n) memory bits, O(1) query time, O(n) preprocessing time, and only pairwise independent hash function. Even the most advanced previously known Bloom Filter would require nk+O(n) space, and a uniform hash functions, so our method is significantly less space consuming especially when k is small.

研究の動機と目的

  • 従来のブールフィルタよりも顕著に空間使用量を削減しつつ、高速なクエリ性能を維持する辞書データ構造の設計。
  • n 個のキーを k ビットの値にマッピングする場合、情報理論的下界に近い nk + o(n) ビットの最小空間要件の実現。
  • 一様ハッシュ関数の代わりにペアワイズ独立なハッシュ関数のみを用いて、O(1) クエリ時間の実現。従来の方法で必要とされる計算コストの高い一様ハッシュ関数の使用を回避。
  • パスワードフィルタリング、キャッシュ、分散ストレージなど、空間効率が重要な応用分野におけるブールフィルタの実用的代替手段の提供。
  • 空間使用量をさらに低減(nk ビット)するバリアントの検討。ただし、O(log n) クエリ時間と O(n²) の事前処理時間が必要であり、一様ハッシュ関数に依存する。

提案手法

  • キー-値マッピングを有限体 GF(2^k) 上の一次方程式系として表現し、行列逆行列を用いて値を解く。
  • 複数のペアワイズ独立なハッシュ関数を用いてキーを行列内の位置にマッピングし、値の効率的エンコードおよびデコードを可能にする。
  • O(1) クエリ時間のバリアントでは、システムをサブバケットに分割し、逆行列を事前に計算してハッシュテーブルに格納し、高速な照合を実現。
  • 同じ逆行列を持つサブバケットをグループ化し、ワードレベルの並列演算を活用して行列-ベクトル乗算を再利用することで高速化を達成。
  • 空間最適化バリアントでは、n 個のスパース方程式を n 変数で解くためにブロック・ウイデマンアルゴリズムを用い、空間使用量を nk ビットに削減。
  • 構成により、有効なキーは常に正しい値を返すが、非メンバーは確率 2^(-k) で誤検出(偽陽性)を返す。

実験結果

リサーチクエスチョン

  • RQ1情報理論的下界に近い、具体的には nk + o(n) ビットの空間使用量を実現できるブールフィルタの代替構造を構築できるか?
  • RQ2一様ハッシュ関数やユニバーサルハッシュ関数の代わりにペアワイズ独立なハッシュ関数のみを用いて、O(1) クエリ時間を達成できるか?
  • RQ3nk ビットの空間使用量を実現しつつ、妥当なクエリ性能と正しさの保証を維持できるデータ構造を設計できるか?
  • RQ4静的で誤り耐性を持つ辞書において、低空間使用量と高速クエリ時間を維持しつつ、事前処理時間を最小限に抑える方法は何か?
  • RQ5分散ストレージやインターネットキャッシュのような大規模応用分野に適した、分散可能でスケーラブルな構成が可能か?

主な発見

  • 提案されたデータ構造は nk + o(n) ビットの空間使用量を実現し、下位の項を除いて最適であり、従来のブールフィルタと比較して顕著な空間削減を達成する。
  • ペアワイズ独立なハッシュ関数のみを用いて O(1) クエリ時間を達成し、従来の方法で必要とされる高コストな一様ハッシュ関数の使用を排除する。
  • 片側エラー(誤検出のみ)をサポートする:有効なキーは常に正しい値を返すが、非メンバーは確率 2^(-k) で誤検出を返す。
  • nk ビットの空間使用量を実現するバリアントを提案するが、これには O(log n) のクエリ時間と O(n²) の事前処理時間が必要であり、一様ハッシュ関数に依存する。
  • 最適化された行列乗算とワードレベルの並列演算を用いることで、多数の小さな行列系を解く場合でも、事前処理時間を O(n) に短縮可能。
  • パスワードフィルタリング、差分データベース、インターネットキャッシュなど、空間と速度が重要な実世界の応用分野において、堅牢かつ実用的な構成である。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。