Skip to main content
QUICK REVIEW

[論文レビュー] Coordination-Avoiding Database Systems.

Peter Bailis, Alan Fekete|arXiv (Cornell University)|Feb 10, 2014
Distributed systems and fault tolerance参考文献 66被引用数 13
ひとこと要約

本論文は、アプリケーションレベルの整合性を保ちながら、データベースシステムにおける協調処理なし実行を可能にする形式的条件として、不変量の連鎖性を導入する。アプリケーション不変量を分析することで、協調処理が必要な場合にのみそれを回避し、線形拡張性を達成する。プロトタイプでは、100台のサーバー上で協調処理のオーバーヘッドなしに1秒間に100万件を超えるTPC-C New-Orderトランザクションを処理することが実証された。

ABSTRACT

Concurrent access to shared state results in a fundamental trade-off between coordination—surfacing in the form of reduced availabil-ity, decreased scalability, and increased latency—and application-level consistency, or semantic guarantees for end users. Traditional mechanisms such as serializable transactions are sufficient to en-sure application-level consistency but require synchronous coor-dination, while weaker mechanisms may sacrifice consistency for less coordination and greater scalability. In this paper, we identify a necessary and sufficient condition for achieving coordination-free execution without violating application-level consistency: invari-ant confluence. By explicitly considering application-level invari-ants, invariant confluence analysis allows databases to coordinate between operations only when anomalies that might violate invari-ants are possible. This provides a formal basis for coordination-avoiding database systems, which coordinate only when it is nec-essary to do so. We demonstrate the utility of invariant confluence analysis on a subset of SQL and via a coordination-avoiding proof-of-concept database prototype that scales linearly to over a million TPC-C New-Order transactions per second on 100 servers. 1.

研究の動機と目的

  • 並列データベースシステムにおける協調処理のオーバーヘッドとアプリケーションレベルの整合性の間の根本的トレードオフを解決すること。
  • すべての状況で協調処理を必要としないが、整合性を保証する形式的条件を特定すること。
  • 不要な協調処理を最小限に抑えることで、データベースシステムが線形に拡張可能になるようにすること。
  • アプリケーションレベルの不変量を用いた協調処理回避システムの実用的基盤を提供すること。

提案手法

  • 協調処理なし実行のための必要十分条件として、不変量の連鎖性を提唱する。
  • アプリケーションレベルの不変量を分析し、協調処理を安全に回避できる状況を特定する。
  • 実行レベルで不変量の連鎖性を強制する概念実証用データベースプロトタイプを設計する。
  • 不変量の連鎖性分析を用いて、トランザクションのスケジューリングと実行意思決定を支援する。
  • 実行時メカニズムを採用し、協調処理を許可する前に潜在的な不変量違反をチェックする。
  • 不変量の連鎖性をSQL操作のサブセットに適用し、協調処理なし実行下での正しさを保証する。

実験結果

リサーチクエスチョン

  • RQ1どの形式的条件が、アプリケーションレベルの整合性を損なわずに協調処理を回避可能であることを保証するか?
  • RQ2アプリケーション不変量をどのように活用すれば、協調処理が実際に必要となる状況を特定できるか?
  • RQ3協調処理回避型データベースシステムは、整合性を維持したまま線形拡張性を達成できるか?
  • RQ4実際の環境において、不変量の連鎖性分析の性能オーバーヘッドはどの程度か?
  • RQ5不変量の連鎖性は、実世界のワークロードにおいて従来の可串的隔離と比べてどのように差がつくか?

主な発見

  • 提示された不変量の連鎖性条件は、アプリケーションレベルの整合性を損なわずに協調処理なし実行を可能にするために、必要かつ十分である。
  • 概念実証プロトタイプは、100台のサーバー上で協調処理のオーバーヘッドなしに1秒間に100万件を超えるTPC-C New-Orderトランザクションを処理する。
  • 不変量の連鎖性分析を活用することで、大多数の操作で協調処理を回避している。
  • 協調処理に起因するボトルネックを顕著に低減しながら、完全なアプリケーションレベルの整合性を維持している。
  • 分散ノード間で線形拡張性を達成できており、高スルーレート環境下で協調処理を多用する代替手法を上回る性能を発揮している。
  • 不変量の連鎖性分析は、協調処理を必要とする異常を効果的に特定・防止している。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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