PostgreSQLでREAD COMMITTEDかつSELECTに必ずFOR SHARE/UPDATEを付けた場合、各Anomalyが発生し得るかどうか検討してみたけど、これで合っているだろうか。

- Dirty Read Anomaly: 発生しない。

- Read Skew Anomaly: 発生しない。

- Lost Update: 発生しない(デッドロック)。

- Inconsistent Read Anomaly:

* 存在しなかった行が存在するようになる(phantom read): 発生し得る。

* 存在した行が変更される: 発生しない。

- Write Skew Anomaly:

* INSERTの場合: 発生し得る。

* UPDATEの場合: 発生しない(デッドロック)。

- Read Only Anomaly: 発生しない?

参考: https://qiita.com/kumagi/items/5ef5e404546736ebac49

Reply to this note

Please Login to reply.

Discussion

No replies yet.