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

Wataru Oguro oguro @ zenrin-datacom.net
2003年 12月 3日 (水) 15:59:25 JST


oguroです。

何度もすみませんです。
今回の原因(?)が分かりましたので、ご報告いたします。

PGClusterで2台のクラスタサーバに同時にクエリーを発行した際に、デッドロッ
クが起こるという現象についてです。
結論から申しますと、トランザクション内のSELECT文の記述順によっては、デッ
ドロックが発生するようです。

クラスタサーバ:2台
レプリケーションサーバ:1台

の環境で、クラスタサーバ2台に対して、以下のSQLをほぼ同時に発行しました。

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

--デッドロック発生無し
*1ファイル中に以下のSQLを100セット記述し、psql -fで2台実行しました。
select count(*) from test;
begin;
lock table test;
insert into test values('test');
commit;

--デッドロック発生無し
*1ファイル中に以下のSQLを100セット記述し、psql -fで2台実行しました。
begin;
lock table test;
insert into test values('test');
select count(*) from test;
commit;

弊社の環境だけなのかも知れませんが、こういったことでした。。。。





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