更新消失(ロストアップデート)とは?こうしんしょうしつろすとあっぷでーと
更新消失(ロストアップデート)とは、読んでから書き戻すまでの間に他者の更新が割り込み、先に書かれた内容が後の書込みで上書きされて消える異常。双方とも正しく読んで正しく書いているのに、片方の作業だけが痕跡なく失われる。排他制御か、更新時の版チェックで防ぐ。
最終更新:2026-10-06
この語が出る過去問を解く →背景
画面へ読み込んだ値を人が編集して書き戻すまでには、数十秒から数分の間が空く。その間ずっとロックをかければ他の担当者が待たされ、かけなければ後から書いた側の内容だけが残る。この待ちと消失のどちらを取るかが、悲観ロックと楽観ロックの選択として現れる。
具体例
障害対応中に2人の担当者が同じインシデント記録を開き、片方が原因を、もう片方が影響範囲を書いて保存すると、後から保存した側の内容だけが残る。数値なら読んだ値を書き戻さず SET 残数 = 残数 - 10 と相対値で更新するか、版番号を条件に付けて検査する。
試験での引っ掛け
未確定の値を読むダーティリードとは違い、確定済みの値だけを正しく読んでいても発生する。READ COMMITTED にしただけでは防げず、明示的なロックか版番号による楽観ロックが要る。画面に表示した値をそのまま書き戻す実装が典型的な原因。
関連用語
出た過去問
出典:令和5年度 春期 ITサービスマネージャ試験 午前Ⅱ 問23(IPA)解説で登場
2相ロッキングプロトコルに従うトランザクションで発生する可能性のある現象はどれか。
正解:デッドロック
要点:2相ロックは直列化可能性を保証するが、デッドロックは防げない
2相ロッキングプロトコルは、ロックを取得する成長相と解放する縮退相に分け、いったん解放を始めたら新たなロックを取らない方式である。これにより直列化可能性(順番に実行したのと同じ結果になる性質)が保証され、ロストアップデートやノンリピータブルリードといった不整合は防げる。さらにロックをコミットまで保持する形(厳格な2相ロッキング)にすれば、ダーティリードも防げる。しかし複数トランザクションが互いの保持するロックを待ち合う状態は避けられず、デッドロックは発生し得る。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。