過去問解きまくり研究所 ホーム

令和4年度 春期 午前Ⅱ 問24

データベース

共有ロックに関する問題

t1~t10 の時刻でスケジュールされたトランザクション T1~T4 がある。時刻 t10 で T1 が commit を発行する直前の,トランザクションの待ちグラフを作成した。a に当てはまるトランザクションはどれか。ここで,select (X) は共有ロックを掛けて資源 X を参照することを表し,update (X) は専有ロックを掛けて資源 X を更新することを表す。これらのロックは,commit された時にアンロックされるものとする。また,トランザクションの待ちグラフの矢印は,Ti→Tj としたとき,Tj がロックしている資源のアンロックを,Ti が待つことを表す。

〔トランザクションのスケジュール〕

時刻T1T2T3T4
t1select (A)−−−
t2−select (B)−−
t3−−select (B)−
t4−−−select (A)
t5−−−update (B)
t6select (C)−−−
t7−select (C)−−
t8−update (C)−−
t9−−update (A)−
t10commit−−−

(原典では T1~T4 の列の上に「トランザクション」の見出しがある。)

〔トランザクションの待ちグラフ〕:

b → a
a → d
b → c
c → b
c → d
答えと解説を見る

✓ これが正解イT2

解説

待ちの関係を書き出すと、a に当たるのは T2 です。

見分ける軸は、t10 の直前に誰がどの資源のアンロックを待っているかです。t5 で T4 が B を更新しようとしますが、B は T2 と T3 が共有ロック中なので T4→T2 と T4→T3 が生じます。t8 で T2 が C を更新しようとしますが、C は T1 が共有ロック中なので T2→T1 です。t9 で T3 が A を更新しようとしますが、A は T1 と T4 が共有ロック中なので T3→T1 と T3→T4 です。何も待たない T1 は出ていく矢印のない d です。互いに矢印を出し合う b と c は T3 と T4 で、b→a があることから b が T4、c が T3、a が T2 と決まります。矢印の出入りを手掛かりに当てはめると解けます。

ほかの選択肢はなぜ違うのか

この問題の用語

出典:令和4年度 春期 システムアーキテクト試験 午前Ⅱ 問24

同じ用語が出る問題

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)