令和2年PM1-2
9640さん
(No.1)
令和2年のPM1-2についてです。
設問2-2でISOLATIONレベルがREPEATABLE READが正解となっていますが、
これって以下のようにデッドロックが発生しませんか?
発生するけど、目を瞑るということでしょうか
①TR1:SELECT文(共有ロック)
②TR2:SELECT文(共有ロック)
③TR1:UPDATE文(占有ロック)(TR2の共有ロック解除待ち)
④TR2:UPDATE文(占有ロック)(TR1の共有ロック解除待ち)
⑤デッドロック発生
設問2-2でISOLATIONレベルがREPEATABLE READが正解となっていますが、
これって以下のようにデッドロックが発生しませんか?
発生するけど、目を瞑るということでしょうか
①TR1:SELECT文(共有ロック)
②TR2:SELECT文(共有ロック)
③TR1:UPDATE文(占有ロック)(TR2の共有ロック解除待ち)
④TR2:UPDATE文(占有ロック)(TR1の共有ロック解除待ち)
⑤デッドロック発生
2021.04.04 07:43
関数従属さん
★DB ブロンズマイスター
(No.2)
空席管理システムにデッドロックを検知してTR1かTR2かを
強制的にロールバックする仕組みは必要かと思いますが、
ロールバックされた方は再度最初から処理をやり直せばよい為
REPEATABLE READになっているかと思います。
READ COMMITTEDの場合のTR1,TR2ともに同一座席が仮予約できてしまう方が
空席管理システムのシステム上都合が悪いという感じかと思います。
また、空席管理システムの処理方法を工夫する事で
(必ず座席番号の小さい順に(b)の処理を行っていくとか)
デッドロックを発生しないようにできそうな気もします。
強制的にロールバックする仕組みは必要かと思いますが、
ロールバックされた方は再度最初から処理をやり直せばよい為
REPEATABLE READになっているかと思います。
READ COMMITTEDの場合のTR1,TR2ともに同一座席が仮予約できてしまう方が
空席管理システムのシステム上都合が悪いという感じかと思います。
また、空席管理システムの処理方法を工夫する事で
(必ず座席番号の小さい順に(b)の処理を行っていくとか)
デッドロックを発生しないようにできそうな気もします。
2021.04.04 16:49
9640さん
(No.3)
>READ COMMITTEDの場合のTR1,TR2ともに同一座席が仮予約できてしまう方が
>空席管理システムのシステム上都合が悪いという感じかと思います。
ご回答ありがとうございます。
確かにそうですね。納得しました。
2021.04.06 00:34
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。