ロストアップデート【lost update】

ロストアップデートとは?

複数の処理が同じデータを同時に更新しようとした際、一方の変更内容がもう一方に上書きされて消えてしまう現象のこと。データベースや業務システムで発生しやすく、「更新の消失」とも呼ばれる。
ロストアップデートのイメージ画像

例えば、利用者Aと利用者Bがほぼ同時に同じデータを読み込み、それぞれが手元で値を変更して保存しようとしたとする。Aが先に保存を完了した直後、Bが自分の変更内容を書き込むと、Bは元の値を基に編集しているため、Aの更新はBの内容に完全に上書きされる。システム上にAが作業した痕跡は残らず、変更そのものが消えた状態になる。

厄介なのは、この問題がエラーとして表面化しない点にある。処理は正常に完了したように見え、データだけが静かにずれていく。在庫管理や銀行口座の残高、座席予約など、数値の正確さが直接求められる場面では、データと実態の乖離が業務上の損失につながることもある。原因の特定も難しく、気づいたときには問題の発端をたどれなくなっている場合も多い。

対策は基本的に排他制御によって行う。「悲観的ロック」は、データを読み込んだ時点で他の処理が同じデータを変更できないよう鍵をかける方法である。一方、「楽観的ロック」は、保存の直前に読み込み時からデータが変わっていないかを確認し、変更があれば保存を拒否して再試行を促す方法である。同時アクセスの頻度やシステムの性質に応じて、いずれかが選ばれる。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。