Jim C. Nasby wrote: > On Mon, Apr 24, 2006 at 08:41:55AM -0400, Alvaro Herrera wrote: > > The test for database-wide vacuum is: > > > > database age > big_constant > > > > where: > > > > big_constant = (MaxTransactionId >> 3) * 3 - 100000) = 1610512733 > > Ok, I'll bite... any idea how (MaxTransactionId >> 3) * 3 was chosen? I > don't see anything about it in vacuum.c... I don't remember exactly why was that constant chosen. IIRC Tom pulled it out of thin air. You can see in vac_truncate_clog (vacuum.c) a similar constant is used to emit messages about impending wraparound; it's ((MaxTransactionId >> 3) * 3). The one in autovacuum.c allows for more slack. (Which is kinda right because we want autovac to take care of it _before_ the user sees any warning.) > Also, maybe that should be defined in one place rather than duplicating > it in autovacuum.c? Hmm ... do you care enough to send a patch? -- Alvaro Herrera http://www.CommandPrompt.com/ PostgreSQL Replication, Consulting, Custom Development, 24x7 support