Transaction wraparound vacuum synchronicity

From: Michael Graham <mgraham(at)bloxx(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Transaction wraparound vacuum synchronicity
Date: 2011-03-09 10:52:25
Message-ID: 1299667945.7102.121.camel@brutus
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi all,

I have a database with a number of tables that are partitioned monthly,
after that the tables are mostly read only (on rare occasions we may
delete from a table but normally we just drop the partitions). Recently
I've noticed that we have a lot of these tables are vacuumed around the
same time, after a little big of digging I've realised that postgres is
vacuuming them to stop xaction wrap around. So for example in a few
million xactions (later today) postgres is going to want to vacuum 37
tables for just this reason.

I know I can fiddle autovacuum_freeze_max_age and vacuum_freeze_min_age
to change how regularly the tables have this occur, and I can do this on
a per table basis in pg_autovacuum (yes this means I'm running an old
version, version 8.2) but what I'm wondering is how other people are
breaking this synchronisation?

Should I add a random value to the freeze_max_age for all the old tables
when I start a new month? Or do the same with the freeze_min_age?
Perhaps I should just force a vacuum on some of the tables the break it?

Cheers,
--
Michael Graham <mgraham(at)bloxx(dot)com>

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Sim Zacks 2011-03-09 11:27:16 Re: Using bytea field...
Previous Message Vlad Arkhipov 2011-03-09 09:37:43