2相ロッキングプロトコルに従うトランザクションで発生する可能性のある現象はどれか。
ア | ダーティリード |
イ | デッドロック |
ウ | ノンリピータブルリード |
エ | ロストアップデート |
答え イ
【解説】
ア | ダーティリード(dirty read)は、あるトランザクションが更新している最中に他のトランザクションのデータの読み出しを許可することで、2相ロッキングプロトコルでは発生しません。(×) |
イ | デッドロック(dead lock)は、複数のトランザクションで、互いに相手が占有している資源をロックしようとして、処理が停止することで、2相ロッキングプロトコルでも発生します。(〇) (デッドロックを避けるためには全てのトランザクションでロックする資源の順番を同じにする必要があります。) |
ウ | ノンリピータブルリード(non-repeatable read、ファジーリード)は、トランザクション処理において、あるトランザクションが同じレコードを何度も繰り返し読み出す場合に途中で他のトランザクションが内容を更新してしまうことで、2相ロッキングプロトコルでは発生しません。(×) |
エ | ロストアップデート(lost update)は、他のトランザクションが行った更新を消してしまう更新のことで、2相ロッキングプロトコルでは発生しません。(×) |
【キーワード】
・2相ロッキングプロトコル