Skip to main content
QUICK REVIEW

[論文レビュー] DeltaTree: A Practical Locality-aware Concurrent Search Tree

Ibrahim Umar, Otto J. Anshus|arXiv (Cornell University)|Dec 9, 2013
Distributed systems and fault tolerance参考文献 18被引用数 4
ひとこと要約

DeltaTreeは、キャッシュ効率の良いvan Emde Boas(vEB)レイアウトと非ブロッキング同時実行技術を組み合わせることで、検索および更新操作の両方で高い性能を達成する、局所性に配慮した新しい並列探索木である。低〜中程度の競合状態下で、AVL木、赤黒木、スパイオレーションフレンドリー木と比較して、検索は最大5倍速く、更新は最大1.6倍速く、$ O(\log_B N) $ の期待されるメモリ転送コストを達成しており、エネルギー効率が高く、多くのコアを持つシステムに最適である。

ABSTRACT

As other fundamental programming abstractions in energy-efficient computing, search trees are expected to support both high parallelism and data locality. However, existing highly-concurrent search trees such as red-black trees and AVL trees do not consider data locality while existing locality-aware search trees such as those based on the van Emde Boas layout (vEB-based trees), poorly support concurrent (update) operations. This paper presents DeltaTree, a practical locality-aware concurrent search tree that combines both locality-optimisation techniques from vEB-based trees and concurrency-optimisation techniques from non-blocking highly-concurrent search trees. DeltaTree is a $k$-ary leaf-oriented tree of DeltaNodes in which each DeltaNode is a size-fixed tree-container with the van Emde Boas layout. The expected memory transfer costs of DeltaTree's Search, Insert, and Delete operations are $O(\log_B N)$, where $N, B$ are the tree size and the unknown memory block size in the ideal cache model, respectively. DeltaTree's Search operation is wait-free, providing prioritised lanes for Search operations, the dominant operation in search trees. Its Insert and {\em Delete} operations are non-blocking to other Search, Insert, and Delete operations, but they may be occasionally blocked by maintenance operations that are sometimes triggered to keep DeltaTree in good shape. Our experimental evaluation using the latest implementation of AVL, red-black, and speculation friendly trees from the Synchrobench benchmark has shown that DeltaTree is up to 5 times faster than all of the three concurrent search trees for searching operations and up to 1.6 times faster for update operations when the update contention is not too high.

研究の動機と目的

  • 並列探索木における高並列性と細粒度のデータ局所性のギャップを埋めること。
  • 複数のキャッシュレベルにわたる並列処理とメモリアクセスパターンの両方を最適化するエネルギー効率の高い探索木を実現すること。
  • 効率的な並列更新を可能にする動的で緩いキャッシュオブliviousなレイアウトを設計すること。
  • 待機フリーの検索と非ブロッキング挿入/削除操作を達成しながら、最適なキャッシュ複雑度を維持すること。
  • 現実的なワークロード下で、最先端の並列探索木と比較してDeltaTreeの性能を評価すること。

提案手法

  • 動的ポインタによるノードの動的割り当てを可能にしつつ、$ O(\log_B N) $ のメモリ転送複雑度を保持する動的van Emde Boas(vEB)レイアウトを設計する。
  • 固定サイズのDeltaNodeからなる$k$-aryでリーフ指向の木構造を構築し、各DeltaNodeがvEBレイアウトを用いて関連するキーをメモリ上に連続して配置する。
  • 未知のメモリブロックサイズ$ B $の上限を仮定する緩いキャッシュオブリブスモデルを導入し、複数のメモリレベルにわたる局所性最適化を可能にする。
  • 優先順位付きランを用いて待機フリーの検索を実装し、検索操作の進行を保証する。
  • 挿入および削除に非ブロッキングアルゴリズムを適用し、構造のバランスを維持するための時々のメンテナンス操作を実装するが、一時的なブロッキングを許容する。
  • 更新の同期を図り、線形化可能性を保証しながら競合を最小限に抑えるために、待機して確認する手法を適用する。

実験結果

リサーチクエスチョン

  • RQ1現代の多くのコアを持つシステムにおいて、探索木が高並列性と細粒度のデータ局所性の両方を達成できるか。
  • RQ2vEBレイアウトをどのように動的かつ並列的な更新に対応させつつ、キャッシュ効率を損なわずに保てるか。
  • RQ3局所性に配慮したレイアウトと非ブロッキング同時実行プリミティブを組み合わせた場合の性能への影響は何か。
  • RQ4AVL木、赤黒木、スパイオレーションフレンドリー木などの既存の並列探索木と比較して、DeltaTreeの検索および更新スループットはどのように異なるか。
  • RQ5メンテナンス操作は性能にどの程度影響を与えるか。また、現実的なワークロード下でそれらは最小限に抑えられるか。

主な発見

  • 100%の検索ワークロード下で、AVL木、赤黒木、スパイオレーションフレンドリー木と比較して、DeltaTreeの検索性能は最大5倍向上した。
  • 更新操作において、更新の競合が低〜中程度の状態下で、AVL木、赤黒木、スパイオレーションフレンドリー木と比較して、DeltaTreeは最大1.6倍速くなった。
  • DeltaTreeのキャッシュミス率は他の木と比べて顕著に低く、$ \Delta $ Treeでは8.9%〜10.6%であったのに対し、SFtreeは11.1%、VTMtreeは5.5%であり、スループットははるかに高かった。
  • 動的vEBレイアウトにより、メモリ転送回数が$ O(\log_B N) $に削減され、キャッシュオブリブス構造の理論的下界と一致した。
  • 待機フリーの検索操作により、高競合状態下でもすべての検索要求に対して進行が保証された。
  • メンテナンス操作はまれであり、キャッシュミスのオーバーヘッドが低く、高いスループットを維持していることから、性能に大きな影響を与えていないことが示された。

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

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

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

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