Slide 27
Slide 27 text
新しいアノマリーを紹介するぜ!
● Dirty Write
○ 他のトランザクションでコミットされていない更新を上書きしてしまう
● Read Skew
○ x と y を順次読むとき,「x がこの値なら y はこの範囲にある値のはず」という論理的な前提が崩れる
● Lost Update
○ 他のトランザクションによってコミットされた更新を気づかないまま上書きしてしまう
○ SELECT … FOR UPDATE を使えば指定した行(カーソル)単位では防げるが,
これも防げないことを Cursor Lost Update と呼んでいる(若干雑な解釈)
● Write Skew
○ 「x を読んで y を更新」「y を読んで x を更新」の 2 つのトランザクションが,
すれ違いざまに相手の変更前の値に依存した更新を行ってしまう
● Observe Skew (Readonly Anomaly, Read Only Skew, etc…)
○ 2 つだけであれば直列化可能であったはずの 2 つのトランザクションに 3 人目の観測者が加わることによって,
観測結果まで含めた整合性を担保しようとすると 3 つのトランザクションの順序が確定できなくなってしまう