Skip to main content
QUICK REVIEW

[論文レビュー] Architecture-Aware, High Performance Transaction for Persistent Memory

Kai Wu, Jie Ren|arXiv (Cornell University)|Mar 14, 2019
Advanced Data Storage Technologies参考文献 47被引用数 4
ひとこと要約

この論文では、ハードウェアのキャッシュ動作を活用し、低汚染度キャッシュラインをコalescingすることで、キャッシュラインフラッシュのオーバーヘッドを低減する、永続メモリ向けのアーキテクチャに配慮したトランザクションシステムであるArchaptを提案する。キャッシュ滞留の推定とチェックサムベースの整合性回復を用いることで、PMDKおよびMnemosyneのベースラインと比較して、キャッシュフラッシュを平均66%削減し、スループットを19%向上する。

ABSTRACT

Byte-addressable non-volatile main memory (NVM) demands transactional mechanisms to access and manipulate data on NVM atomically. Those transaction mechanisms often employ a logging mechanism (undo logging or redo logging). However, the logging mechanisms can bring large runtime overhead (8%-49% in our evaluation), and 41%-78% of the overhead attributes to the frequent cache-line flushing. Such large overhead significantly diminishes the performance benefits offered by NVM. In this paper, we introduce a new method to reduce the overhead of cache-line flushing for logging-based transactions. Different from the traditional method that works at the program level and leverages program semantics to reduce the logging overhead, we introduce architecture awareness. In particular, we do not flush certain cache blocks, as long as they are estimated to be eliminated out of the cache because of the hardware caching mechanism (e.g., the cache replacement algorithm). Furthermore, we coalesce those cache blocks with low dirtiness to improve the efficiency of cache-line flushing. We implement an architecture-aware, high performance transaction runtime system for persistent memory, Archapt. Our results show that comparing with an undo logging (PMDK) and a redo logging (Mnemosyne), Archapt reduces cache-line flushing by 66% and improves system throughput by 19% on average (42% at most). Our crash tests with four hardware caching policies show that Archapt provides a strong guarantee on crash consistency.

研究の動機と目的

  • 永続メモリにおけるログベースのトランザクションの高いランタイムオーバーヘッド、特に頻繁なキャッシュラインフラッシュに起因するものを解決すること。
  • トランザクショナルシステムにおける明示的キャッシュラインフラッシュ命令によるパフォーマンス劣化を軽減すること。
  • アーキテクチャに配慮した最適化を通じて、キャッシュラインフラッシュを最小限に抑えながらも、強力なクラッシュ整合性を維持すること。
  • 低汚染度キャッシュブロックをコalescingすることで、キャッシュラインフラッシュの効率を向上させること。
  • ハードウェアの変更なしにキャッシュ滞留を軽量なソフトウェアのみで推定するメカニズムを提供すること。

提案手法

  • ハードウェアキャッシュリプレースポリシー(例:LRU)のソフトウェア的近似を用いて、永続オブジェクトの汚染キャッシュブロックがキャッシュに残留するかどうかを推定する。
  • ハードウェアキャッシュリプレース機構によってエリミネートされる可能性が高いブロックについては、明示的なキャッシュラインフラッシュをスキップする。
  • 汚染度が低い(平均49%)キャッシュブロックをコalescingすることで、フルラインフラッシュの回数を減らし、メモリ帯域幅の効率を向上させる。
  • チェックサムメカニズムを用いてクラッシュ後に不整合な永続オブジェクトを検出し、修正することで、クラッシュ整合性を確保する。
  • アンドゥおよびリドゥログメカニズムを両方サポートするトランザクションランタイムシステム(Archapt)に最適化を統合する。
  • 明示的なフラッシュ命令の必要性を回避するため、エリミネートが近い場合には、既存のハードウェアキャッシュメカニズムを暗黙的に活用する。

実験結果

リサーチクエスチョン

  • RQ1アーキテクチャに配慮したキャッシュ滞留推定により、永続メモリトランザクションにおける明示的キャッシュラインフラッシュの回数を削減できるか?
  • RQ2低汚染度キャッシュブロックのコalescingは、キャッシュラインフラッシュの効率を向上させるのにどの程度効果的か?
  • RQ3ハードウェア動作のソフトウェア的近似により、フラッシュをスキップしてもクラッシュ整合性を維持できるか?
  • RQ4キャッシュラインフラッシュをスキップした場合、システムスループットおよびレイテンシにどのような影響を与えるか?
  • RQ5多様なハードウェアキャッシュポリシー下でも、チェックサムベースの不整合検出および是正メカニズムはどれほど頑健か?

主な発見

  • Archaptは、ベースラインのアンドゥ(PMDK)およびリドゥ(Mnemosyne)ログメカニズムと比較して、平均で66%のキャッシュラインフラッシュ削減を達成した。
  • TPC-C、YCSB、OLTP-benchワークロードの全範囲で、システムスループットが平均19%(最良で42%)向上した。
  • 4種類のハードウェアキャッシュポリシーを想定した100回のクラッシュテストにおいて、チェックサムメカニズムはすべての不整合な永続オブジェクトを正常に検出し、是正した。
  • 数十億回の更新を行っても、100回のクラッシュテストあたり数百程度の不整合な永続オブジェクトしか検出されず、高い信頼性を示した。
  • アンドゥおよびリドゥログの両方において、フラッシュされたキャッシュラインの平均汚染度は49%であり、低汚染度ブロックのコalescingがフラッシュ効率を顕著に向上させることを確認した。
  • 先行研究がパフォーマンス向上のため永続性順序制約を緩和するのに対し、本手法は、書き込み順序制約を緩和せずに、強力なクラッシュ整合性を維持した。

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

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

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

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