1分2PC 2フェーズ・コミットを理解します

まず、概念


2フェーズプロトコル2PC(2つのフェーズコミット)コミット時にすべてのノードのトランザクション・コミット時アルゴリズムの一貫性を確保するために、分散システムにおいて、意味します。

 

二、背景


分散システムでは、各ノードは、動作の独自の成功または失敗を認識することができるが、他のノード動作の成功または失敗を知ることができません。

複数のノード間での取引、アトミックトランザクションとの一貫性を維持するために、導入する必要がある場合コーディネーターすべての統一制御に(コーディネーター)参加者(参加者)の業績及び経営成績は、彼らが本物であるかどうかを示す必要があります提出(コミット)またはロールバック(ロールバック)。

 

第三に、アイデア


2PC名が暗示に2つの段階、アイデアは、その実施形態のように要約することができます。

(1)投票フェーズ(投票フェーズ):参加者は操作コーディネーターの結果を通知します。

(2)相コミット(フェーズコミット):参加の通知を受信した後、参加者は、各参加者がフィードバックに基づいてコミットまたはロールバックするかどうかを決定する、再度通知コーディネータを発行しました。

 

第四に、欠陥


実行アルゴリズムは、すべてのノードがロックダウンしている(等データベースのデータ、ローカルファイル、など)すべてのノードに保持された閉塞状態のリソースです。

典型的なシナリオは次のとおりです。

参加者の一人が、ブロックされた状態のすべてのすべての参加者とコーディネータに円形を発行した(1)の前に。

(2)前通知コーディネーター、すべての参加者がブロックされた状態にあります。

アルゴリズムの効率は、この時点では比較的低いので、また、コーディネーターまたは参加者のクラッシュが発生した場合は、完全閉塞の状態で全体のアルゴリズムを避けるために、多くの場合、アルゴリズムに必要とタイムアウトメカニズムは、前方に移動し続けます。

全体的に、2PCは、より保守的なアルゴリズムです

 

第五に、例えば


ABC D 4は時間が決定会議室、会議を整理するために、我々はそのAコーディネーター、B Bingding参加をとることができます。

投票フェーズ:

B(1)プロブコール電子メール、周辺8午後の時間を満たしている場合、

(2)応答時間。

(3)Bの応答時間。

返信(4)プロピオネート遅延、このイベントのためのこの時間は、B及びCは、アルゴリズムが続行できない状態を阻止しています。

(5)プロパン応答時間(または時間がありません)。

相をコミットします。

結果(1)Bingding B(フィードバック、及び方法フィードバックの結果、この例では、時間とプロップの決定に依存する)に、コーディネータ収集フィードバック。

(2)Bは、受信しました。

受信された(3)プロパン;

(4)ブトキシを受け、

 

結論


2PC非効率的な、分散トランザクションを行うのは困難です。

 

終わり

公開された35元の記事 ウォン称賛17 ビュー30000 +

おすすめ

転載: blog.csdn.net/dev666/article/details/104211083