- Anomalyの一つ
- 2つのトランザクションが並行してDB内の同じオブジェクトを更新しようとしているとき、先行する書き込みがまだコミットされていないトランザクションの一部であり、あとから行われる書き込みがコミットされていない値を上書きしてしまうケース
https-percent3A-percent2F-percent2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com-percent2F0-percent2F68018-percent2F55e8325e-81ce-911c-c731-52b24b0c18aa.pngixlib=rb-4.0.0-and-auto=format-and-gif-q=60-and-q=75-and-w=1400-and-fit=max-and-s=ad0fee74813019295da9c21ea894d488
- 画像はトランザクションの分離性(isolation)の概要 Transaction - Qiitaより
- 防ぐためには、2番目のトランザクションの書き込みが、最初の書き込みのトランザクションがコミット or abortされるまで遅延される必要がある
- 変更するオブジェクトの排他ロックを取ればOK。行レベルロックなどが使われる。
- Read committedでは起きないようになっている