Skip to main content
QUICK REVIEW

[論文レビュー] Cache-Aware Lock-Free Concurrent Hash Tries

Aleksandar Prokopec, Phil Bagwell|arXiv (Cornell University)|Sep 18, 2017
Distributed systems and fault tolerance参考文献 13被引用数 11
ひとこと要約

本論文は、ブロッキングを伴わずにスレッドセーフな挿入、探索、削除を可能にするロックフリーでキャッシュに配慮した同時実行ハッシュTrie(Ctrie)を提示する。このデータ構造は、削除後の動的収縮によって空間効率を維持し、線形化可能性とロックフリー性を保証しており、ストップ・ザ・ワールドのリサイズフェーズを排除することで、並列ワークロードにおいて高いパフォーマンスとスケーラビリティを達成する。

ABSTRACT

This report describes an implementation of a non-blocking concurrent shared-memory hash trie based on single-word compare-and-swap instructions. Insert, lookup and remove operations modifying different parts of the hash trie can be run independent of each other and do not contend. Remove operations ensure that the unneeded memory is freed and that the trie is kept compact. A pseudocode for these operations is presented and a proof of correctness is given -- we show that the implementation is linearizable and lock-free. Finally, benchmarks are presented which compare concurrent hash trie operations against the corresponding operations on other concurrent data structures, showing their performance and scalability.

研究の動機と目的

  • ロックを回避し、スレッドの障害や遅延が発生しても進行を保証する同時実行ハッシュTrieの設計。
  • キーの削除後にTrieを動的に収縮させることで、空間効率を維持すること。
  • ストップ・ザ・ワールドのリサイズフェーズを排除し、リアルタイム動作を可能にすること。
  • 線形化可能性とロックフリー性を形式的に証明し、並列アクセス下での正しさを保証すること。
  • 包括的なベンチマークを通じて、既存の同時実行データ構造と比較してパフォーマンスを評価すること。

提案手法

  • ハッシュアレイマップドTrie構造にビットマスクインデックス付き配列を用い、空間効率とキャッシュに配慮したメモリアクセスを実現する。
  • すべての操作(挿入、探索、削除)が、ロックを回避するための1ワード比較・アトミック・スワップ(CAS)命令によって実装される。
  • ビットマップと配列エントリへのアトミックな更新を通じて不変条件を維持し、並列変更中も一貫性を保証する。
  • クリーンアップおよび収縮メカニズムにより、ヌル・インオッドとトゥーム・インオッドを削除し、スノードに再生することでTrieをコンパクト化し、深さを低減する。
  • 葉からルートへ上向きにコンパクト化を伝搬する「tombCompress」フェーズを含み、長さ1のチップが1つまでしか残らないように保証する。
  • 形式的正しさの証明により、状態不変条件と有限状態遷移の議論を用いて、線形化可能性とロックフリー性を確立する。

実験結果

リサーチクエスチョン

  • RQ1ロックを用いず、空間効率とキャッシュに配慮した同時実行ハッシュTrieを実装可能か?
  • RQ2削除操作は、使用されていないメモリを解放し、Trieをコンパクトに保つためにどのように実現可能か?
  • RQ3グローバル同期化やストップ・ザ・ワールドのリサイズフェーズが存在しないことで、並列ワークロードにおけるパフォーマンスとスケーラビリティが向上するか?
  • RQ4提案されたデータ構造は、すべての実行シナリオにおいて線形化可能かつロックフリーか?
  • RQ5実際のパフォーマンスは、他の同時実行データ構造と比較してどうなるか?

主な発見

  • Ctrieは線形化可能性とロックフリー性を達成しており、任意の実行シーケンスにおいて少なくとも1つのスレッドが進行することが保証される。
  • 削除後にデータ構造が動的に収縮され、最適な深さを維持し、メモリ使用量を最小限に抑える。
  • ベンチマークの結果、高コントェンション下でも他の同時実行データ構造を上回るスループットとスケーラビリティを示す。
  • グローバル同期化フェーズが存在しないため、予測可能なパフォーマンスでリアルタイム動作が可能になる。
  • スレッド数の増加に伴い良好にスケーリングし、ロックベースの代替手法と比較して並列ワークロードにおいて優れたパフォーマンスを発揮する。
  • 正しさの証明により、任意のインタリーブとスレッド障害下でもすべての操作が安全であることが確認された。

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

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

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

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