On 1/30/13 3:28 PM, Kevin Grittner wrote:
Jim Nasby <j...@nasby.net> wrote:

then the *ideal* time to start a freeze vacuum on a table is so
that the vacuum would end *exactly* as we were about to hit XID
wrap.

For a tuple which you know is going to survive long enough to be
frozen, the *ideal* time to freeze a tuple, from a performance
standpoint, is when the tuple is written, to eliminate a separate
WAL-log operation.  The *next best* time to freeze is when the hint
bits are set, to avoid a separate page write.  If you are doing
differential backups, the *third best* time to freeze is before the
first differential backup of the tuple, to avoid a separate backup
after the freeze.  And so on.

Yeah, I hadn't considered that aspect, but I think that's a separate discussion. I agree that there are many cases where we would benefit from freezing early, and those should all help reduce the impact of XID-wrap induced freezing.

Even if we do introduce "up-front" freezing, we still need to deal with all the other cases though, which in the worst case means avoiding the XID wrap. I believe that particular case (as well as the whole autovac priority question) would be best served by looking at 1st and 2nd order derivatives.



--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to