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