[#Isolation](🌐Distributed%20Systems・Concurrency・Transaction・DB/Isolation.md) [#トランザクション分離レベル](🌐Distributed%20Systems・Concurrency・Transaction・DB/Transaction/Isolation/Isolation.md) [#トランザクション](トランザクション) - 書き込んだ値が、他のトランザクションによってなかったことにされる[[Anomaly]]。([[Dead step]]) - ![[assets/671c7c61b0332e7f6de91072.png]] - この図の例では、T1の書き込みはT2によってなかったことにされる。[[Serializable]]だったら、T1のあとにT2(またはその逆)で、なかったことにはされないのに… - 画像は[いろんなAnomaly #ポエム - Qiita](https://qiita.com/kumagi/items/5ef5e404546736ebac49#lost-update) より - [[Read committed]]で起こり得る。[[Snapshot isolation]]でも起きる。[[Repeatable Read]]では起きない。 - アトミック操作のクエリなどで対処するのが一般的 - 明示的にロックを取る、トランザクションマネージャーがlost updateを検出するなどもある - [[CRDT]]であればこれは起きない。[[LWW]]的な操作で起きてしまう問題。