
基本情報技術者試験基礎・応用
条件を読む・根拠を説明する
送金処理の原子性
条件を整理し、答えを選んでから解き方を確認しましょう。
送金処理でA口座の減額は成功、B口座の増額で失敗した。原子性を満たす処理はどれか。
答え・解き方を読む
両方を一つの取引とし失敗時には減額も取り消す
考える順序
- 1送金は二つの更新を一単位として扱う
- 2全て成功するか全て反映しない状態にする
- 3途中失敗時はロールバックで一貫した状態へ戻す
選択肢ごとの理由
- 比較 · 減額だけ確定して処理を終える
片方だけの確定は送金の整合性を壊します。
- 比較 · B口座だけを二重に増額する
二重更新は原子性の確保になりません。
- 比較 · 取引ごとに正しさを確認せずログを消す
ログを消しても更新の不整合は解消しません。
- 正解 · 両方を一つの取引とし失敗時には減額も取り消す
送金は二つの更新を一単位として扱う。全て成功するか全て反映しない状態にする。途中失敗時はロールバックで一貫した状態へ戻す。