デッドロック予防
Deadlock Prevention
でっどろっくよぼう
デッドロックの発生を事前に防止する手法。全リソースの事前取得(一括ロック)、リソースの取得順序の統一、タイムスタンプに基づく待ち方式(Wait-Die、Wound-Wait)などがある。
Related
他の資格での定義
Related
関連キーワードの用語
データの更新時に使用するロック。ロック中は他のトランザクションからの読取りも書込みも禁止される。書込みロックとも呼ばれ、データの一貫性を確保する。
データの読取り時に使用するロック。ロック中は他のトランザクションからの読取りは許可されるが、書込みは禁止される。読取りロックとも呼ばれる。
トランザクションがロックを扱う期間を、ロックを獲得するだけの拡張相と、解放するだけの縮小相の2つに分ける規約。一度ロックを解放したら、そのトランザクションは新たなロックを獲得しない。すべてのトランザクションがこれに従えば直列化可能性が保証されるが、デッドロックは防げない。
ロックを掛ける対象となるデータの単位。データベース全体、表、ページ、行などがある。粒度を細かくするほど同時に実行できるトランザクションは増えるが、管理するロックの数が増えて負荷が大きくなる。粗くすると管理は楽になるが、待ちが増えて同時実行性が下がる。
トランザクションの開始時刻印(タイムスタンプ)を使ってデッドロックを予防する方式。ロックを要求したトランザクションが、ロックを持つトランザクションより古ければ待ち(Wait)、新しければ自らロールバックし(Die)、同じ時刻印のまま後で再実行する。古いものだけが新しいものを待つので、待ちの閉路ができない。
トランザクションの開始時刻印(タイムスタンプ)を使ってデッドロックを予防する方式。ロックを要求したトランザクションが、ロックを持つトランザクションより古ければ相手をロールバックさせてロックを得て(Wound)、新しければ待つ(Wait)。Wait-Die方式とは逆に新しいものだけが古いものを待つので待ちの閉路ができず、古いトランザクションは待たされない。
