Skip to main content
QUICK REVIEW

[論文レビュー] Wormhole: A Fast Ordered Index for In-memory Data Management

Xingbo Wu, Fan Ni|arXiv (Cornell University)|May 6, 2018
Distributed systems and fault tolerance参考文献 31被引用数 63
ひとこと要約

Wormholeはハッシュテーブル、プレフィックスツリー、およびB+木に似た構造を組み合わせ、インメモリデータ管理における有序インデックスのルックアップ時間を O(log L)(L = キー長)で達成し、スペース効率と高速なレンジクエリで競争力を持つ。

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を評価し、同時実行性とスペース特性を分析する。

提案手法

  • Wormholeを導入する際、B+木のMetaTreeをMetaTrieに置換して、ルックアップコストを N(キーの数)からデカップルする。
  • MetaTrieをハッシュ対応のMetaTrieHTに置換し、ハッシュベースのプレフィックステーブルで加速された最長一致で O(log L) ルックアップを達成する。
  • 標準的なTrieと比較してスペース効率を向上させるために、リーフノードごとに複数のキーを格納する。
  • 2段階の探索を用いる: (1) MetaTrieHTによる最長プレフィックス一致、(2) 内部ノードビットマップとリーフポインタを用いたサブツリー歩行で高速ナビゲーション。
  • インクリメンタルハッシュを組み込み、MetaTrieHTのロックフリーレーダーパス(RCU)を利用して、ブロックせずに同時ルックアップをサポートする。
  • GET、SET、DEL、および RangeSearchAscending のアルゴリズムを提供し、MetaTrieHTにおけるリーフの分割/結合とアンカーの維持を説明する。

実験結果

リサーチクエスチョン

  • RQ1Wormholeは、Nに依存せずO(log L)のルックアップコストを達成しつつ、B+木に匹敵するスペース効率を維持できるか。
  • RQ2ハイブリッド構造(ハッシュ+Trie+B+木の概念)が、大規模なインメモリ索引で効率的なポイントおよびレンジクエリをどのようにサポートできるか。
  • RQ3挿入、削除、構造的変更をサポートしつつ、最小限のロックで高速なルックアップを実現するための並行性戦略は何か。
  • RQ4スループットとスペースの観点から、Wormholeは既存の有序インデックスおよびハッシュテーブルとどう比較されるか。
  • RQ5ルックアップパスコストをさらに削減し、実用的な性能を向上させる最適化は何か。

主な発見

  • Wormholeは、Lが検索キー長を表すO(log L)の漸近的なルックアップ時間を達成し、Nが大きいときにはO(log N)より小さい。
  • Wormholeの中核構造は、B+木のリーフのようなLeafListと、最長プレフィックス一致を加速し走査コストを低減するMetaTrieHTを組み合わせたもの。
  • 実験結果は、WormholeがSkip List、B+ Tree、ART、Masstreeをキールックアップスループットで最大でそれぞれ8.4×、4.9×、4.3×、6.6×上回ることを示している。
  • レンジクエリのないポイントルックアップの場合に高度に最適化されたCuckooハッシュテーブルと比較すると、Wormholeはハッシュテーブルスループットの30–92%を達成する。
  • Wormholeの空間オーバーヘッドはB+木と同等、通常はプレーンTrieより低く、リーフあたり複数キーを格納することとアンカーの効率性による。
  • リーダー–ライター ロックをリーフレベルで用い、RCUに基づくロックフリーのリーダーを備えたMetaTrieHTで、ルックアップ時の競合を低減し、 updatesを安全に可能にする。

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

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

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

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