Skip to main content
QUICK REVIEW

[論文レビュー] Transaction Repair: Full Serializability Without Locks

Todd L. Veldhuizen|arXiv (Cornell University)|Mar 22, 2014
Distributed systems and fault tolerance参考文献 15被引用数 7
ひとこと要約

本稿では、並列にトランザクションの衝突を検出し、修復することで完全な可串性を達成する、ロックフリーな並行制御メカニズムであるTransaction Repairを提案する。クエリ評価と修復の伝搬にインクリメンタル化されたループフロッグトライジョインを用いることで、高い衝突率下でも顕著な並列スループット向上を実現し、悪質なワークロード下でも従来のロック方式やオピニオンスリー並行制御(OCC)を上回る性能を発揮する。

ABSTRACT

Transaction Repair is a method for lock-free, scalable transaction processing that achieves full serializability. It demonstrates parallel speedup even in inimical scenarios where all pairs of transactions have significant read-write conflicts. In the transaction repair approach, each transaction runs in complete isolation in a branch of the database; when conflicts occur, we detect and repair them. These repairs are performed efficiently in parallel, and the net effect is that of serial processing. Within transactions, we use no locks. This frees users from the complications and performance hazards of locks, and from the anomalies of sub-SERIALIZABLE isolation levels. Our approach builds on an incrementalized variant of leapfrog triejoin, a worst-case optimal algorithm for $\exists_1$ formulae, and on well-established techniques from programming languages: declarative languages, purely functional data structures, incremental computation, and fixpoint equations.

研究の動機と目的

  • 並列トランザクション処理におけるロックの性能ボトルneckと複雑さを解消すること。
  • ほとんどのトランザクションペアが顕著な読み書き衝突を持つ状況下でも、並列性を損なわず完全な可串性を達成すること。
  • トランザクションが逐次実行されたかのように動作するが、実際には真の並列実行が可能な、シンプルでユーザーに透明な並行制御モデルを提供すること。
  • 衝突時にトランザクションを中止して再実行する必要があるオピニオンスリー並行制御(OCC)の限界を乗り越え、効率的な修復を実現すること。
  • 効率的な信号伝搬と負荷分散を備えたクラスタ対応の修復回路を用いて、分散環境におけるトランザクション処理のスケーラビリティを向上させること。

提案手法

  • 各トランザクションは、バージョニングされた、完全に純粋関数型のデータベースブランチ上で隔離して実行され、ロックを完全に回避する。
  • 衝突検出は、トランザクションの結果に影響を与えるデータベース状態を追跡する感度信号(感度)を用いて実施する。
  • 修復は、完全な連言クエリの最悪ケース最適評価をサポートする最適化されたループフロッグトライジョインの変種を用いて、インクリメンタルに実行する。
  • 感度信号とデルタ信号は、ルールの依存関係グラフを介して伝搬され、トランザクション効果の効率的なインクリメンタルメンテナンスを可能にする。
  • トランザクションオペレータの2分木に基づく階層的修復回路が構築され、ドメイン分割に基づいてマシン間を跨ぐ信号ルーティングが行われる。
  • クラスタデプロイメントでは、信号はメッセージパッシングを介してマシン境界を越え、信号所有権とパフォーマンスヒューリスティクスに基づいてオペレータがマシンにスケジューリングされる。

実験結果

リサーチクエスチョン

  • RQ1高衝突率下でも、ロックや高コストの再実行を用いずに完全な可串性を達成できるか?
  • RQ2並列かつ分散環境下で、衝突検出と修復を効率的かつスケーラブルに実現できるか?
  • RQ3ループフロッグトライジョインのようなインクリメンタルクエリ評価技術を、効率的で修復に配慮したトランザクション処理に適応できるか?
  • RQ4並列性と衝突密度の増加に伴い、トランザクション修復がスケーリングするためのアーキテクチャパターンは何か?
  • RQ5正しさとパフォーマンスを維持したまま、クラスタ環境に修復メカニズムを拡張できるか?

主な発見

  • Transaction Repairは、すべてのトランザクションペアが顕著な読み書き衝突を持つ悪質なシナリオ(例:1つのトランザクションペアあたりの共通SKU数の期待値がα² = 100(α=10))でも、並列スループット向上を達成しており、ロックベースのシステムがスループット向上を示さない状況でも同様の性能を発揮する。
  • 本手法は、従来の行レベルロックや、高衝突負荷下で高い中止率を示し並列性に欠けるオピニオンスリー並行制御(OCC)を上回る性能を発揮する。
  • インクリメンタル化されたループフロッグトライジョインの使用により、修復コストがクエリ実行トレースのトレース編集距離に比例してスケーリングされ、効率的な衝突解決が可能になる。
  • クラスタデプロイメントでは、修復回路が動的負荷分散とマシン間の信号伝搬をサポートし、各マシンがデータベースの論理的部分域を担当する。
  • リモートデータにアクセスしても、感度信号とデルタのみを伝搬することで、不要なデータ転送を回避し、ネットワークオーバーヘッドを低減する。
  • プロトタイプでは、パフォーマンスボトルneckは修復メカニズム自体ではなく、メモリ割り当ての競合に起因しており、実世界でのスケーラビリティに強いポテンシャルを示している。

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

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

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

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