分散トランザクション--- CAP理論

リソースから、この記事のセクション!オリジナルの半分

アウトライン

       CAPは、理論を導入し、単純に3決定的2の存在を証明します。

CAP理論

       1998年、カリフォルニア大学のコンピュータ科学者は、エリック・ブリュワーは、分散システムは、3つの指標を持って提案しました。それらは次の通りです:

    • 一貫性(一貫性)
    • アベイラビリティ(可用性)
    • 分割耐性(パーティションフォールトトレランス)

       これらの3つの要素は、同時に満足できないでしょう。次の図は、2つの機能が、今分散トランザクションの多くの実装を持って示しています。

CAP理論

     ここでは、我々が最初に簡単な分散システムを見て、これらの三つの要素を紹介します。

 

CAP1

     クライアントは、2台のサーバーは、この変数のVOを維持しながら、クライアントが読み取りおよびサーバに書き込む機能を開始することができ、二つのサーバ、G1、およびG2に接続されています。例えば読み

cap_write

     また、書きました:

CAP_read

      三の原則を確認してみましょう。

フォールトトレラントパーティション

       次のようにパーティションのフォールトトレランス、特定の意味は以下のとおりです。

ネットワークは、あるノードから別のノードに送信された任意の数のメッセージを失うことが許可されます

      グエン先生の記事は、このような例を挙げました。

ほとんどの分散システムは、複数のサブネットワークに分散されています。各サブネットワークは、ゾーン(パーティション)と呼ばれています。フォールト・トレラント・パーティションの意味、範囲の通信が失敗することがあります。例えば、2つの領域である中国では、サーバー、米国内の別のサーバーには、それらの間で通信を行うことができませんでした。

      このようなフォールトトレラントパーティションのシーン。

p

一貫性

         一貫性は、ユーザー、メインの図書館サービスは、ライブラリから同期の複数の書き込みをされ、その後、ライブラリから同期のレプリケーション・プロセスへのアクセスがあり、多くの場合、我々は、MySQLは、分離を読み書き知って、よく理解されています数値矛盾に書かれていたライブラリーから、その後、保証の一貫性はありません。ここでは、状況の一貫性を確保することです。 

cap_a

可用性

          限り、ユーザの要求が受信されると、サーバーが応答を与えられなければなりません。G1またはG2は、読み出し動作を開始するためにユーザが選択することができます。限り、要求が受信されると、それは最終的にそれがV0またはV1で、ユーザーに通知する必要があり、または可用性を満たしていないサーバー、どんなに。

証明します

先生論理証明ルアンYifengの記事からの抜粋、参照元の記事を参照してください。

      一貫性と可用性が、なぜ同時に設定することはできませんか?通信障害(フォールトトレラントパーティションが表示されます)があるかもしれないので答えは、簡単です。

      一貫性のG2を確保する場合、G1は、読み出しおよび書き込み動作の書き込みロックG2上になければなりません。データのみの同期後、再オープンをするために読み書きします。ロック時には、G2は、読み取りおよび書き込みができない、何の可用性はありませんではありません。

      あなたはG2の可用性を確保した場合、それがバインドされたG2をロックすることができないので、一貫性が確立されていません。

      要約すると、G2の一貫性と可用性を同時に行うことはできません。あなただけのターゲット・システム設計を選択することができます。一貫性の追求場合は、我々はすべてのノードの可用性を保証するものではありません。すべてのノードの可用性を追求するならば、それは一貫性を行うことはできません。

 

多くの場合、

犠牲の一貫性

        可用性とフォールトトレランスは、CDNにページを公開して、複数のサーバーが、このページのコピーを持って、パーティションを禁じます。その後、エラーを発見し、各サーバが唯一再び更新することができ、ページを更新する必要があります。一般に、ページは、一貫性に重点を置いて更新されません。時間の短い期間では、一部のユーザーは、問題が特に大きくはない、一部のユーザーは新しいバージョンを取得し、年齢を重ねます。もちろん、誰もが最終的に新しいバージョンが表示されます。だから、この機会に高い一貫性の可用性です。

使いやすさを犠牲にします

       我々はまた、一貫性を維持するために、データ要件が正確シーンでなければならない、あなたはMonoDBとRedisのは、このように一貫性とパーティションフォールトトレランスを確保し、使いやすさを犠牲にしている見ることができることを知ることができる上記の証拠から予約済みパーティションの一貫性と耐障害性、 。

可用性犠牲パーティション

        パーティションのフォールトトレランス、より大きな一貫性と使いやすさをあきらめ、実際には、それは伝統的なスタンドアロンのデータベースを選択することです。

概要

      上記の研究を通して、私たちは、CAPの理論は、分散トランザクションが2つのだけの要素があるほとんどのケースで保証することができます知っていることを知っている、しかし、ネットワークの遅延やその他の理由により、フォールトトレラントパーティションはそう、避けることができない客観的事実をあります人々は、一貫性と可用性に向けた多くの努力を払います。

参考資料

おすすめ

転載: www.cnblogs.com/Benjious/p/11266874.html