
Buffer Deadlock - 日本エクセム株式会社 Oracle 技術情報
基本情報
buffer busy waitsが大量に発生した場合に時折発生することがある問題です。つまり、Oracleで述べたようにbuffer pinを獲得する過程で発生する可能性があるデッドロックです。このような問題が生じる理由は、Oracleでbuffer pinをキャッチすると、同じクラスについては単一のブロックずつpinを獲得する作業で見つけることができます。
たとえば、AのプロセスがB1、B2ブロックのpinが必要な場合にB1にpin&release後、B2についてpin&releaseをするようにPinのオペレーションをします。これを行う中で、同じブロックに対して大量の競合が発生した場合、非常に短く、デッドロック現象が発生する可能性がありますが、一般的に非常に短く発生するので、大きな問題はありません。もし、buffer deadlockが長い時間維持されるならば、bugと推定してみることが適切です。