Skip to main content
QUICK REVIEW

[論文レビュー] High-Performance Concurrency Control Mechanisms for Main-Memory Databases

Per-Åke Larson, Spyros Blanas|arXiv (Cornell University)|Dec 31, 2011
Distributed systems and fault tolerance参考文献 1被引用数 4
ひとこと要約

本稿では、メインメモリOLTPデータベースを対象とした、高性能な2つのマルチバージョン並行制御(MVCC)メカニズム—能動的(オプティミスティック)と受動的(ペシミスティック)—を提案する。両者とも、読み取り専用トランザクションと更新を分離するためにマルチバージョニングを用いる。能動的バージョンは、競合を最小限に抑えるために検証とアトミックタイムスタンプ取得を用いる。実験の結果、高競合状態や長時間トランザクション下で、単一バージョンロックよりMVCC手法が優れていることが示され、能動的アプローチはより高いスループットを達成した。

ABSTRACT

A database system optimized for in-memory storage can support much higher transaction rates than current systems. However, standard concurrency control methods used today do not scale to the high transaction rates achievable by such systems. In this paper we introduce two efficient concurrency control methods specifically designed for main-memory databases. Both use multiversioning to isolate read-only transactions from updates but differ in how atomicity is ensured: one is optimistic and one is pessimistic. To avoid expensive context switching, transactions never block during normal processing but they may have to wait before commit to ensure correct serialization ordering. We also implemented a main-memory optimized version of single-version locking. Experimental results show that while single-version locking works well when transactions are short and contention is low performance degrades under more demanding conditions. The multiversion schemes have higher overhead but are much less sensitive to hotspots and the presence of long-running transactions.

研究の動機と目的

  • 高スループットのメインメモリOLTPシステムにおける伝統的な単一バージョンロックのスケーラビリティ制限を解消すること。
  • メモリ内ワークロードに最適化されたマルチバージョン並行制御メカニズムの設計と評価すること。
  • さまざまなワークロード下での、能動的および受動的MVCCスキームと単一バージョンロックとの性能比較。
  • MVCCが従来のロックと比較して、優れた耐障害性とスループットを示す条件を特定すること。

提案手法

  • シリアル化を保証するため、コミット時に検証とアトミックタイムスタンプ取得を用いる能動的MVCCスキームを提案する。
  • トランザクション実行中に競合を防ぐためにマルチバージョンロックを用いる受動的MVCCスキームを実装する。
  • 性能ベースラインとして、メインメモリに最適化された単一バージョンロックの変種を設計する。
  • バージョンタイムスタンプを用いて可視性および更新可能性を決定し、読み取り安定性とフェイント防止を保証する。
  • 通常処理中はブロッキングを回避することで競合を最小限に抑え、待機は主にコミットフェーズでのみ発生する。
  • タイムスタンプ取得のためのクリティカルセクションは、1つのアトミック命令に限定され、高並列性を実現する。

実験結果

リサーチクエスチョン

  • RQ1高スループットのメインメモリ環境下で、能動的MVCCは受動的MVCCおよび単一バージョンロックと比較してどのように性能を発揮するか?
  • RQ2単一バージョンロックと比較して、マルチバージョニングはホットスポットや長時間の読み取り専用トランザクションに対する耐障害性を顕著に向上させるか?
  • RQ3MVCCメカニズムの性能オーバーヘッドは何か?また、高競合下でも依然として許容範囲内に保たれるか?
  • RQ4能動的MVCCアプローチは、ブロッキングが少ないため、受動的バージョンよりも高いスループットを達成するか?
  • RQ5能動的および受動的トランザクションは、同じデータベース内で競合なく共存可能か?

主な発見

  • 能動的MVCCスキームは、低競合のTATPに類似したワークロード下で、単一バージョンロックの10倍以上のスループットを達成した。
  • 単一バージョンロックの性能は、高競合状態や長時間の読み取り専用トランザクション下で急激に低下し、ボトルネックとなる。
  • 受動的MVCCスキームは高競合下で単一バージョンロックを上回ったが、能動的バージョンに劣っていた。
  • MVCCメカニズムはホットスポットや長時間トランザクション下でも高いスループットを維持し、優れた耐障害性を示した。
  • 能動的アプローチは、シリアル化オーバーヘッドが少ないため、受動的MVCCメソッドよりも一貫して高いスループットを達成した。
  • タイムスタンプ取得のためのクリティカルセクションは非常に短く(1つのアトミック命令)、高並列性と低競合を実現した。

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

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

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

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