Re: Autovacuum integration patch - Mailing list pgsql-patches

From Tom Lane
Subject Re: Autovacuum integration patch
Date
Msg-id 23560.1120580194@sss.pgh.pa.us
Whole thread Raw
In response to Re: Autovacuum integration patch  ("Matthew T. O'Connor" <matthew@zeut.net>)
Responses Re: Autovacuum integration patch  ("Matthew T. O'Connor" <matthew@zeut.net>)
List pgsql-patches
"Matthew T. O'Connor" <matthew@zeut.net> writes:
>>> Hmm.  Yes, this patch doesn't handle Xid wraparound.  This should be
>>> easy to add though.  Anyway, I was thinking that we could add a "last
>>> vacuum Xid" to pg_autovacuum, and handle Xid wraparound for each table
>>> separately -- this means you don't have to issue huge whole-database
>>> VACUUMs, because it will be handled nicely for each table.  Storing the
>>> last vacuum Xid in pg_database would have to be rethought.

> The current implementation of XID wraparound requires that the vacuum
> command be run against the entire database, you can not run it on a per
> table basis and have it work.  At least that is my understanding,

No, you're wrong.  VACUUMing of individual tables is perfectly good
enough as far as XID wrap protection goes, it's just that we chose to
track whether it had been done at the database level.  If we tracked it
in, say, a new pg_class column then in principle you could protect
against XID wrap with only table-at-a-time VACUUMs.  (I think you'd
still want the pg_database column, but you'd update it to be the minimum
of the per-table values at the completion of any VACUUM.)

At the time this didn't seem particularly worth the complication since
no one would be likely to try to do that manually --- but with
autovacuum handling the work, it starts to sound more realistic.

            regards, tom lane

pgsql-patches by date:

Previous
From: Tom Lane
Date:
Subject: Re: INSERT ... RETURNING
Next
From: "Matthew T. O'Connor"
Date:
Subject: Re: Autovacuum integration patch