共有ロックとは?きょうゆうロック
共有ロックとは、読み取りのために掛ける、同じ資源へ複数のトランザクションが同時に掛けられるロック。互いに待たない一方で専有ロックとは両立しないため、読んでいる間は誰も更新できない。参照ロック・読取りロック・Sロックも同義で、隔離性水準によって保持する期間が変わる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
読み手を1件ずつ直列にすると、参照が中心の業務システムはそれだけで詰まる。かといって読んでいる最中に値が書き換わると、同じ問合せのなかで辻褄の合わない結果を返してしまう。この方式は「読み手どうしは干渉しない」という性質だけを取り出して同時実行を稼ぎ、書き手だけを締め出す。どの隔離性水準でいつまで保持するかによって、同時実行性と一貫性の取り分が変わる。
具体例
月次の集計バッチが対象期間の行を読んでいる間、同じ行を読む別の照会は待たずに通るが、その期間の伝票を訂正するオンライン処理は待たされる。この待ちを避けるため、参照系をレプリカやスナップショット分離へ逃がす方式を採ることが多い。
試験での引っ掛け
両立表の向きを取り違えないこと。同種どうしだけが両立し、専有が絡む組合せは両立しない。「読むだけだから安全」も誤りで、2つのトランザクションが同じ行を読んだまま双方が専有へ昇格しようとすると、互いに待ち合って昇格デッドロックになる。
関連用語
出た過去問
出典:令和4年度 春期 システムアーキテクト試験 午前Ⅱ 問24(IPA)
t1~t10の時刻でスケジュールされたトランザクションT1~T4がある。時刻t10でT1がcommitを発行する直前の、トランザクションの待ちグラフを作成した。…
正解:T2
要点:待ちグラフは各資源のロック保持者と待機者の関係から決まる
各資源のロック状態を時系列で追うと、AはT1とT4が共有ロック、BはT2とT3が共有ロック、CはT1とT2が共有ロックを保持する。その後、T4のupdate(B)はT2とT3を待ち、T2のupdate(C)はT1を待ち、T3のupdate(A)はT1とT4を待つ。待ちの矢印が出ておらず二つ流入する頂点がT1(図のd)、そこへ向かう矢印を1本だけ出しつつ1本受ける頂点がT2であり、aはT2となる。
出典・参考
高度試験 午前I(高度午前I 相当)のシラバスの3 技術要素 > 4. トランザクション処理 > (1) 同時実行制御(排他制御)に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。