4つの主要な分散トランザクションソリューションの詳細な説明

4つの主要な分散トランザクションソリューションの詳細な説明

分散トランザクションは分散システムでよく見られ、大企業でも頻繁に調査されています。以下では、4つの主要な主流の分散トランザクションソリューションについて説明します。@mikechen

分散トランザクション

分散トランザクションとは、複数の参加者(通常は異なるコンピュータ ノードまたはサービス)が関与するトランザクション操作のことであり、複数のノードにわたって実行する必要があります。

次の図に示すように:

写真

分散トランザクションでは、データの一貫性と信頼性を維持するために、関連するすべての操作が正常に実行されるか、ロールバックされることを確認する必要があります。

分散トランザクションソリューション

一般的な分散トランザクション ソリューションには、主に次の 4 つが含まれます。

2 フェーズ コミット プロトコル

2 フェーズ コミット (2PC とも呼ばれます) は、準備と送信の 2 つのフェーズで構成されます。

次の図に示すように:

写真

1. 準備

コーディネーターはすべての参加者に準備要求を送信し、参加者はトランザクションの準備を実行し、準備完了の通知をコーディネーターに送信します。

2. 提出フェーズ

すべての参加者の準備が整っている場合、コーディネーターはすべての参加者にコミット要求を送信し、参加者はトランザクションのコミットを実行します。

すべての参加者がトランザクションを正常にコミットすると、トランザクションは正常に完了します。

そうでない場合、いずれかの参加者が失敗したかコミットできない場合、一貫性を維持するためにすべての参加者がトランザクションをロールバックする必要があります。

2PC の利点は、シンプルで理解しやすく、分散システムにおけるトランザクションの原子性と一貫性を理想的に保証できることです。

2 段階アプローチにはいくつかの欠点があります。

1. 詰まりの問題

2PC の準備フェーズでは、コーディネーターはすべての参加者からの応答を待つ必要があるため、システム全体がブロックされる可能性があります。

2. 単一障害点

2PC では、コーディネーターはすべての参加者の操作を調整する責任を負う単一のポイントです。

コーディネーターが失敗すると、参加者のほとんどが準備ができていても、トランザクション全体が完了しない可能性があります。この単一障害点はシステムの可用性と信頼性に影響を及ぼします。

3. データの不整合

2PC は、ネットワーク パーティションやコーディネータと参加者間の通信障害など、すべての障害シナリオを処理できるわけではありません。

この場合、一部の参加者がトランザクションを送信した一方で、他の参加者が送信指示を受け取っていないというデータの不整合が発生し、システムが混乱した状態になる可能性があります。

3相コミットプロトコル

3PC と呼ばれる 3 フェーズ コミット プロトコルは、2PC の改良版です。

次の図に示すように:

写真

3PC の主なアイデアは、アトミック性と一貫性を維持しながら、2PC のブロッキング問題を軽減するために事前コミット フェーズを導入することです。

3PC は主に 3 つの段階に分かれています。

1. 提出前段階

コーディネーターは参加者にトランザクションを送信できるかどうかを尋ね、応答を待ちます。参加者全員が同意すれば、次の段階に進みます。

2. 提出フェーズ

コーディネータはすべての参加者にコミット要求を送信し、トランザクションをコミットするように要求し、いずれかの参加者がコミットできない場合はロールバックを実行します。

3. 確認段階

コーディネーターは、トランザクションがコミットされたことをすべての参加者に通知する確認メッセージを送信します。このステージは、2PC のブロッキング問題を解決するために使用されます。

2PC に対する 3PC の利点は、最初のフェーズで「照会」フェーズが導入され、2PC の直接準備フェーズで発生する可能性のある長いブロックの問題を回避できることです。

2 段階と 3 段階の比較を次の図に示します。

写真

報酬業務

TCC (Try-Confirm-Cancel) は、分散システムで一貫した操作を実現するために使用される補償的なトランザクション処理モードです。

次の図に示すように:

写真

TCC モードは、試行、確認、キャンセルの 3 つの操作フェーズを通じてトランザクションの一貫性を保証します。

1.試してみる

試行フェーズでは、システムはトランザクションが正常に実行されることを確認するために、トランザクション操作に必要なすべてのチェックと準備を実行しようとします。

これには、リソースの可用性の確認、必要なリソースのロックなどが含まれます。すべてのチェックに合格すると、システムは試行されたすべての操作を記録しますが、トランザクションは実際には実行されません。

2. 確認

確認フェーズでは、システムはトランザクションを実行し、以前に試行された操作を確認します。

トランザクション操作が正常に実行された場合、システムはトランザクションを確認してコミットします。この段階で、システムはトランザクションの結果を永続化し、トランザクションの最終的な実行を保証します。

3. キャンセル

試用または確認フェーズ中にエラーまたは異常な状況が発生した場合、システムはキャンセルフェーズに入ります。

この段階では、システムは逆の操作を実行し、前の試行フェーズで実行された操作をキャンセルします。これにより、システム状態がトランザクション開始前の状態にロールバックされ、データの一貫性が維持されます。

TCC モードでは、開発者は各段階で独自のビジネス ロジックと補正操作を定義して、さまざまなビジネス ニーズに適応できます。

ただし、TCC モードでは、開発者が各段階でビジネス ロジックと補正操作を明示的に定義する必要があり、システムの複雑さと開発コストが増加します。各ステージのロジックを設計および維持し、ステージ間の一貫性を確保する必要があります。

最終的な一貫性

最終的な一貫性は、分散システムにおける一貫性モデルであり、データのレプリカが一定期間不整合な状態になることを許可しますが、最終的には一貫した状態になります。

次の図に示すように:

写真

結果整合性モデルでは、ノード間のデータ同期は通常、メッセージの受け渡しを通じて実現されます。

ノードのデータが変更されると、他のノードに非同期的にメッセージが送信されます。メッセージの送信は非同期であるため、ノード間のデータ同期に一定の遅延が生じる可能性があります。

したがって、最終的な一貫性モデルでは、ノード間のデータ コピーは一定期間不整合になる可能性がありますが、最終的には一貫した状態に収束します。

<<:  Dockerボリュームについて知っておくべきこと

>>:  クラウドインフラストラクチャの重要な役割の拡大

推薦する

実践的な経験に基づいたウェブサイトの最適化に関する簡単な講演

ウェブサイト最適化の概要(1)ウェブサイトの最適化は検索エンジンに基づいて行われます。今日でも、ウェ...

過去数か月間の職務経験とスキルを共有してください

当初、私のブログは「荊州SEO」というキーワードに関するものでした。数か月にわたる探索、観察、学習を...

UCloud ロンドンノードがオンラインになり、世界金融センターのクラウドサービスの最高峰を獲得

英国ロンドンは、UCloudのヨーロッパにおける3番目のパブリッククラウドノードとして9月3日に正式...

Suiningのローカル求人ウェブサイトでは、テレマーケティングを簡単にマスターする方法を教えています

テレマーケティングは、1980 年代に米国で登場した比較的新しい概念です。消費者志向の市場の形成と電...

Rancher アプリケーション ストアに基づく K8s サービスのワンクリック アップグレード ソリューションの紹介

著者:郭 洋勇、所属:成都ビジネスサポートセンター、スマートホームオペレーションセンターラボガイドク...

李佳奇は魏牙のトラフィックを「収穫」できないのか?

李佳琦の「美独り占め」23日目。 「手の速さを練習しましょう。私たちの家族では、手の速さを練習しなけ...

インターネットセレブブランドの人気が高まる中、KOLだけでは不十分なのでしょうか?

本当に有名なブランドは、ずっと前から「インターネットセレブ」という言葉を捨て去っています。旅行に行く...

Baidu の不正行為防止アップデート後に高品質な記事を作成する方法

6月22日と6月28日のBaiduの不正行為対策の大規模なアップデートは、多くのウェブマスターにとっ...

ザッカーバーグ氏がウォルマート幹部を訪問、ウォルマートとのより深い協力関係を期待

ロイター通信によると、北京時間7月20日、フェイスブックのマーク・ザッカーバーグ最高経営責任者(CE...

百度の混乱に直面して、ウェブマスターはウェブサイトの構築に集中する必要がある

スパムニュースの取り締まりから628 Big Kサイト、そして822の発表まで、Baiduは今年一度...

継続的なイノベーションについて話すことは、ウェブサイトの発展と成長の重要な要素です

ウェブマスターが議論するトピックの中で最も頻繁に登場する言葉は、ウェブサイトのプロモーションです。ウ...

企業がクラウドコンピューティングを導入して投資収益率を向上させる方法

調査会社ガートナーは、世界のパブリッククラウドサービス市場は2019年に予測された2,140億ドルか...

Webmaster.com の日刊レポート: 共同購入サイトの 60% が廃止され、Facebook ユーザー数も減少

1. 福建省通信管理局は226の違法・不法ウェブサイトを閉鎖し、78,900件の登録情報を抹消した。...

ftpit-2 USD/512 MB RAM/10 GB SSD/2 TB トラフィック/シカゴ

FtpIt は 1 月に設立され、これまでほぼ 1 年が経過しました。ニューヨーク、シカゴ、ロサンゼ...

Salesfunnel は、数百 TB のデータを「移動」する際に、サービスを中断することなく、どのようにしてクラウド間の移行を実現するのでしょうか?

国内のSaaS業界は急速な発展期を迎えています。 SaaS ベンダーが市場機会を獲得するには、製品の...