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

Yasuo Ohgaki yohgaki @ ohgaki.net
2003年 12月 7日 (日) 09:26:08 JST


大垣です。

# たまたま読んだスレッドにつっこみがないので...

Wataru Oguro wrote:
> --デッドロック発生(弊社の検証環境では100%)
> *1ファイル中に以下のSQLを100セット記述し、psql -fで2台実行しました。
> begin;
> select count(*) from test;
> lock table test;
> insert into test values('test');
> commit;

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

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

--
Yasuo Ohgaki




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