Skip to main content
QUICK REVIEW

[論文レビュー] Techniques for Constructing Efficient Lock-free Data Structures

Trevor Brown|arXiv (Cornell University)|Dec 14, 2017
Distributed systems and fault tolerance参考文献 112被引用数 5
ひとこと要約

本論文では、効率的なロックフリーツリー・データ構造の構築を簡素化する新しいマルチワード同期プリミティブであるLLXおよびSCXを紹介する。動的メモリ割り当てと再利用を、新規のロックフリーエポックベース再利用アルゴリズム(DEBRA+)により可能にするとともに、ハードウェア・トランザクションメモリ(HTM)を活用して実装を高速化することで、強力な進行保証を備えた高パフォーマンスでスレッドセーフなツリー操作を実現し、オーバーヘッドを低減した。

ABSTRACT

Building a library of concurrent data structures is an essential way to simplify the difficult task of developing concurrent software. Lock-free data structures, in which processes can help one another to complete operations, offer the following progress guarantee: If processes take infinitely many steps, then infinitely many operations are performed. Handcrafted lock-free data structures can be very efficient, but are notoriously difficult to implement. We introduce numerous tools that support the development of efficient lock-free data structures, and especially trees.

研究の動機と目的

  • 単一ワードのCAS操作のみを用いて、効率的なロックフリーデータ構造、特にツリーを実装する難しさに対処すること。
  • ロックフリーアルゴリズムにおける動的メモリ割り当てと再利用の複雑さとオーバーヘッドを低減すること。
  • 単一CASと完全なマルチワードCASの間で表現力と効率性のバランスを取った同期プリミティブを設計すること。
  • クロミティックツリーとリラクストBスラックツリーのような高度なツリー構造の高パフォーマンスでスケーラブルな実装を可能にすること。
  • ツリーに基づくデータ構造と現代のハードウェア・トランザクションメモリと互換性を持つ実用的なロックフリーメモリ再利用メカニズムを開発すること。

提案手法

  • LLXおよびSCXを新規の同期プリミティブとして導入し、完全なマルチワードCASを必要とせずに複数ワードの原子的更新を可能にする。
  • ツリーの変更処理の論理を抽象化するツリー更新テンプレートを設計し、ロックフリーツリー操作のモジュラリティと正しさを実現する。
  • 動的ノード割り当てを伴うツリー・データ構造に特化した、高速でロックフリーエポックベース再利用(EBR)アルゴリズムであるDEBRA+を設計する。
  • ハードウェア・トランザクションメモリ(HTM)を活用して、3パス実行モデル(高速パス、中間パス、フォールバックパス)を採用し、干渉とオーバーヘッドを最小限に抑える。
  • SCXディスクリプタの動的割り当てを排除する新しい技術を採用することで、ディスクリプタ管理を最適化し、メモリ割り当ての圧力を低減する。
  • テンプレートとプリミティブを適用して、最初のロックフリーバージョンのクロミティックサーチツリー、リラクストAVLツリー、リラクスト(a,b)-ツリー、および空間複雑度を改善した新しいリラクストBスラックツリーを実装する。

実験結果

リサーチクエスチョン

  • RQ1ロックフリーデータ構造に対して、単一ワードCASよりも表現力が高く、完全なマルチワードCASよりも効率的な同期プリミティブをどのように設計できるか?
  • RQ2伝統的なEBRおよびGCアプローチの落とし穴を避けることのできる、ロックフリーツリー実装における動的メモリ再利用の効率的でスケーラブルな方法は何か?
  • RQ3ハードウェア・トランザクションメモリを効果的に活用することで、正しさと進行保証を維持したまま、ロックフリーツリー操作を高速化できるか?
  • RQ4クロミティックツリーとリラクストBツリーのような複雑なツリー構造の正しいかつ効率的なロックフリーリンクを体系的に構築するにはどうすればよいか?
  • RQ5SCX操作におけるディスクリプタ・オブジェクトの動的割り当てを排除するために適用可能な最適化は何か?

主な発見

  • LLXおよびSCXプリミティブにより、クロミティックサーチツリー、リラクストAVLツリー、リラクスト(a,b)-ツリーの最初のロックフリーバージョンが実現され、その表現力と実用性が実証された。
  • リラクストBスラックツリーは、Bツリーの新規な変種であり、従来のBツリーと比較して著しく優れた最悪ケースの空間複雑度を達成した。
  • DEBRA+は、動的ノード割り当てを伴うツリーに基づくデータ構造と両立可能な、初めての効率的でロックフリーエポックベース再利用アルゴリズムである。
  • 3パスHTM加速技術により、高速パスでのディスクリプタチェックを排除することでオーバーヘッドを低減し、複数のワークロードで顕著なパフォーマンス向上を達成した。
  • SCX操作における動的ディスクリプタ割り当ての排除技術により、メモリ割り当ての圧力を低減し、多数のアルゴリズムでパフォーマンスが向上した。
  • 実験の結果、HTM加速実装により顕著なパフォーマンス向上が得られ、とくに高競合のワークロードにおいて3パス手法の有効性が検証された。

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

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

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

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