分散の基礎、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 億ドルで買収します。これにより、クラウドの状況は完全に変わり、世界一のハイブリッド クラウド プロバイダーになります。

推薦する

ウェブサイト運営によりユーザーの信頼が向上

古来より、誠実と清廉は中華民族の伝統的な美徳です。「誠実」はビジネスを行うための基本条件であるだけで...

雲西がデジタルミドルプラットフォーム3.0をリリース、内部ミドルプラットフォームの運用能力を突破

従来の企業はデータ サイロに直面する必要があります。店舗数や会員数が増えるにつれ、顧客管理の課題を技...

edgenat: 20% オフ、月額 72 元、香港 cn2 VPS、KVM/6G メモリ/6 コア/50gSSD/5M 帯域幅、無制限トラフィック、「評価データ」添付

edgnatは国内企業で、2017年に設立、運営されており、APNICのメンバーです。韓国のソウルデ...

インターネット製品デザイン:写真の切り抜きのヒント:「Dianjiu」で半分の労力で写真を切る

ユーザーが目にする製品インターフェースは、デザイナーが多大な労力をかけて作成したレンダリングではなく...

6月の百度ビッグデータから見るウェブサイトのユーザーエクスペリエンスの重要性

ユーザー エクスペリエンスは、SEO 担当者の間で常に話題になっています。それが Web サイトにど...

Kubernetesを再設計すると

最近、この分野の専門家である Vallery Lancey 氏と Kubernetes について話し...

IEは依然として市場シェア56.6%でトップだが、Chromeは最も急成長している。

【捜狐ITニュース】北京時間8月2日、海外メディアの報道によると、市場調査機関Net Applica...

インターネットの助けを借りて、オンラインマーケティングのプロセスでセルフマーケティングを実現するにはどうすればよいでしょうか?

マーケティングに詳しい友人なら、セルフマーケティングについてある程度聞いたことがあるはずです。しかし...

新浪微博の広告収入が最初のコマーシャルシーズンで1000万ドルを突破

Sina Weibo の商業化が始まる (TechWeb)新浪微博の商業化は予定より1四半期早い成果...

Python Baiduランキング一括クエリツール【7月17日改良版】

以前にも同じ機能を持つツールを作成したことがありますが、その機能は極めて単純で、推測の結果のように見...

ウェブマスターネットワークニュース:タオバオがブラックリスト機能を導入する可能性、360ニュースクライアントがリリース

1. タオバオはブラックリスト機能を導入し、悪質な購入者はブラックリストに登録される可能性がある6月...

モバイルインターネット著作権戦争: アプリストアはセーフハーバー原則を適用できない

莫言がノーベル賞を受賞した後、莫言の作品をベースにしたアプリが多数登場したが、そのほとんどは海賊版ア...

Baidu Netdisk の一時的なアップグレード?

今朝8時ごろから、Baidu Cloudにアクセス障害が発生し、ファイルリストが表示できず、ファイル...

ハイブリッドクラウドファイルシステムを使用して組織のストレージニーズを満たす

今日、大規模なハードウェアを購入したり維持したりする必要がないため、コスト、拡張性、効率性の利点を享...

Baidu入札プロモーションの遊び方

百度の入札プロモーションについては皆さんもよくご存知だと思いますが、インターネットを利用する人の数が...