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

- T1
- T2
- T3
- T4
正解 イ問題へ
分野:テクノロジ系
中分類:データベース
小分類:トランザクション処理
中分類:データベース
小分類:トランザクション処理
広告
共有・専有の2種類のロックの違いを確認しておきましょう。
[t1]
T1がAを共有ロックする。
[t2]
T2がBを共有ロックする。
[t3]
T3がAの共有ロックを試みる。Aは共有ロック状態なのでロックが成功する。
[t4]
T4がBの共有ロックを試みる。Bは共有ロック状態なのでロックが成功する。
[t5]
T4がBの専有ロックを試みる。Bは共有ロック状態なのでT2のロック解除待ちとなる。
[t6]
T1がCを共有ロックする。
[t7]
T2がCの共有ロックを試みる。Cは共有ロック状態なのでロックが成功する。
[t8]
T2がCの専有ロックを試みる。Cは共有ロック状態なのでT1のロック解除待ちとなる。
[t9]
T3がAの専有ロックを試みる。Aは共有ロック状態なのでT1のロック解除待ちとなる。
設問の待ちグラフと向きは異なりますが、aにはT1がCをアンロックするのを待ち、かつ、T4にBのアンロックを待たれているT2が入ります。
- 共有ロック
- データを読込むときに使うロックで、資源がこの状態の場合は他のトランザクションによる更新処理ができなくなる。(読込みは可能)
- 専有ロック
- データを更新するときに使うロックで、資源がこの状態の場合は他のトランザクションによる読込みや更新ができなくなる。

T1がAを共有ロックする。
[t2]
T2がBを共有ロックする。
[t3]
T3がAの共有ロックを試みる。Aは共有ロック状態なのでロックが成功する。
[t4]
T4がBの共有ロックを試みる。Bは共有ロック状態なのでロックが成功する。
[t5]
T4がBの専有ロックを試みる。Bは共有ロック状態なのでT2のロック解除待ちとなる。

T1がCを共有ロックする。

T2がCの共有ロックを試みる。Cは共有ロック状態なのでロックが成功する。

T2がCの専有ロックを試みる。Cは共有ロック状態なのでT1のロック解除待ちとなる。

T3がAの専有ロックを試みる。Aは共有ロック状態なのでT1のロック解除待ちとなる。

広告