教科書で学ぶトランザクションの基礎と並行制御
定義2相コミットメント は、複数のデータベースにまたがるトランザクションを全体で確定するか全体で取り消すかにそろえるため、準備と確定の 2 段階でコミットを進める手順である。
解説全体を取りまとめる 調整役 は、第1相で各データベースに確定の準備ができたかを問い合わせ、各データベースは更新をいつでも確定できる状態にしてから可否を返す。全員が可と答えたときだけ第2相で確定を指示し、一つでも否があれば全員にロールバックを指示する。これにより、ある拠点では確定し別の拠点では取り消された、という食い違いを防ぐ。
たとえ共同購入で、参加者全員から支払えるという返事がそろってから一斉に代金を引き落とし、一人でも支払えなければ誰からも引き落とさないやり方に似ている。
記憶フック「相」は phase (段階) の訳語。1 相目で聞き、2 相目で決める、と数字と動作を対にして覚える。