分散の基礎、2 フェーズ コミットとは何ですか?

分散の基礎、2 フェーズ コミットとは何ですか?

前の記事「分散トランザクション、こんな遊び方もできる?」多くの議論を引き起こした。分散したものについて語る新しいシリーズを始める予定です。今日は、比較的わかりやすい「2フェーズコミット」から始めます。

ナレーション: 私は Paxos をわかりやすい言葉で説明することを目標にしました。

[[247750]]

分散トランザクションはなぜ難しいのでしょうか?

分散環境では、各ノードは自身の操作の成功または失敗を知ることができますが、他のノードの操作の成功または失敗を知ることはできません。分散トランザクションが複数のノードにまたがる場合、トランザクションの原子性と一貫性を維持することは非常に困難です。

2 フェーズコミットとは何ですか?

2 フェーズ コミット (2PC) は、すべてのノードがトランザクションをコミットし、分散環境で一貫性を維持できるようにするアルゴリズムです。

参加者全員の操作結果を統合し、操作結果を実際にコミットするかロールバックするかを指示するコーディネータを導入します。

なぜ 2 フェーズ コミットと呼ばれるのでしょうか?

名前が示すように、2PC は 2 つのフェーズに分かれています。

  • 投票フェーズ: 参加者はコーディネーターに通知し、コーディネーターはフィードバックを提供します。

ナレーション: これは、単一マシン トランザクションの trx.exec() として理解できます。

  • コミット フェーズ: 参加者からのフィードバックを受け取った後、コーディネーターは参加者に通知を送信し、フィードバックに基づいてコミットするかロールバックするかを決定します。

ナレーション: これは、単一マシン トランザクションの trx.commit() または trx.rollback() として理解できます。

例えば:

A、B、C、D の 4 人が会議を開催し、会議の時間を決定する必要があります。 A がコーディネーターであり、B、C、D が参加者であると仮定します。

投票フェーズ

(1)AはB、C、Dに電子メールを送り、明日10時の会議を通知し、都合がつくかどうかを尋ねる。

(2)Bは時間はあると答えた。

(3)Cは時間はあると答えた。

(4)ディンは長い間返事をしない。この時点で、A、B、C はすべてこのトランザクションに対してブロックされており、アルゴリズムは続行できません。

提出フェーズ

(1)コーディネーターAは収集した結果をB、C、Dに通知する。

ナレーション: この場合、いつ通知するか、フィードバックの結果がどうなるかは、Ding の時間と決定によって決まります。

  • Ding が時間があると返答した場合、コミットを通知します。
  • Ding が時間がない旨を返答した場合、通知はロールバックされます。

(2)乙は通知を受け取り、コーディネーターに通知を承認する。

(3)Cは通知を受け取り、コーディネーターに確認する。

(4)ディンは通知を受け取り、コーディネーターに確認の応答をする。

ナレーション: A がすべての ACK を受信しない場合、分散トランザクションは完了せず、次の投票ラウンドは実行されません。

2 フェーズコミットの欠点は何ですか?

2PC の実行中は、すべてのノードがブロック状態になり、ノードが保持するすべてのリソース (データベース データ、ローカル ファイルなど) がブロック状態になります。

典型的な状況は次のとおりです。

  • 参加者がメッセージに返信するまでは、すべての参加者とコーディネーターがブロックされます。
  • コーディネーターがメッセージを送信するまで、すべての参加者はブロックされます。

さらに、コーディネーターまたは参加者がクラッシュした場合、アルゴリズム全体が完全にブロックされた状態になるのを回避するために、アルゴリズムを前進させるためのタイムアウト メカニズムが必要になることがよくあります。

一般的に、2PC は比較的保守的で非効率的なアルゴリズムであり、分散トランザクションを実行するのは非常に困難です。

【この記事は51CTOコラムニスト「58 Shen Jian」によるオリジナル記事です。転載については原著者にお問い合わせください。

この著者の他の記事を読むにはここをクリックしてください

<<:  マイクロソフトのエンタープライズ クラウド サービスが中国に集結、クラウド イノベーションに無限の可能性をもたらす

>>:  IBM は Redhat を 334 億ドルで買収します。これにより、クラウドの状況は完全に変わり、世界一のハイブリッド クラウド プロバイダーになります。

推薦する

初心者SEO担当者が同業者を選ぶ際に考慮すべき7つの要素

みなさんこんにちは、私は小思です。Baidu はここ 2 年間アルゴリズムを変更し続けているため、一...

SEO担当者が競合他社のウェブサイトから最適化を学ぶ方法

初心者でも経験豊富な SEO 担当者でも、最適化のボトルネックに遭遇し、主に内部最適化分析、キーワー...

K8s 使用率が 72% に達する、CNCF 中国クラウドネイティブ調査が発表

最近、Cloud Native Computing Foundation (CNCF) が第 3 回...

Baidu ImagesはGoogle Imagesに似せるために大幅に再設計されました

Baidu Fans (Baiduer.com.cn) によると、Baidu Pictures は ...

クラウド アプリケーション移行の問題を回避する 4 つの解決策

企業が重要なビジネス アプリケーションをクラウドで実行することに決めたら、別のベンダーに切り替えるこ...

実際のケーススタディでは、ウェブサイトに古いドメイン名を使用することによる SEO の利点が示されています。

SEO を研究した人の多くは、古いドメイン名を使用して Web サイトを構築すると、半分の労力で 2...

パブリッククラウド市場は2026年までに1兆ドルを超えると予想

Forrester の調査によると、世界のパブリック クラウド市場は 2026 年までに 1 兆ドル...

羅伯家園事件は、ウェブサイトナビゲーションのブラックチェーンを明らかにした:海賊版ソフトウェアとの共謀

羅博家園事件はウェブサイトナビゲーションのブラックチェーンを明らかにしたナビゲーションウェブサイトは...

歌手がSogouとBaiduの句読点検索を変更

検索エンジンに詳しい人なら誰でも、検索時にキーワードとして中国語、英語、数字を組み合わせたり、1 つ...

ドメイン名の価格が急上昇中。6桁の数字の新時代が到来するかもしれません。

eName.cnは4月22日、デジタルドメイン名の取引が今年急増し、今月は多様な6桁のドメイン名が「...

新しいウェブサイトを計画するための 7 つのステップ: 公開したその日にインデックス登録とランキング付けを行う

何をするにも計画を立てる必要があります。そうしないと、時間と労力を無駄にし、2 倍の労力で半分の結果...

28 の失われた SEO の秘密

21 世紀には、インターネットの普及により、その応用範囲は 90 パーセント以上の産業に広がりました...

タオバオの顧客運営がコンバージョン率の向上に注力すべき点について簡単に分析

タオバオは参入障壁が低いため、中小のウェブマスターに人気の運営モードとなっています。しかし、タオバオ...

データ分析をクラウドに導入する方法

2017年、エコノミスト誌は「世界で最も価値のある資源はもはや石油ではなくデータだ」という記事を掲載...

饅頭が引き起こすマーケティング手法を考える

先週の土曜日、私は饅頭を買いに出かけ、友達の家の前を通りかかりました。私は店に入ってしばらく座って、...