IT資格用語解説基本情報技術者試験・同時実行制御(排他制御)
共有ロック
更新日:
用語解説
共有ロック(shared lock、Sロック)は、トランザクションがデータを読み取る際に取得する基本的なロックで、同じ対象への他の共有ロックとは共存できますが、専有ロックとは競合します。
■ 試験で押さえるポイント
複数トランザクションが同じ確定データを同時に読むことを許しつつ、読取り中に他トランザクションが対象を変更することを防ぐ目的があります。
基本互換表はS-Sが可、S-XとX-Sが不可です。先にSロックがある場合、後から来たXロック要求は全ての競合するSロックが解放されるまで待ちます。
二相ロック法や分離レベルにより、Sロックを読取り直後に解放するかトランザクション終了まで保持するかが変わり、反復不能読取りの防止範囲も変わります。
MVCCでは単純なSELECTがSロックを長く保持せず、スナップショットを読む製品があります。共有ロックの概念と、特定DBMSの読取り実装を同一視しません。
■ 選択肢での判断ポイント
読取り側のSロック同士は共存でき、更新側のXロックとは共存できないと判定します。共有という語から、他者の更新まで許すと誤解しません。
例: Tx-AとTx-Bは商品1へ同時にSロックを取得して読めます。その間にTx-Cが商品1のXロックを要求すると、AとBがSロックを解放するまで待機します。