Skip to main content
QUICK REVIEW

[論文レビュー] Building on Quicksand

Pat Helland, David G. Campbell|ArXiv.org|Sep 9, 2009
Distributed systems and fault tolerance参考文献 14被引用数 36
ひとこと要約

この論文は、大規模なコンponent障害に直面しても最終的整合性と確率的保証を受容することで、高可用性な分散システムを構築するモデルを提示する。プライマリシステムの承認とバックアップ同期を分離することで、一時的な整合性の欠如を伴いながらも低遅延応答性を実現し、アプリケーションが恒等的演算と状態再統合を通じて最終的整合性を処理する必要がある。

ABSTRACT

Reliable systems have always been built out of unreliable components. Early on, the reliable components were small such as mirrored disks or ECC (Error Correcting Codes) in core memory. These systems were designed such that failures of these small components were transparent to the application. Later, the size of the unreliable components grew larger and semantic challenges crept into the application when failures occurred. As the granularity of the unreliable component grows, the latency to communicate with a backup becomes unpalatable. This leads to a more relaxed model for fault tolerance. The primary system will acknowledge the work request and its actions without waiting to ensure that the backup is notified of the work. This improves the responsiveness of the system. There are two implications of asynchronous state capture: 1) Everything promised by the primary is probabilistic. There is always a chance that an untimely failure shortly after the promise results in a backup proceeding without knowledge of the commitment. Hence, nothing is guaranteed! 2) Applications must ensure eventual consistency. Since work may be stuck in the primary after a failure and reappear later, the processing order for work cannot be guaranteed. Platform designers are struggling to make this easier for their applications. Emerging patterns of eventual consistency and probabilistic execution may soon yield a way for applications to express requirements for a "looser" form of consistency while providing availability in the face of ever larger failures. This paper recounts portions of the evolution of these trends, attempts to show the patterns that span these changes, and talks about future directions as we continue to "build on quicksand".

研究の動機と目的

  • 大規模分散システムにおける同期的バックアップ通信が引き起こすシステム遅延の増大という課題に対処すること。
  • 現代の分散システムにおける故障耐性のための代替モデルとして、強力整合性から最終的整合性への移行を提案すること。
  • プライマリシステムがバックアップレプリカの確認を待たずにリクエストを承認することにより、システムの可用性と応答性を向上させること。
  • プラットフォーム設計者およびアプリケーション開発者が、緩い整合性要件を表現および管理するのを支援すること。
  • 信頼性の低い環境における確率的実行および状態管理のための新たなパターンを特定および形式化すること。

提案手法

  • プライマリがバックアップレプリケーションの保証を確認する前にリクエストを承認する非同期状態キャプチャモデルを導入する。
  • 確率的保証に依存する:バックアップが通知されていなければ、プライマリが提示した約束が障害後に生存するとは限らない。
  • 再順序化や重複を含め、一時的な整合性欠如に対処するため、恒等的演算と状態再統合を採用する。
  • 約束がなされた直後に障害が発生することを想定し、そのような障害がまれであると仮定してシステムを設計する。
  • 同期的調整に依存するのではなく、アプリケーションレベルの論理によって不整合を検出し、是正する。
  • 設計原則を通じて、バージョンベクトルや衝突なしレプリカデータ型(CRDTs)といったパターンを暗黙的に活用する。

実験結果

リサーチクエスチョン

  • RQ1同期的バックアップ通信が許容できない遅延を引き起こす場合、システムの応答性はどのように向上させられるか?
  • RQ2分散システムにおいて、リクエスト承認とバックアップレプリケーションを分離することの意味は何か?
  • RQ3確率的保証と障害後のデータ損失の可能性を考慮して、アプリケーションはどのように正しさと整合性を確保できるか?
  • RQ4スケールした環境で、本質的に信頼性の低いコンponents上に信頼性のあるシステムを構築するためのアーキテクチャパターンは何か?
  • RQ5プラットフォームは、開発者が最終的整合性を管理可能で予測可能なものとして扱える抽象化をどのように提供できるか?

主な発見

  • 非同期状態キャプチャは、バックアップ確認の待機時間を排除することで、システムの応答性を著しく向上させる。
  • このモデルは確率的保証を導入する:約束は完全に保証されないが、失敗確率は低く、管理可能である。
  • アプリケーションは最終的整合性を処理するよう設計され、恒等的演算と障害後の状態再統合が不可欠である。
  • 強力整合性から最終的整合性への移行により、大規模分散システムにおける可用性とスケーラビリティが向上する。
  • 恒等的性や衝突解決といった新たなパターンは、信頼性の低いコンponents上に信頼性のあるシステムを構築する上で不可欠である。
  • 本論文は、パラダイムシフトを特定している:システムは「砂地」――不安定な基盤――を設計上前提とすべきであり、偶然ではなく。

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

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

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

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