[pgcluster: 600] Re: シーケンス番号の整合性が崩れる
kazunari takahashi
kazunari.takahashi @ ctc-g.co.jp
2004年 12月 6日 (月) 17:31:25 JST
三谷様
高橋です.
いつもお世話になっております.
以前、問い合わせたシーケンス番号の整合性が崩れる件ですが、また同じ現象が発生しました.
postgresql.logのログを参考に、現象を再現することができました.
insert文が複数のclusterDBに特定のタイミングで同時に発行されると起きる現象のようです.
postgresql.logを添付します.
####################################
#環境
####################################
pgcluster-1.0.8rc5
pglb × 2 (solaris8 sparc)
clusterDB ×2 (solaris8 sparc)(serverA,serverB)
rgrp × 2 (solaris8 sparc)
####################################
#検証方法
####################################
serverA% cat 1.sql
begin;
insert into test (name) values('ooo');
commit;
%cat xxx_4m.sql
serverB% cat xxx_4m.sql
BEGIN;
INSERT INTO test (name) values ('
xxx・・・・
・
・×4MB文
');
COMMIT;
serverBにて、
serverB% psql -h localhost -U test test < xxx_4m.sql
上記コマンドを実行後、20秒程経ってから、serverAにて、
serverA% psql -h localhost -U test test < 1.sql
#serverBでコマンド実行後、すぐにserverAで実行すると、IDの整合性がとれていました.
####################################
#SQLの結果
####################################
serverB:
test=> select * from test where name = 'ooo';
id | name
----+------
2 | ooo
(1 row)
serverA:
test=> select * from test where name = 'ooo';
id | name
----+------
1 | ooo
(1 row)
####################################
#postgresql.log
####################################
------------------------------
serverA:
------------------------------
Dec 6 13:50:51 serverA postgres[12483]: [ID 553393 local0.info] [1] LOG: query: begin; select getdatabaseencoding(); commit
Dec 6 13:50:51 serverA postgres[12483]: [ID 553393 local0.info] [2] LOG: duration: 0.017348 sec
Dec 6 13:50:51 serverA postgres[12483]: [ID 553393 local0.info] [3] LOG: query: SELECT PGR_SYSTEM_COMMAND_FUNCTION(3,1102308651,15340,2)
Dec 6 13:50:51 serverA postgres[12483]: [ID 553393 local0.info] [4] LOG: duration: 0.013620 sec
Dec 6 13:50:51 serverA postgres[12483]: [ID 553393 local0.info] [5] LOG: query: BEGIN
Dec 6 13:50:51 serverA postgres[12483]: [ID 553393 local0.info] [6] LOG: duration: 0.000713 sec
Dec 6 13:51:10 serverA postgres[12483]: [ID 748848 local0.info] [7-1] LOG: query: INSERT INTO test (name) values ('
Dec 6 13:51:10 serverA postgres[12483]: [ID 748848 local0.info] [7-2] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:10 serverA postgres[12483]: [ID 748848 local0.info] [7-3] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
・
・
・
Dec 6 13:51:13 serverA postgres[12483]: [ID 748848 local0.info] [7-10215] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:13 serverA postgres[12483]: [ID 748848 local0.info] [7-10216] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:13 serverA postgres[12483]: [ID 748848 local0.info] [7-10217] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:13 serverA postgres[12493]: [ID 553393 local0.info] [1] LOG: query: begin; select getdatabaseencoding(); commit
Dec 6 13:51:13 serverA postgres[12493]: [ID 553393 local0.info] [2] LOG: duration: 0.016917 sec
Dec 6 13:51:13 serverA postgres[12493]: [ID 553393 local0.info] [3] LOG: query: BEGIN; SELECT usesuper FROM pg_catalog.pg_user WHERE usename = 'test'; COMMIT
Dec 6 13:51:13 serverA postgres[12493]: [ID 553393 local0.info] [4] LOG: duration: 0.027159 sec
Dec 6 13:51:13 serverA postgres[12493]: [ID 553393 local0.info] [5] LOG: query: begin;
Dec 6 13:51:13 serverA postgres[12483]: [ID 748848 local0.info] [7-10218] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:13 serverA postgres[12483]: [ID 748848 local0.info] [7-10219] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:13 serverA postgres[12483]: [ID 748848 local0.info] [7-10220] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:13 serverA postgres[12483]: [ID 748848 local0.info] [7-10221] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
・
・
・
Dec 6 13:51:14 serverA postgres[12483]: [ID 748848 local0.info] [7-10503] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:14 serverA postgres[12483]: [ID 748848 local0.info] [7-10504] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:14 serverA postgres[12483]: [ID 748848 local0.info] [7-10505] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:14 serverA postgres[12483]: [ID 748848 local0.info] [7-10506] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:14 serverA postgres[12493]: [ID 553393 local0.info] [6] LOG: duration: 0.195062 sec
Dec 6 13:51:14 serverA postgres[12493]: [ID 553393 local0.info] [7] LOG: query: insert into test (name) values('ooo');
Dec 6 13:51:14 serverA postgres[12483]: [ID 748848 local0.info] [7-10507] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:14 serverA postgres[12483]: [ID 748848 local0.info] [7-10508] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:14 serverA postgres[12483]: [ID 748848 local0.info] [7-10509] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:14 serverA postgres[12483]: [ID 748848 local0.info] [7-10510] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:14 serverA postgres[12483]: [ID 748848 local0.info] [7-10511] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:14 serverA postgres[12483]: [ID 748848 local0.info] [7-10512] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:14 serverA postgres[12483]: [ID 748848 local0.info] [7-10513] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:14 serverA postgres[12483]: [ID 748848 local0.info] [7-10514] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:14 serverA postgres[12493]: [ID 553393 local0.info] [8] LOG: duration: 0.020317 sec
Dec 6 13:51:14 serverA postgres[12493]: [ID 553393 local0.info] [9] LOG: query: commit;
Dec 6 13:51:14 serverA postgres[12483]: [ID 748848 local0.info] [7-10515] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:14 serverA postgres[12483]: [ID 748848 local0.info] [7-10516] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:14 serverA postgres[12483]: [ID 748848 local0.info] [7-10517] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
・
・
・
Dec 6 13:51:14 serverA postgres[12483]: [ID 748848 local0.info] [7-11121] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:14 serverA postgres[12483]: [ID 748848 local0.info] [7-11122] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:14 serverA postgres[12483]: [ID 748848 local0.info] [7-11123] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:14 serverA postgres[12493]: [ID 553393 local0.info] [10] LOG: duration: 0.129258 sec
Dec 6 13:51:14 serverA postgres[12483]: [ID 748848 local0.info] [7-11124] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
・
・
・
Dec 6 13:51:24 serverA postgres[12483]: [ID 748848 local0.info] [7-39999] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:24 serverA postgres[12483]: [ID 748848 local0.info] [7-40000] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:24 serverA postgres[12483]: [ID 748848 local0.info] [7-40001] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:24 serverA postgres[12483]: [ID 748848 local0.info] [7-40002] ')
Dec 6 13:51:27 serverA postgres[12483]: [ID 553393 local0.info] [8] LOG: duration: 17.281247 sec
Dec 6 13:51:27 serverA postgres[12483]: [ID 553393 local0.info] [9] LOG: query: COMMIT
Dec 6 13:51:27 serverA postgres[12483]: [ID 553393 local0.info] [10] LOG: duration: 0.115568 sec
------------------------------
serverB:
------------------------------
Dec 6 13:50:50 serverB postgres[3741]: [ID 553393 local0.info] [1] LOG: query: begin; select getdatabaseencoding(); commit
Dec 6 13:50:50 serverB postgres[3741]: [ID 553393 local0.info] [2] LOG: duration: 0.020284 sec
Dec 6 13:50:50 serverB postgres[3741]: [ID 553393 local0.info] [3] LOG: query: BEGIN; SELECT usesuper FROM pg_catalog.pg_user WHERE usename = 'test'; COMMIT
Dec 6 13:50:51 serverB postgres[3741]: [ID 553393 local0.info] [4] LOG: duration: 0.031870 sec
Dec 6 13:50:51 serverB postgres[3741]: [ID 553393 local0.info] [5] LOG: query: BEGIN;
Dec 6 13:50:51 serverB postgres[3741]: [ID 553393 local0.info] [6] LOG: duration: 0.157712 sec
Dec 6 13:50:55 serverB postgres[3741]: [ID 748848 local0.info] [7-1] LOG: query: INSERT INTO test (name) values ('
Dec 6 13:50:55 serverB postgres[3741]: [ID 748848 local0.info] [7-2] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:50:55 serverB postgres[3741]: [ID 748848 local0.info] [7-3] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:50:55 serverB postgres[3741]: [ID 748848 local0.info] [7-4] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:50:55 serverB postgres[3741]: [ID 748848 local0.info] [7-5] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:50:55 serverB postgres[3741]: [ID 748848 local0.info] [7-6] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
・
・
・
Dec 6 13:51:01 serverB postgres[3741]: [ID 748848 local0.info] [7-39670] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:01 serverB postgres[3741]: [ID 748848 local0.info] [7-39671] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:01 serverB postgres[3741]: [ID 748848 local0.info] [7-39672] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:01 serverB postgres[3741]: [ID 748848 local0.info] [7-39673] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Dec 6 13:51:14 serverB postgres[3748]: [ID 553393 local0.info] [1] LOG: query: begin; select getdatabaseencoding(); commit
Dec 6 13:51:14 serverB postgres[3748]: [ID 553393 local0.info] [2] LOG: duration: 0.024095 sec
Dec 6 13:51:14 serverB postgres[3748]: [ID 553393 local0.info] [3] LOG: query: SELECT PGR_SYSTEM_COMMAND_FUNCTION(3,1102308673,950934,2)
Dec 6 13:51:14 serverB postgres[3748]: [ID 553393 local0.info] [4] LOG: duration: 0.016216 sec
Dec 6 13:51:14 serverB postgres[3748]: [ID 553393 local0.info] [5] LOG: query: begin
Dec 6 13:51:14 serverB postgres[3748]: [ID 553393 local0.info] [6] LOG: duration: 0.000363 sec
Dec 6 13:51:14 serverB postgres[3748]: [ID 553393 local0.info] [7] LOG: query: insert into test (name) values('ooo')
Dec 6 13:51:14 serverB postgres[3748]: [ID 553393 local0.info] [8] LOG: duration: 0.010933 sec
Dec 6 13:51:14 serverB postgres[3748]: [ID 553393 local0.info] [9] LOG: query: commit
Dec 6 13:51:14 serverB postgres[3748]: [ID 553393 local0.info] [10] LOG: duration: 0.095987 sec
Dec 6 13:51:27 serverB postgres[3741]: [ID 553393 local0.info] [8] LOG: duration: 32.623963 sec
Dec 6 13:51:27 serverB postgres[3741]: [ID 553393 local0.info] [9] LOG: query: COMMIT;
Dec 6 13:51:27 serverB postgres[3741]: [ID 553393 local0.info] [10] LOG: duration: 0.169633 sec
以上 宜しくお願いいたします.
高橋 一成 <kazunari.takahashi @ ctc-g.co.jp>
pgcluster メーリングリストの案内