ダーティリードってなんだろう。
データベースのトランザクション間で発生する問題の1つにダーティリードがある。
どういう事象なのか?を簡単にメモしました。 ダーティリードとはあるトランザクションが変更中の未確定データを、他のトランザクション が未確定のデータだとは知らずに読み込んでしまうことをいう。 結果、変更途中のデータを処理していくことで問題が発生する。 パンの在庫を例にして説明します。 トランザクション1は ①工場からメロンパン10個が届く。在庫は20 ②メロンパンをお店Aに20個出荷。在庫は0 トランザクション2は ①メロンパンの在庫を調べる。在庫は20 ②在庫すべて(20個)をお店Bに出荷。(図にはありません) このとき本来は在庫が0なのにトランザクション2ではメロンパン20個をお店Bに 出荷します。ここで在庫数の問題が発生します。 |