Skip to main content
QUICK REVIEW

[論文レビュー] Data Structure Primitives on Persistent Memory: An Evaluation

Philipp Götze, Arun Kumar Tharanatha|arXiv (Cornell University)|Jan 7, 2020
Advanced Data Storage Technologies参考文献 20被引用数 6
ひとこと要約

本論文は、実際のPMemハードウェアを用いて、永続メモリ(PMem)向けの低レベルデータ構造プリミティブを評価し、既存の木構造ベースの設計を基本的な構成要素に分解する。その結果、データノードにはビットマップを用いたハッシュプローブ、内部ノードにはソートされたレイアウトが最適であることが特定され、書き込み集約的で、ポイントクエリや反復処理が多用されるワークロードにおけるパフォーマンスのトレードオフと設計指針が提示された。

ABSTRACT

Persistent Memory (PMem), as already available, e.g., with Intel Optane DC Persistent Memory, represents a very promising, next-generation memory solution with a significant impact on database architectures. Several data structures for this new technology and its properties have already been proposed. However, primarily only complete structures are presented and evaluated. Thus, the implications of the individual ideas and PMem features are concealed. Therefore, in this paper, we disassemble the structures presented so far, identify their underlying design primitives, and assign them to appropriate design goals regarding PMem. As a result of our comprehensive experiments on real PM hardware, we can reveal the trade-offs of the primitives for various access patterns. This allowed us to pinpoint their best use cases as well as vulnerabilities. Besides our general insights regarding PMem-based data structure design, we also discovered new combinations not examined in the literature so far.

研究の動機と目的

  • PMemデータ構造の包括的評価にとどまらず、その背後にある低レベル設計プリミティブを分析すること。
  • PMem固有の課題(書き込み増幅、永続性、整合性など)に対処するコアなプリミティブを特定・分類すること。
  • Intel Optane DC Persistent Memoryハードウェア上で、実際のアクセスパターンに従ってこれらのプリミティブを評価すること。
  • PMem最適化されたデータ構造を構築するデータベース研究者やシステム研究者に、実行可能な設計インサイトとパフォーマンスのトレードオフを提供すること。
  • 特にハイブリッドDRAM/PMemシステムにおいて、従来の文献で未だ探求されていなかったプリミティブの新しい組み合わせを発見すること。

提案手法

  • B+ツリー、スキャンリスト、LSMツリーなどの既存PMemデータ構造を、ハッシング、ビットマップ、間接参照、ソートされたレイアウトなどの原子的設計プリミティブに分解した。
  • 各プリミティブを、書き込みを減らす、細粒度アクセスを可能にする、整合性・耐久性を保証する、という3つの主要な設計目標のいずれかにマッピングした。
  • 検索、挿入、削除、反復処理など10種類の異なる低レベルアクセスパターンを、マイクロベンチマークを用いて実際のDCPMMハードウェア上で定義・評価した。
  • IntelのMemory Latency CheckerとFlexible I/O testerを用いて、制御された条件下での遅延とパフォーマンスを測定した。
  • PMDKトランザクションと手動で実装したアトミック性メカニズムを比較し、パフォーマンスオーバーヘッドを評価した。
  • パフォーマンスが求められるワークロード向けに、ハイブリッドDRAM/PMemアーキテクチャを提案した。内部ノードはDRAMに、データノードはPMemに格納する。

実験結果

リサーチクエスチョン

  • RQ1PMem上でのさまざまなアクセスパターン(例:ポイントクエリ、スキャン、更新)に対して、どの低レベルデータ構造プリミティブが最良のパフォーマンスを発揮するか?
  • RQ2ハッシング+ビットマップ、間接参照+ソートされたレイアウトといったプリミティブの組み合わせが、パフォーマンスと書き込み増幅に与える影響は?
  • RQ3PMDKトランザクションとカスタムアトミック更新メカニズムを比較した場合、PMem上でパフォーマンスにどのような影響があるか?
  • RQ4メモリレイアウト(例:256B対1KBノードサイズ)やキャッシュラインアラインメントは、実際のDCPMMハードウェア上でパフォーマンスにどのように影響するか?
  • RQ5PMemデータ構造におけるパフォーマンスボトルネックは何か?また、プリミティブ選択と割り当て戦略によってどのように緩和できるか?

主な発見

  • ポイントクエリや削除が多数発生するワークロードでは、データノードにビットマップを用いたハッシュプローブ(1 KiBサイズ)が、全体として最良のパフォーマンスを発揮する。
  • DRAMに格納される内部ノードにおいて、間接参照とソートされたレイアウトを組み合わせることで、ポインタチェイニングに起因するパフォーマンス劣化が顕著に低減され、走査効率が向上する。
  • PMDKトランザクションは顕著なオーバーヘッドを伴い、手動で実装したアトミック更新より最大10倍も遅いため、パフォーマンスが求められるアプリケーションには不適切である。
  • キャッシュラインへの連続アクセスは非連続アクセスよりも著しく高速である。特に間接参照や反復処理のパターンでは、キャッシュラインを飛び越えるアクセスがパフォーマンスを著しく低下させる。
  • PMem上のメモリ割り当ては高コストであり、グループ割り当てとノード再利用によって最小限に抑えるべきである。頻繁な割り当て/解放はパフォーマンスに深刻な影響を与える。
  • PMemベースのインデックス構造における最適なノードサイズは、256バイトから1 KiBの間である。これは、書き込み結合バッファの効率と検索構造のオーバーヘッドの両者を最適にバランスさせる。

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

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

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

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