分散トランザクションでは、分散トランザクションの正常な動作を確保するために、通常、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 時間停止したのですか?
コンテンツの再パッケージ化は、最も強力なコンテンツ マーケティング戦略の 1 つです。この用語はあま...
9月4日、Renren Inc.の会長兼CEOである陳一洲氏は本日、「中国モバイルインターネット投資...
現在の観点から見ると、商品の販売やブランドの宣伝という点では、インターネットの有名人のキャスターの誇...
Q: ハミングバードアルゴリズムを使用した後、どのように SEO を実行できるかを紹介していただけま...
最近、検索業界で最もエキサイティングなことは、UCがモバイル検索神馬をリリースしたことです。4年間蓄...
近年、大手インターネット企業から最も頻繁に伝えられる言葉は「削減と縮小」であり、急成長を遂げているク...
最近、「デジタル変革と未来のインテリジェント創造」をテーマにしたIT中国市場年次会議において、中国の...
月給5,000~50,000のこれらのプロジェクトはあなたの将来です最近、多くのウェブサイトが百度検...
Hostcircle(2011年〜)は、オランダのデータセンター事業を主に運営するオランダの企業で、...
国内需要市場の継続的な調整、海外市場環境のマイナス影響、国内インターネット環境の継続的な成熟と認知に...
経験豊富なマイクロサービス システム アーキテクトとして、RabbitMQ と Kafka のどちら...
[[409438]]画像はBaotu.comよりメッセージ キューは主に、アプリケーションの結合、非...
フランスの VPS の推奨事項、フランスの VPS のレンタル、どのフランスの VPS が最適ですか...
[51CTO.com からのオリジナル記事] 現在、クラウド コンピューティング市場における競争は「...
Racknerd は今年のイースター プロモーションを発表しました: 米国 VPS、選択可能な 6 ...