2フェーズコミット
読み方:ツーフェーズコミット
【英】two-phase commit
2フェーズコミットとは、ネットワーク内にある複数のサーバ上に分散しているデータベースを更新する際、処理を同期させる仕組みであり、2相コミットとも呼ばれる。
2フェーズコミットは一部のサーバがエラーを起こした場合など、中途半端な状態での処理の終了を防ぐことで、データベースの整合性が維持されるようにする。コミット(確定)を2段階に分けて行うため、2フェーズコミットと呼ばれる。
第1フェーズでは、まずトランザクション処理を行うソフトウェアが、データベース更新作業の最後にコミットの命令を出す。それを受けたマスターサーバは、その他のサーバに対してコミットが可能か問い合わせる。各サーバは、処理が終了しデータベースを更新する準備ができたらコミット可能の報告をマスターサーバに伝える。
全てのサーバからのコミット可能の応答が揃ったら、マスターサーバは全サーバに対してコミット処理を指示し、いっせいにデータが更新される。これが第2フェーズである。このフェーズでエラーを起こしたサーバがあった場合、その情報はマスターサーバに報告され、それを受けてマスターサーバは全サーバに対しロールバック処理(処理を無効にしてデータを復旧させる)を行うよう再び指示を出す。
なお、現在のリレーショナルデータベースの大半は2フェーズコミットの機能を実装している。
|