Skip to main content
QUICK REVIEW

[論文レビュー] Another one flew over the cuckoo's nest

Ely Porat, Bar Shalem|arXiv (Cornell University)|Apr 28, 2011
Advanced Image and Video Retrieval Techniques被引用数 1
ひとこと要約

この論文では、メモリページ単位のアクセスを活用する非連続なクックー・ハッシュ法の変種を提案する。この手法は、バケツを単一のメモリページ内に完全に収めるようにすることで、メモリ利用効率を向上させ、挿入の反復回数を削減する。固定サイズのページ内に重複する非連続なバケツを許容することで、97.46%のメモリ利用効率を達成し、従来の変種と比較して92%の利用効率下で挿入反復回数を545回から52回に削減する。

ABSTRACT

Cuckoo hashing [4] is a multiple choice hashing scheme in which each item can be placed in multiple locations, and collisions are resolved by moving items to their alternative locations. In the classical implementation of two-way cuckoo hashing, the memory is partitioned into contiguous disjoint fixed-size buckets. Each item is hashed to two buckets, and may be stored in any of the positions within those buckets. Ref. [2] analyzed a variation in which the buckets are contiguous and overlap. However, many systems retrieve data from secondary storage in same-size blocks called pages. Fetching a page is a relatively expensive process; but once a page is fetched, its contents can be accessed orders of magnitude faster. We utilize this property of memory retrieval, presenting a variant of cuckoo hashing incorporating the following constraint: each bucket must be fully contained in a single page, but buckets are not necessarily contiguous. Empirical results show that this modification increases memory utilization and decreases the number of iterations required to insert an item. If each item is hashed to two buckets of capacity two, the page size is 8, and each bucket is fully contained in a single page, the memory utilization equals 89.71% in the classical contiguous disjoint bucket variant, 93.78% in the contiguous overlapping bucket variant, and increases to 97.46% in our new non-contiguous bucket variant. When the memory utilization is 92% and we use breadth first search to look for a vacant position, the number of iterations required to insert a new item is dramatically reduced from 545 in the contiguous overlapping buckets variant to 52 in our new non-contiguous bucket variant. In addition to the empirical results, we present a theoretical lower bound on the memory utilization of our variation as a function of the page size.

研究の動機と目的

  • 固定サイズのページでデータにアクセスするシステムにおける従来のクックー・ハッシュ法の非効率性を解消するため、バケツの配置をページ境界に合わせることを目的とする。
  • 同じページ内に非連続で重複するバケツを許容することで、クックー・ハッシュ法におけるメモリ利用効率を向上させることを目的とする。
  • 挿入中に空きスロットを見つけるために必要な反復回数を最小限に抑えることで、挿入時間を短縮することを目的とする。
  • ページサイズを関数として、提案された変種のメモリ利用効率の理論的下限を導出することを目的とする。

提案手法

  • メモリを固定サイズのページに分割し、バケツが空間的連続性に関係なく単一のページ内に完全に収まるように保証する。
  • 各バケツが1つのページ内に完全に収まっている限り、バケツが重複し、ページ間で非連続であっても許容する。
  • アイテムは2つのバケツにハッシュされ、代替場所を探索することで挿入が進行し、排出チェーンは幅優先探索を用いて解決される。
  • 一度ページがフェッチされると、その内容へのアクセスが著しく高速になるという事実を活用する。
  • ページサイズとバケツ容量に基づいて、メモリ利用効率の理論的下限を導出する。

実験結果

リサーチクエスチョン

  • RQ1ページ内での非連続なバケツ配置が、クックー・ハッシュ法におけるメモリ利用効率に与える影響は何か?
  • RQ2新しい変種は、連続および重複バケツ変種と比較して、挿入反復回数をどの程度削減するか?
  • RQ3このページに合わせたクックー・ハッシュ法の変種のメモリ利用効率の理論的限界は何か?
  • RQ4ページ単位のメモリアクセス効率は、提案されたスキームのパフォーマンスにどのように影響するか?

主な発見

  • 提案された非連続なクックー・ハッシュ法の変種は、各アイテムが容量2の2つのバケツにハッシュされる状況で、97.46%のメモリ利用効率を達成し、従来の連続で非重複な変種の89.71%、重複変種の93.78%を上回る。
  • 92%のメモリ利用効率下で、挿入に必要な反復回数は、重複変種の545回から、提案された非連続変種の52回にまで低下する。
  • バケツの配置をページ境界に合わせることで、メモリ効率が向上し、ページフェッチ回数が減少し、キャッシュ局所性が向上する。
  • 実験的結果から、非連続バケツアプローチが従来のクックー・ハッシュ法の変種と比較して、挿入遅延を顕著に低減することが確認された。
  • ページサイズを関数として、メモリ利用効率の理論的下限が確立され、将来的な設計のパフォーマンスベンチマークを提供した。

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

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

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

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