Re: Bug in autovacuum.c?
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Bruce Momjian <bruce@momjian.us>
Cc: Alvaro Herrera <alvherre@commandprompt.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2011-04-01T22:23:36Z
Lists: pgsql-hackers
On Fri, Apr 1, 2011 at 5:48 PM, Bruce Momjian <bruce@momjian.us> wrote: > Alvaro Herrera wrote: >> Excerpts from Bruce Momjian's message of vie abr 01 16:50:29 -0300 2011: >> >> > To do the right thing every computation that passes over the xid >> > wraparound bounary should subtract FirstNormalTransactionId, not just >> > those that fall in the boundry. That would prevent the value from going >> > backward and still allow the mapping you liked; it isn't worth it, but >> > that is the right answer. >> >> This code is only concerned calculating an immediate the wrap horizon >> for the autovacuuming run that's about to take place. If it's wrong in >> one or three counts doesn't mean much. Consider what would happen if >> load was high and it would have taken 100 extra milliseconds to get to >> that bit: ReadNewTransactionId would have returned a value 3 >> transactions later. Furthermore, before this value is even used at all >> for vacuuming, there has to be a whole lot of inter-process signalling, >> a fork, and a new backend startup. >> >> I think this should be left alone. As you said, it isn't worth it. > > Agreed it is not worth it but I think we should at least C comment > something. I think at a minimum we should set it to > FirstNormalTransactionId. I think you should leave it well enough alone. > I am not so concerned about this case but about other cases where we are > computing xid distances across the invalid range. Such as? -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company