Hi, I've noticed that when using synchronous replication (on 9.2devel at least), temporary tables become really slow:
thom@test=# create temporary table temp_test (a text, b text); CREATE TABLE Time: 16.812 ms thom@test=# SET synchronous_commit = 'local'; SET Time: 2.739 ms thom@test=# insert into temp_test (a, b) values ('one', 'two'); INSERT 0 1 Time: 3.911 ms thom@test=# SET synchronous_commit = 'remote_write'; SET Time: 2.826 ms thom@test=# insert into temp_test (a, b) values ('one', 'two'); INSERT 0 1 Time: 831.384 ms thom@test=# insert into temp_test (a, b) values ('one', 'two'); INSERT 0 1 Time: 1700.154 ms thom@test=# insert into temp_test (a, b) values ('one', 'two'); INSERT 0 1 Time: 4976.853 ms thom@test=# insert into temp_test (a, b) values ('one', 'two'); INSERT 0 1 Time: 5294.213 ms thom@test=# insert into temp_test (a, b) values ('one', 'two'); It appears to be taking exactly 6 seconds between each transaction, but as if it's only attempting to complete every 6 seconds like a heartbeat: thom@test=# insert into temp_test (a, b) values ('one', 'two');insert into temp_test (a, b) values ('one', 'two');insert into temp_test (a, b) values ('one', 'two');insert into temp_test (a, b) values ('one', 'two'); INSERT 0 1 Time: 141.586 ms INSERT 0 1 Time: 6009.059 ms INSERT 0 1 Time: 6009.305 ms INSERT 0 1 Time: 6009.610 ms thom@test=# begin; BEGIN Time: 0.469 ms thom@test=*# insert into temp_test (a, b) values ('one', 'two');insert into temp_test (a, b) values ('one', 'two');insert into temp_test (a, b) values ('one', 'two');insert into temp_test (a, b) values ('one', 'two'); INSERT 0 1 Time: 0.841 ms INSERT 0 1 Time: 0.395 ms INSERT 0 1 Time: 0.354 ms INSERT 0 1 Time: 0.419 ms thom@test=*# end; COMMIT Time: 5649.679 ms This doesn't apply to regular tables: thom@test=# create table test (a text, b text); CREATE TABLE Time: 18.806 ms thom@test=# SET synchronous_commit = 'local'; SET Time: 2.751 ms thom@test=# insert into test (a, b) values ('one', 'two'); INSERT 0 1 Time: 6.546 ms thom@test=# SET synchronous_commit = 'remote_write'; SET Time: 2.713 ms thom@test=# insert into test (a, b) values ('one', 'two'); INSERT 0 1 Time: 7.257 ms thom@test=# insert into test (a, b) values ('one', 'two'); INSERT 0 1 Time: 6.308 ms thom@test=# insert into test (a, b) values ('one', 'two'); INSERT 0 1 Time: 8.871 ms Is this a known problem? -- Thom -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers