Skip site navigation (1) Skip section navigation (2)

Re: [COMMITTERS] pgsql: Remove old-style VACUUM FULL (which was known for a little while

From: Greg Stark <gsstark(at)mit(dot)edu>
To: Bruce Momjian <bruce(at)momjian(dot)us>
Cc: Greg Smith <greg(at)2ndquadrant(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Alvaro Herrera <alvherre(at)commandprompt(dot)com>, Simon Riggs <simon(at)2ndquadrant(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: [COMMITTERS] pgsql: Remove old-style VACUUM FULL (which was known for a little while
Date: 2010-02-16 15:17:33
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-committerspgsql-hackers
On Tue, Feb 16, 2010 at 2:04 PM, Bruce Momjian <bruce(at)momjian(dot)us> wrote:
> The MOVE_* bits go away after a while by vacuum and there is an easy
> solution for 9.1 --- vacuum everything in 9.0.  Where things really get
> hard is when we have to support two page formats or two data formats in
> the same database.  You might think we will never get there, but there
> have been such changes in the past, and I suspect that we will have them
> in the future, maybe not in 9.1, but perhaps 9.3.

I think a O(size of database) step in the upgrade process is
acceptable iff it can be performed while the database is operational.

In this case that would mean having some code in 8.4.3 to prevent
VACUUM FULL from being used once a flag indicating that a migration is
under way. Then you would have to vacuum every table which would set a
flag indicating that no MOVED_* bits were set. Then pg_migrator would
check that that flag was set on every table before allowing you to

This might actually be a reasonable thing to put in 9.0. We already
have the code to prevent you from running VACUUM FULL -- namely that
it doesn't exist any longer. And I think we can tell whether there are
any MOVED_* bits set by looking at the vacuum freeze age of the table.
The only thing we're missing is the youngest xid seen in 8.4 before
the 9.0 migration.


In response to


pgsql-hackers by date

Next:From: Pavel StehuleDate: 2010-02-16 15:22:06
Subject: 9.0 - core dump - plpgsql - #option dump
Previous:From: Tom LaneDate: 2010-02-16 15:17:14
Subject: Re: OpenVMS?

pgsql-committers by date

Next:From: Michael MeskesDate: 2010-02-16 18:41:23
Subject: pgsql: Do not check nan values for infinity.
Previous:From: Bruce MomjianDate: 2010-02-16 14:04:11
Subject: Re: Re: [COMMITTERS] pgsql: Remove old-style VACUUM FULL (which was known for a little while

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group