Skip to main content
QUICK REVIEW

[논문 리뷰] Another one flew over the cuckoo's nest

Ely Porat, Bar Shalem|arXiv (Cornell University)|2011. 04. 28.
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.

연구 동기 및 목표

  • 고정 크기의 페이지로 데이터에 액세스하는 시스템에서 전통적인 쿠키투 해싱의 비효율성을 해결하기 위해 버킷 배치를 페이지 경계에 맞추는 것.
  • 동일한 페이지 내에서 비연속적이고 겹치는 버킷을 허용함으로써 쿠키투 해싱의 메모리 활용도를 향상시키는 것.
  • 삽입 중 빈 슬롯을 찾는 데 필요한 반복 횟수를 최소화함으로써 삽입 시간을 줄이는 것.
  • 페이지 크기를 함수로 하여 제안된 변종의 메모리 활용도에 대한 이론적 하한을 도출하는 것.

제안 방법

  • 메모리를 고정 크기의 페이지로 분할하고, 공간적 연속성과는 무관하게 각 버킷이 단일 페이지에 완전히 포함되도록 보장한다.
  • 각 버킷이 한 페이지에 완전히 포함되어 있는 한, 버킷이 겹치고 비연속적으로 배치되도록 허용한다.
  • 항목들은 두 개의 버킷으로 해싱되며, 삽입은 대체 위치를 탐색함으로써 진행되며, 추방 체인은 너비 우선 탐색을 사용하여 해결한다.
  • 한 번 페이지가 로드되면 그 내용에 액세스하는 데 훨씬 더 빠르다는 사실을 활용하여 지연 시간을 감소시킨다.
  • 페이지 크기와 버킷 용량을 바탕으로 메모리 활용도에 대한 이론적 하한을 유도한다.

실험 결과

연구 질문

  • RQ1페이지 내에서 비연속적 버킷 배치가 쿠키투 해싱의 메모리 활용도에 어떤 영향을 미치는가?
  • RQ2새로운 변종이 연속적 및 겹치는 버킷 변종 대비 삽입 반복 횟수를 얼마나 줄이는가?
  • RQ3이 페이지 기반 쿠키투 해싱 변종의 이론적 메모리 활용도의 한계는 무엇인가?
  • RQ4페이지 수준의 메모리 액세스 효율성은 제안된 기법에서 성능에 어떤 영향을 미치는가?

주요 결과

  • 제안된 비연속적 쿠키투 해싱 변종은 각 항목이 용량이 2인 두 개의 버킷으로 해싱될 경우 97.46%의 메모리 활용도를 달성했으며, 기존의 연속적이고 분리된 변종의 89.71%와 겹치는 변종의 93.78%를 초월한다.
  • 92% 메모리 활용도에서 삽입에 필요한 반복 횟수는 겹치는 변종의 545회에서 제안된 비연속적 변종의 52회로 감소했다.
  • 버킷 배치를 페이지 경계에 맞춤으로써 메모리 효율성을 향상시켜 페이지 프리패칭 횟수를 줄이고 캐시 국소성을 향상시켰다.
  • 실험 결과는 비연속적 버킷 접근 방식이 이전 쿠키투 해싱 변종 대비 삽입 지연 시간을 크게 감소시킨다는 것을 확인했다.
  • 페이지 크기를 함수로 하여 메모리 활용도에 대한 이론적 하한을 확립함으로써, 향후 설계에 대한 성능 기준을 제공했다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.