データベーススペシャリスト暗記無料で始める

待ちグラフとは?まちグラフ

待ちグラフとは、実行中のトランザクションをノード、「AがBの保持するロックの解放を待っている」という関係を有向辺として表した有向グラフ。閉路があればデッドロックが生じていると判定でき、DBMSはこれを周期的に、あるいはロック待ちが発生した時点で調べる。閉路を見つけたら、その中の1つを犠牲者に選んでロールバックし、辺を切って解消する。

最終更新:2026-10-06

試験情報

データベーススペシャリスト試験の過去問では5回出題されています(2016年度〜2025年度)。

データベーススペシャリスト試験の頻出用語/午前II

別名:待ちグラフ法、wait-for graph

この語が出る過去問を解く →

背景

デッドロックを完全に予防しようとすると、必要な資源を事前に全部宣言させるか、獲得順序を全アプリで統一するしかなく、開発の自由度を大きく削る。実際にはデッドロックはまれにしか起きないので、多くのDBMSは起きるに任せて、起きたときだけ壊す方針を採る。そのために「待ち」という関係だけを抜き出して閉路の有無に還元したのが待ちグラフである。

具体例

T1→T2→T3→T1という閉路が検出されたら、ロールバックの費用がいちばん小さいものを犠牲者に選んで取り消す。PostgreSQLはロック待ちが一定時間続いたときにこのグラフを調べ、デッドロックと判定するとエラーを返す。

試験での引っ掛け

待ちグラフはデッドロックの検出手法であって、予防(回避)の手法ではない。予防側はタイムスタンプの順で待つか殺すかを決める方式(wait-die/wound-wait)や、資源への一方向の順序付けである。閉路があって初めてデッドロックであり、辺が何本あっても閉路が無ければ待っているだけで進む。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では5回出題(2016年度〜2025年度)
  • 分野:午前II
  • 待ちグラフはデッドロックの検出手法であって、予防(回避)の手法ではない。