Skip to main content
QUICK REVIEW

[논문 리뷰] Wormhole: A Fast Ordered Index for In-memory Data Management

Xingbo Wu, Fan Ni|arXiv (Cornell University)|2018. 05. 06.
Distributed systems and fault tolerance참고 문헌 31인용 수 63
한 줄 요약

Wormhole은 해시 테이블, 접두사 트리, 및 B+ 트리와 같은 구조를 결합하여 메모리 내 데이터 관리에서 정렬된 인덱스에 대해 O(log L) 조회 시간(L = key length)을 달성하고, 공간 효율성과 빠른 구간 쿼리에 경쟁력을 있습니다.

ABSTRACT

In-memory data management systems, such as key-value stores, have become an essential infrastructure in today's big-data processing and cloud computing. They rely on efficient index structures to access data. While unordered indexes, such as hash tables, can perform point search with O(1) time, they cannot be used in many scenarios where range queries must be supported. Many ordered indexes, such as B+ tree and skip list, have a O(log N) lookup cost, where N is number of keys in an index. For an ordered index hosting billions of keys, it may take more than 30 key-comparisons in a lookup, which is an order of magnitude more expensive than that on a hash table. With availability of large memory and fast network in today's data centers, this O(log N) time is taking a heavy toll on applications that rely on ordered indexes. In this paper we introduce a new ordered index structure, named Wormhole, that takes O(log L) worst-case time for looking up a key with a length of L. The low cost is achieved by simultaneously leveraging strengths of three indexing structures, namely hash table, prefix tree, and B+ tree, to orchestrate a single fast ordered index. Wormhole's range operations can be performed by a linear scan of a list after an initial lookup. This improvement of access efficiency does not come at a price of compromised space efficiency. Instead, Wormhole's index space is comparable to those of B+ tree and skip list. Experiment results show that Wormhole outperforms skip list, B+ tree, ART, and Masstree by up to 8.4x, 4.9x, 4.3x, and 6.6x in terms of key lookup throughput, respectively.

연구 동기 및 목표

  • 전통적인 O(log N) 조회가 큰 규모에서 비용이 많이 들게 되는 인-메모리 KV 저장소에서 빠른 정렬 인덱스의 필요성을 제기한다.
  • 공간 사용량을 크게 늘리지 않으면서 조회 시간을 O(log N)에서 O(log L) 방향으로 줄이는 하이브리드 데이터 구조를 제안한다.
  • 대규모 인메모리 인덱스에서 삽입 및 삭제의 성능을 유지하고 효율적인 구간 쿼리를 가능하게 한다.
  • 기존 인덱스(B+ 트리, 스킵 리스트, ART, Masstree)와의 비교를 통해 Wormhole의 동시성 및 공간 특성을 분석한다.

제안 방법

  • B+ 트리 메타트리를 메타트라이으로 교체하여 조회 비용을 N(키 수)로부터 분리하도록 Wormhole을 도입한다.
  • 메타트라이를 해시 기반 접두사 표로 가속된 최장 접두사 매치를 통해 O(log L) 조회를 달성하기 위해 해시 사용 가능 메타트라이HT로 교체한다.
  • 표준 트라이에 비해 공간 효율성을 향상시키기 위해 리프 노드당 여러 키를 저장한다.
  • 두 단계 검색을 사용한다: (1) MetaTrieHT를 통한 최장 접두사 매치, (2) 내부 노드 비트맵과 리프 포인터를 이용한 빠른 탐색을 위한 서브트리 워크.
  • 메타트라이HT에 점진적 해싱과 차단 없이 조회를 지원하는 RCU 기반의 락프리 리더 경로를 도입한다.
  • GET, SET, DEL, 및 RangeSearchAscending에 대한 알고리즘을 제공하고, MetaTrieHT에서 리프의 분할/병합 및 앵커 유지 관리에 대해 설명한다.

실험 결과

연구 질문

  • RQ1Can Wormhole achieve lookup costs of O(log L) independent of N while maintaining space efficiency comparable to B+ trees?
  • RQ2How can a hybrid structure (hash + trie + B+ tree concepts) support efficient point and range queries in large in-memory indexes?
  • RQ3What concurrency strategies enable fast lookups with minimal locking while supporting insertions, deletions, and structural modifications?
  • RQ4How does Wormhole compare to existing ordered indexes and to hash tables in terms of throughput and space?
  • RQ5What optimizations further reduce the lookup path costs and improve practical performance?

주요 결과

  • Wormhole achieves an asymptotic lookup time of O(log L), where L is the search key length, which is lower than O(log N) for large N.
  • Wormhole’s core structure combines a LeafList (like a B+ tree leaves) with a MetaTrieHT that accelerates longest-prefix matches and reduces traversal costs.
  • Experimental results show Wormhole outperforms Skip List, B+ Tree, ART, and Masstree by up to 8.4×, 4.9×, 4.3×, and 6.6× in key lookup throughput, respectively.
  • When compared to a highly optimized Cuckoo hash table for point-lookup scenarios without range queries, Wormhole achieves 30–92% of the hash-table throughput.
  • The space overhead of Wormhole is comparable to B+ tree and typically lower than a plain trie, due to storing multiple keys per leaf and anchoring efficiency.
  • Concurrency is supported with reader-writer locks at the leaf level and a lock-protected MetaTrieHT with RCU-based lock-free readers, reducing contention during lookups while enabling safe updates.

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

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

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

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