コミットメント制御

更新日:

用語解説

コミットメント制御は、分散トランザクションに参加する複数のデータベースが、更新を全て確定するか全て取り消すかを協調して決定し、原子性を維持する制御です。代表方式が二相コミットです。

■ 試験で押さえるポイント

  • 第1相の準備(投票)では、調停者が全参加者へコミット可能か問い、各参加者は更新とログを永続化してYes又はNoを返します。

  • 全員がYesなら第2相でCommitを通知し、一人でもNo又は所定の失敗ならRollbackを通知するため、一部拠点だけの確定を防ぎます。

  • 参加者は準備後にロックや資源を保持して最終指示を待つため、調停者障害やネットワーク分断では処理がブロックされる弱点があります。

  • ローカルトランザクションのCOMMIT命令だけでは複数拠点の原子性を保証できず、複製の整合性制御とも目的が異なります。

■ 選択肢での判断ポイント

二相コミットの順序はPrepare→Commit/Rollbackです。全参加者が準備完了したときだけ全体をコミットし、可用性低下や待ちが生じ得る点まで押さえます。

例: 銀行Aの残高減算と銀行Bの残高加算を準備し、両DBがYesを返した場合だけ両方をコミットし、Bが失敗すればAもロールバックします。

同じ分野の用語