資格スワイプ
科目A-2(多肢選択式・四肢択一、25問)

DBMSがデッドロックを検出した場合の一般的な処理の流れとして、最も適切なものはどれか。

  • Aすべての関係するトランザクションを即座にロールバックし、アプリケーションにエラーを返す
  • Bデッドロックが解消されるまで、関係するすべてのトランザクションを一時停止し、タイムアウトを待つ
  • Cデッドロックを検出した時点のログを取得し、システム管理者の手動判断でロールバック対象を決定する
  • デッドロックを構成するトランザクションのうち、ロールバックのコストが小さいものなど所定の基準で選んだ1つを犠牲者(victim)としてロールバックし、残りのトランザクションを続行させる

解説

デッドロックは循環待ちを解消しないと解決しないため、DBMSは待ちグラフなどでサイクルを検出し、あらかじめ定めた基準(ロールバックコストの小ささなど)で犠牲トランザクションを1つ選んでロールバックし、サイクルを断ち切る。他のトランザクションは通常継続される。

根拠シラバス「期待する技術水準」トランザクション管理・排他制御(ロック・デッドロック)

← 前の問題次の問題 →
スワイプでまとめて流す