2フェーズコミット 【2-phase commit】 2相コミット

概要

2フェーズコミット(2-phase commit)とは、複数の独立したシステムが参加する分散トランザクションにおいて、処理の整合性が保たれるよう2段階に分けてコミットう手法。

トランザクション処理では、振り込みにおける出金と入金のように一体不可分な連続した処理を、すべて成功かすべて失敗(途中の処理が失敗したら実行済みの処理を取り消して開始前の状態に戻す)のどちらかに制御する。

分散トランザクションでは複数の独立した処理主体が一連の処理を分担して実行するため、通常のコミット処理によって結果を確定させることができない。このような場合に、準備と確定の2段階に分けてコミットを実施する方式を2フェーズコミットという。

トランザクションの制御を司るコーディネータはまず、処理を実行して結果を返すよう参加者に通知する。各参加者はトランザクションを構成する処理を実行し、成功したら「コミット可能」の応答を返す。すべての参加者から成功の通知を受け取ったら、コーディネータはコミットを確定するよう参加者に通知する。これを受けてすべての参加者がコミット実行することにより、トランザクション全体のコミットが完了する。

準備段階で処理に失敗した参加者がいた場合、コーディネータはトランザクションの失敗を全参加者に伝え、った処理を取り消して巻き戻すロールバック処理うよう促す。参加者がコミット可能な状態で待っている際にコーディネータが故障などで停止すると、コミットロールバックもできないまま放置されてしまうという問題がある。

(2019.1.17更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる