分散トランザクションでは、分散トランザクションの正常な動作を確保するために、通常、2 フェーズ プロトコルまたは 3 フェーズ プロトコルが使用されます。これは、X/Open によって定義された分散トランザクション標準のセットでもあります。
分散トランザクションとは、分散システム内の複数のノード間で実行されるトランザクション操作を指します。たとえば、分散システムでは、ユーザーが注文を行うときに、注文情報を作成し、同時に在庫を減らす必要があります。ただし、次の図に示すように、注文情報の作成と在庫の削減は、異なるサーバーおよび異なるデータベースに分散されます。 写真 この時点で、すべての操作が一緒にコミットされるか、一緒にロールバックされるように、分散トランザクションが介入する必要があります。 1. 2フェーズコミット2 フェーズ コミット (2PC) は、トランザクションをコミットまたはロールバックするときにすべての参加者が一貫した状態であることを保証する分散トランザクション プロトコルです。 2PC プロトコルは次の 2 つのフェーズで構成されます。
2PC プロトコルは分散トランザクションの原子性と一貫性を保証できますが、効率が低く、ブロッキングなどの問題が発生する可能性があります。したがって、実際のアプリケーションでは、代わりに 3PC (3 フェーズ コミット) や Paxos プロトコルなどの他の分散トランザクション プロトコルを使用できます。 2相コミットの問題2 フェーズ コミットにはいくつかの問題があります。
2. 3相コミット3 フェーズ コミット (3PC) は、2PC プロトコルで発生する可能性のあるブロッキング問題を解決するために、2PC プロトコルに追加のフェーズを追加します。 3PC プロトコルは 3 つのフェーズで構成されます。
2PC プロトコルと比較して、3PC プロトコルではプロトコルに CanCommit フェーズ (照会フェーズ) が追加され、参加者は CanCommit フェーズ中にブロックを引き起こす可能性のある問題を発見して解決できるようになります。このようにして、3PC プロトコルはコミットまたはロールバック トランザクションをより高速に実行し、不要な待機時間を削減できます。 2PC プロトコルと比較すると、3PC プロトコルには依然としてブロッキングの問題がある可能性があることに注意してください。 3. 2フェーズコミットと3フェーズコミット2PC と 3PC は、分散トランザクションでよく使用される 2 つのプロトコルです。 3PC は 2PC プロトコルの改良版と見ることができます。 2PC と比較して、次の 2 つの改善点があります。
つまり、2PC と比較すると、3PC ではタイムアウト メカニズムが導入されているため、ブロックされる可能性が低くなります。同時に、3PC は 2PC の準備フェーズを 2 つのステップに分割し、バッファ フェーズを追加して、最終送信フェーズの前に各参加ノードのステータスが一貫していることを保証します。 4. データの一貫性の問題と解決策3PC は同期ブロックの問題と単一点障害の問題を軽減できますが、データの一貫性の問題は依然として残ります (確率は非常に小さい)。データの一貫性の問題には、Paxos アルゴリズムや柔軟なトランザクション メカニズムなど、さまざまな解決策があります。 4.1 パクソスアルゴリズムPaxos アルゴリズムは、メッセージ パッシングに基づく分散コンセンサス アルゴリズムであり、2013 年にチューリング賞を受賞しました。ACM AM チューリング賞は、コンピューター サイエンスの分野で最も名誉ある賞の 1 つです。この賞は、1966 年に米国計算機協会 (ACM) によって設立され、コンピュータ サイエンスの分野に顕著な貢献をした個人またはグループを表彰するために毎年授与されています。簡単に言えば、Paxos アルゴリズムは、分散システムでデータの一貫性とコンセンサスを実現し、分散システム内の異なるノード間のデータの同期と一貫性を確保するために使用される分散コンセンサス アルゴリズムです。 Paxos アルゴリズムは、提案者、受容者、学習者の 3 つの役割で構成されます。ノードが提案を開始する必要がある場合、そのノードは他のノードに提案を送信します。受信者は提案を受け取り、処理します。提案を拒否することも、受け入れることもできます。十分な数のノードが提案を受け入れた場合、提案は確定され、すべての学習者に通知され、最終的にすべてのノードが合意に達します。 Paxos アルゴリズムは単純に見えますが、実際には非常に複雑です。次のような Paxos アルゴリズムを使用する製品も多数あります。
4.2 柔軟なトランザクション柔軟なトランザクション メカニズム: 一定期間内に異なるノード上のデータの不整合を許可するが、最終的な一貫性を要求するメカニズム。柔軟なトランザクションには、TCC 補償トランザクション、信頼性の高いメッセージ トランザクション (MQ トランザクション) などが含まれます。 まとめ分散トランザクションでは、分散トランザクションの正常な実行を保証するために、通常、2 フェーズまたは 3 フェーズのコミット プロトコルが使用されます。 2 フェーズ プロトコルには準備フェーズとコミット フェーズが含まれますが、同期のブロック、単一点障害、データの一貫性などの問題があります。 3 フェーズ プロトコルは、2 フェーズ プロトコルの改良版と見ることができます。 2 つのフェーズのうち準備フェーズを 2 つに分割し、送信フェーズの前に各参加ノードのステータスが一貫していることを確認するための照会フェーズを追加します。同時に、同期ブロッキング問題の発生確率を低減するためのタイムアウト メカニズムも導入されています。ただし、2PC と 3PC の両方にデータの一貫性の問題があります。現時点では、Paxos アルゴリズムや柔軟なトランザクション メカニズムなどのソリューションを使用して、トランザクションの一貫性の問題を解決できます。 参考文献と謝辞https://pdai.tech/md/arch/arch-z-transection.html |
<<: K8s のアップグレードにより Didi が 12 時間停止したのですか?
[[437680]] [51CTO.com クイック翻訳]パブリッククラウドを信頼できますか?答えは...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますこうしたユ...
多くの人が hostkey を知っているはずです。彼らのマシンは非常に安定しており、アフターサービス...
ウェブサイトの最適化とは、ウェブサイトの機能、ウェブサイトの構造、ウェブページのレイアウト、ウェブサ...
生産コスト、人件費、運営コストはすべて増加しています。このような状況では、eコマース企業にはコストを...
広告はユーザーの視点からのコミュニケーションであり、マーケティングは企業の視点からのマネジメントです...
ウェブサイトの一形態として、独立系ブログには独自の利点があります。操作が簡単、インタラクティブ性が強...
OpenStack コミュニティは Wallaby の 23 番目のバージョンを正式にリリースしまし...
マイクロサービスを使用することで、グローバル ID の問題など、もともと単純だった多くの問題が複雑に...
ホストネットワークが新しく開始されました。スペースやサーバーを購入する際は、安全で保証されたホストネ...
ウェブサイトの SEO を行う際、ランキングやコンテンツ、外部リンク、ウェブサイト自体がないウェブサ...
A5 Webmaster Networkは、毎年恒例のインターネットカンファレンスが9月11日に北京...
小人武科技有限公司傘下の加速クラウドプラットフォームは、利益よりも量だけを追求し、四川省徳陽データセ...
私のサイトは含まれなくなりました。以前は 1 日に N 回含まれていましたが、前回は理由もなく権限が...
中小企業、特にスタートアップ企業のリソースは非常に限られているため、資金と人材の配置と使用を慎重に計...