Skip to main content
QUICK REVIEW

[論文レビュー] APEX: A High-Performance Learned Index on Persistent Memory

Baotong Lu, Jialin Ding|arXiv (Cornell University)|May 3, 2021
Parallel Computing and Optimization Techniques参考文献 47被引用数 6
ひとこと要約

APEX は、パーよく、永続的で、並列処理が可能な学習済みインデックスであり、永続メモリ(PM)を最適化したもので、学習済みインデックスのデータ分布に適応した効率性と、PMに特化した最適化を組み合わせたものである。ALEX のモデルベース構造を PM 対応のデータレイアウト、DRAM におけるメタデータキャッシュ、および遅延回復と統合することで、既存の PM インデックスよりも最大 15× の高いスループットを達成し、Intel DCPMM において約 42ms の即時回復を実現した。

ABSTRACT

The recently released persistent memory (PM) offers high performance, persistence, and is cheaper than DRAM. This opens up new possibilities for indexes that operate and persist data directly on the memory bus. Recent learned indexes exploit data distribution and have shown great potential for some workloads. However, none support persistence or instant recovery, and existing PM-based indexes typically evolve B+-trees without considering learned indexes. This paper proposes APEX, a new PM-optimized learned index that offers high performance, persistence, concurrency, and instant recovery. APEX is based on ALEX, a state-of-the-art updatable learned index, to combine and adapt the best of past PM optimizations and learned indexes, allowing it to reduce PM accesses while still exploiting machine learning. Our evaluation on Intel DCPMM shows that APEX can perform up to ~15x better than existing PM indexes and can recover from failures in ~42ms.

研究の動機と目的

  • 挿入処理中に高い PM 書き込み帯域幅を消費するため、学習済みインデックスが永続メモリ(PM)で性能に限界を受ける問題を解決すること。
  • 学習済みインデックスが通常 DRAM を想定しており、永続性のセマンティクスを欠いているが、クラッシュ整合性と即時回復を可能にすること。
  • 高い検索および挿入パフォーマンスを維持しながら、メタデータおよびアクセラレータを DRAM にキャッシュすることで、学習済みインデックスにおける PM アクセスを削減すること。
  • PM に最適化されたデータ構造(例:未ソートのオーバーフロー・バケット)を学習済みインデックスの抽象化と統合し、構造的変更操作(SMOs)を回避することで、更新の効率を高めつつ検索パフォーマンスを損なわないようにすること。
  • 遅延回復と PM 対応の同期メカニズムを活用することで、高いスループットと低い回復時間の両立を実現すること。

提案手法

  • ALEX という最新の更新可能な学習済みインデックスを、データレイアウトおよびアクセスパターンの再設計により、永続メモリ上で直接動作可能に再アーキテクチャすること。
  • 特に検索や挿入といった高頻度の操作において、PM アクセスを削減するため、重要なメタデータ(例:モデルパラメータ、アクセラレータ)を DRAM にキャッシュすること。
  • 挿入処理において、コストの高いデータシフトを回避し、PM 書き込み帯域幅の使用を削減するために、未ソートで追加専用のオーバーフロー・バケットを採用すること。
  • 構造的変更操作(SMOs)の頻度を低減するために、[0.5, 0.9] の緩い密度バインドポリシーを採用し、PM 書き込みと同期のオーバーヘッドを削減すること。
  • PMwCAS とディスクリプタプールを用いた遅延回復を実装し、実行時まで完全な整合性チェックを延期することで、即時再起動を可能にすること。
  • 複数のデータノードをスレッドレベルの並列処理で同時に回復させることで、障害後のウォームアップ時間を短縮すること。

実験結果

リサーチクエスチョン

  • RQ1学習済みインデックスを、パフォーマンスを維持しつつ、PM に効率的かつ永続的に展開することは可能か?
  • RQ2PM 上での学習済みインデックスにおける構造的変更操作(SMOs)をどのように最小限に抑えることができるか? これにより、PM 書き込み帯域幅の削減とスケーラビリティの向上が図れるか?
  • RQ3メモリ内状態の再構築に依存せず、学習済みインデックスで即時回復を達成できるか? そのパフォーマンスへの影響は?
  • RQ4学習インデックスと PM 最適化を統合したハイブリッドインデックス設計において、PM アクセスの削減と DRAM 使用量のトレードオフはどのように影響するか?
  • RQ5モデルベース検索と PM 最適化データ構造を統合した場合、従来の B+-tree を基盤とする PM インデックスと比較して、スループットと回復時間にどのような影響があるか?

主な発見

  • APEX は、Intel Optane DCPMM 上で高並列ワークロード下で、既存の PM 最適化インデックス(例:uTree、LB+Tree、FPTree)と比較して最大約 15× の高いスループットを達成した。
  • APEX は平均して約 42ms でクラッシュから回復し、24スレッド下でウォームアップ時間が 1.9 秒未満であり、再起動後も即時利用が可能である。
  • アクセラレータおよびメタデータを DRAM にキャッシュすることで、検索パフォーマンスが 1.76× 向上し、挿入パフォーマンスが 2.21× 向上した。これは、PM アクセスの削減が有効であることを示している。
  • 緩い密度バインド([0.5, 0.9])を採用することで、タイトなバインドと比較して SMO の頻度が半減し、PM 書き込みが減少し、パフォーマンスが 1.21× 向上した。
  • 1億件のレコードを Longitudes から読み込んだ後、APEX は DRAM で 0.23GB、PM で 2.14GB を使用しており、DRAM のフットprintが小さく、高容量利用効率を示している。
  • APEX の回復時間は 1 秒未満であり、データサイズに従って劣線形にスケーリングされ、uTree(1億キーアンダーで 43 秒)と LB+Tree(1億キーアンダーで 7.2 秒)を上回り、FPTree や BzTree と同等の性能を示した。

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

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

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

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