Skip to main content
QUICK REVIEW

[論文レビュー] Don't Thrash: How to Cache Your Hash on Flash

Michael A. Bender, Martı́n Farach-Colton|arXiv (Cornell University)|Aug 1, 2012
Caching and Content Delivery参考文献 17被引用数 34
ひとこと要約

本稿では、クォータientフィルタ(QF)および2つのSSD最適化バージョン—バッファドクォータientフィルタ(BQF)とカスケードフィルタ(CF)—を導入し、ブルームフィルタの高性能代替手段を提示する。より優れたデータ局所性と連続的なメモリアクセスを活用することで、これらの構造は、フラッシュストレージ上での挿入が最大11倍高速化され、競争力のある検索速度を実現し、エレベータ、バッファド、フォレスト構造のブルームフィルタなど、既存のブルームフィルタの変種を上回る性能を発揮する。

ABSTRACT

This paper presents new alternatives to the well-known Bloom filter data structure. The Bloom filter, a compact data structure supporting set insertion and membership queries, has found wide application in databases, storage systems, and networks. Because the Bloom filter performs frequent random reads and writes, it is used almost exclusively in RAM, limiting the size of the sets it can represent. This paper first describes the quotient filter, which supports the basic operations of the Bloom filter, achieving roughly comparable performance in terms of space and time, but with better data locality. Operations on the quotient filter require only a small number of contiguous accesses. The quotient filter has other advantages over the Bloom filter: it supports deletions, it can be dynamically resized, and two quotient filters can be efficiently merged. The paper then gives two data structures, the buffered quotient filter and the cascade filter, which exploit the quotient filter advantages and thus serve as SSD-optimized alternatives to the Bloom filter. The cascade filter has better asymptotic I/O performance than the buffered quotient filter, but the buffered quotient filter outperforms the cascade filter on small to medium data sets. Both data structures significantly outperform recently-proposed SSD-optimized Bloom filter variants, such as the elevator Bloom filter, buffered Bloom filter, and forest-structured Bloom filter. In experiments, the cascade filter and buffered quotient filter performed insertions 8.6-11 times faster than the fastest Bloom filter variant and performed lookups 0.94-2.56 times faster.

研究の動機と目的

  • フラッシュストレージ上でのブルームフィルタのスケーラビリティ制限(ランダムI/Oによるもの)を解消すること。
  • SSDへの導入に適した、データ局所性を向上させ、ランダムアクセスのオーバーヘッドを低減するデータ構造を設計すること。
  • 標準のブルームフィルタに欠けている、削除の効率的サポートと動的リサイズの実現。
  • 最近のブルームフィルタの変種を上回る挿入および検索性能を実現する、SSD最適化バージョンの開発。
  • I/O効率の漸近的向上を達成するとともに、フラッシュストレージ上で低い偽陽性率と高いスループットを維持すること。

提案手法

  • クォータント方式を用いて、ブルームフィルタよりも優れたデータ局所性を実現するハッシュテーブル構造に似たキーの整理を行うクォータントフィルタ(QF)を提案する。
  • QFにRAM上バッファを追加することでバッファドクォータントフィルタ(BQF)を実装し、書き込みのバッチ処理と順次アクセスパターンの改善により、ディスク上のランダムI/Oを低減する。
  • 各レベルがQFである階層的で多段構造のカスケードフィルタ(CF)を設計し、検索の深さを対数的に低くすることで、大規模データに対してI/O効率を向上させる。
  • CFではファンアウトパラメータを用いて挿入と検索の性能トレードオフを調整でき、高いファンアウトは検索深さを低下させるが、ディスクへの書き込み負荷を増加させる。
  • バッファリングとハッシュ局所化技術を適用し、特に大規模データセットにおいて、ランダムI/Oを低減し、SSD性能を向上させる。
  • QFをBQFおよびCFのコアコンponentとして統合し、標準ブルームフィルタに欠けている削除と動的リサイズの機能を実現する。

実験結果

リサーチクエスチョン

  • RQ1より優れたデータ局所性を持つハッシュベースのデータ構造は、フラッシュストレージ上でのI/O効率においてブルームフィルタを上回ることができるか?
  • RQ2クォータントフィルタの設計は、削除と動的リサイズをサポートしながら、ブルームフィルタよりも性能をどのように向上させるか?
  • RQ3BQFにおけるバッファリングとCFにおける階層的構造は、どれほどランダムI/Oを低減し、SSD性能を向上させるか?
  • RQ4カスケードフィルタにおける挿入と検索の性能トレードオフはどのようなものか?また、ファンアウトはこのトレードオフにどのように影響するか?
  • RQ5提案された構造は、エレベータ、バッファド、フォレスト構造のブルームフィルタなど、最近のSSD最適化ブルームフィルタの変種と定量的に比較して、どのように差がつくか?

主な発見

  • カスケードフィルタおよびバッファドクォータントフィルタは、Intel X-25M SSD上での挿入が、最も高速なブルームフィルタ変種(エレベータブルームフィルタ)の8.6~11倍高速であった。
  • カスケードフィルタおよびBQFは、最も高速なブルームフィルタ変種よりも、検索が0.94~2.56倍高速であった。BQFは小規模~中規模のデータセットにおいて、より優れたクエリ性能を示した。
  • BQFは小規模~中規模のデータセットにおいて、RAM上バッファの効率的利用のおかげでCFを上回ったが、データサイズがRAM容量を超えた段階でCFのスケーリング性能が優れていた。
  • CFの検索性能は、ファンアウトが高くなるにつれて向上し、チェックすべきレベル数が減少した。一方で、高いファンアウトはディスクへの書き込み負荷を増加させ、挿入性能を低下させた。
  • BQFおよびCFの両方で、RAMバッファがフラッシュされる直前にピークに達する「サーキュラーパターン(歯型パターン)」の検索スループットが観察され、RAMキャッシュの効果的な利用が裏付けられた。
  • CFでは挿入処理中にCPUがボトルネックとなり、100MB/s以上の利用可能なディスク帯域幅のうちわずか7MB/sしか使用しなかったため、並列処理やバックグラウンドマージの導入により、さらなる性能向上の余地が示された。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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