[pgsql-jp: 31726] Re: 【PGCluster 】デッドロックについて

Wataru Oguro oguro @ zenrin-datacom.net
2003年 12月 8日 (月) 09:41:18 JST


Oguroです。

> PGClusterの使用の有無に関係なくREAD COMMITTEDのTRANSACTION ISOLATION(Default)
> 中にSELECTでロック(たしかAccess Shareロックだったかな?)をかけた後、TABLE LOCK
> (Access Exclusive ロック)をかけているのでデッドロックは必然です。
> # psqlを2つ立ち上げて手動でやってもデッドロックを確認できるはずです。

そのとおりですが、PG_CLUSTERで実験すると分かると思いますが、2種類のデッ
ドロックのパターンがあります。

> 
> 他の2つはロックオプション無しのTABLE LOCK(Access Exclusive - 最も強
> 力なロック)をトランザクションの最初にかけているのでデッドロックしません。

これもその通りです。
問題は、クラスタサーバでデッドロックが検出できる場合と、レプリケーション
サーバからのクエリがデッドロックを起こして、それをクラスタサーバがハンド
リングできていないというところです。
僕が今いろいろと悩んでいるのは、後者の方で、今だに解決していません。。。

何かいい案がありましたらご教授くださいませ。
よろしくお願いいたします。





pgsql-jp メーリングリストの案内