<テーマ:2相ロック方式を用いたトランザクションの同時実行制御>
正解はこちら
解答:エ
[基礎知識・用語のまとめ]
2相(phase)ロック・・・ロックが必要な資源について、すべてのロックを獲得してから、アンロック(ロック解除)を行う方式です。トランザクションの直列化可能性を保証するために用いられます。
直列化可能性・・・並列動作しているトランザクションが直列に動作した結果と同じ結果を得られることを指します。第1フェーズでまとめてロックを行い、第2フェーズでまとめてアンロックを行うところから、2相ロック方式と名づけられました。
[解法]
2相(phase)ロックとは、ロックが必要な資源について、すべてのロックを獲得してから、アンロック(ロック解除)を行う方式です。
したがって、正解は選択肢「エ」となります。
その他の選択肢は、以下の通りです。
ア→2相ロック方式を採用しても、すべてのトランザクションが直列に制御されることはなく、デッドロックは避けられません。
イ→時刻印アルゴリズムについての記述です。2相ロック方式では、トランザクションの開始の時刻順と、コミット順序に関係はありません。
ウ→通常、ロックを解除するのは、コミットまたはロールバックを実行してからです。
[参考]
SQLでは、アイソレーションレベルがREPEATABLE READまたはSERIALIZABLEのときに2相ロック方式になる、、、らしい。
利用させていただきました素材へのリンク
うさちゃこちゃんねる様 https://www.youtube.com/channel/UCQcDdg4W6r5OfcB1JTcpABw
ここまで読んでくれてありがとう!!
感謝!
コメント