目次
更新矛盾が発生しないようにするために、ロック制御を行います。
ロック制御には、下記2種類が存在します。
ロックを行う範囲(行、表)をロックの粒度と言います。
複数トランザクションを制御する方式
ロック待ちフラグ(WFG)を作りデットロックを検出し、ロック状態を監視します。
早く開始したトランザクションにアクセス競合時に優先権を与得ます。つまり早い者勝ちの制御になります。ロックは行わないので、デットロックは発生しません。
更新対象データを事前に読み込んでおき、更新直前に他のトランザクションによって同じデータを更新していないか読み込んでいたデータと比較します。
トランザクションの処理順番が異なっても、結果が同じになる状況を直列可能性と言います。
T1 → T2 =T2 → T1
互いの資源にロック要請を出すトランザクション間でグラフに閉路が生じると検出できるフラグ管理を行うことで、デットロックを検出します。
ロックが解除されるまでの時間で、デットロックを検出します。