システムアーキテクト暗記無料で始める

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

待ちグラフとは、デッドロックが起きているかどうかを、人の見当ではなく閉路の有無という機械判定に落とすための図。各トランザクションを点、「先に確保された資源の解放を待っている」関係を矢印で表し、矢印をたどって元へ戻れる経路があれば互いに待ち合っている。DBMSが周期的に走らせる検出処理の内部表現でもある。

最終更新:2026-10-06

試験情報

システムアーキテクト試験の過去問では2回出題されています(2022年度〜2024年度)。

システムアーキテクト試験の頻出用語/午前II

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

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

背景

ロックは同時実行の正しさを守るが、確保の順序を各処理が勝手に決めると待ちが輪になり、正しさを守った結果として誰も進めなくなる。起こりうる組合せを事前に全部禁じると並行度が落ちるため、多くのDBMSは起きてから直す方針を採り、その判定手段として待ち状態をグラフへ写す。設計側は、どちらが巻き戻されても業務が破綻しない作りにしておく必要がある。

具体例

PostgreSQLはロック待ちが deadlock_timeout(既定1秒)を超えると待ち状態を検査し、輪を見つけると片方のトランザクションを中断してエラーを返す。アプリケーション側は、このエラーを検知して同じ処理を再実行する作りにしておく。

試験での引っ掛け

検出の道具であって回避策ではない点。回避側はタイムスタンプで待つか殺すかを決める wait-die/wound-wait や、資源に一意な順序を決めて全員が同じ向きに確保する規約。矢印が引かれているだけなら正常な待ちで、閉路になって初めてデッドロックである。

関連用語

出た過去問

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

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

試験での特徴
  • 試験では2回出題(2022年度〜2024年度)
  • 分野:午前II
  • 検出の道具であって回避策ではない点。