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

推薦する

#DoubleTwelve# racknerd: ロサンゼルスのハイエンド VPS+ハイブリッド サーバーが期間限定で 50% オフ プロモーション、最低 $14.75/年

Racknerd は、中国の特別な 12 連休の日に中国人向けの特別プロモーションを再開しました: ...

Archhosting: オランダの VPS、4 ウェイ e5 ハイエンド サーバー、人気のないビジネス、ロサンゼルスは Web サイト構築に適しています

ウェブマスターは今年 1 月に archhosting を導入しました。当時はロサンゼルス データセ...

WeChatの思考: 思考は事例から生まれる

少し前に、WeChatは正式に「WeChat思考」というタイトルの本をリリースし、WeChatを通じ...

最適化計画を効果的に改善する方法

SEO 最適化を行う際には、特に会社を選ぶ際には多くの選択肢があります。信頼できる会社であれば、適切...

セカンドレベルドメイン名を最適化して、海から目立つようにする方法

ウェブサイトを最適化する場合、多くの場合、ウェブサイトのトップレベルドメイン名の最適化だけを考えます...

プライベート クラウド市場: 数年にわたる混乱を経て、今後中国市場を支配するのは誰か?

私は仕事柄、国内のプライベートクラウド市場の発展を注視しており、その市場に参加する栄誉に恵まれてきま...

垂直型 B2C は失われる: 金持ちの男性と付き合うことが解決策となるか?

天猫の「ダブル11」プロモーションは売上高132億元で完璧に終了した。人々がまだ「ダブル11」につい...

ペルーのVPS: gcoreはペルーのリマでVPSを提供しており、月額4.49ユーロからWindowsオプション付きでご利用いただけます。

世界的に人気のサーバープロバイダーであるgcoreは、南米西部のペルーの首都リマに独自のデータセンタ...

Kubernetesの未来はFacebookの先例に従うだろう

[編集者注]現在、Kubernetes は最大で約 5,000 個のノードを管理しています。これは、...

業界のトラフィックを促進する方法

ウェブマスターがやや競争の激しいキーワードを最適化しているとき、基本的な作業をたくさん行ってもキーワ...

Rabbit High Defense CDN: (無料版あり) DDoS に対する高い防御力、CC 防御、申請不要、あらゆる業界へのアクセス、香港 CN2 を含む大規模なノード

「湖北ラビットクラウドテクノロジー株式会社」は、主にエンタープライズレベルのクラウドプラットフォーム...

コンテナとコンテナランタイムについて

コンテナ技術は仮想化技術であり、よく「ソフトウェア定義の XXX」と呼ばれます。コンテナが登場する前...

成長が鈍化?オペレータークラウドは軽くブレーキを踏んだときに失速しなかった

8月14日ニュース(水易)近年、事業者が財務報告を発表するたびに、クラウドサービス事業は特別な注目を...

分散 |知っておくべき負荷分散

[[378668]]最近、友人がバックグラウンドでメッセージを残し、負荷分散に関する記事を書くように...

Red Hat、コンテナセキュリティ企業StackRoxを買収

[51CTO.com クイック翻訳] 木曜日、Red Hat はコンテナおよび Kubernetes...