2相コミットは複数のデータベースにまたがって処理を行う際に、すべてのデータベースで整合性が確実に保たれるようにする手法です。2相コミットではまず、処理全体を司るマスターサーバが、対象となるデータベースサーバに対し、コミットが実行可能であるかを問い合わせます。更新準備が整っているサーバは「準備完了」の応答を返し、すべてのサーバが準備を終えたことを確認した上で、マスターサーバはコミット開始を通知、データベースが一斉に書き換えます。書き換え中にいずれかのデータベースで異常が発生した場合、異常が生じたサーバは失敗を伝え、マスターサーバはすべてのサーバに処理撤回を通知して、データを復元する「ロールバック」処理を行うよう指示する。このように、一連の手順がコミット準備とコミット実行の2段階に分かれていることから、2相コミットと呼ばれています。
|