New VACUUM FULL - Mailing list pgsql-hackers

From Itagaki Takahiro
Subject New VACUUM FULL
Date
Msg-id 20091027135502.34DE.52131E4D@oss.ntt.co.jp
Whole thread Raw
In response to Re: (WIP) VACUUM REWRITE - CLUSTER by ctid  (Itagaki Takahiro <itagaki.takahiro@oss.ntt.co.jp>)
Responses Re: New VACUUM FULL  (Simon Riggs <simon@2ndQuadrant.com>)
Re: New VACUUM FULL  (Alvaro Herrera <alvherre@commandprompt.com>)
Re: New VACUUM FULL  (Alvaro Herrera <alvherre@commandprompt.com>)
Re: New VACUUM FULL  (Alvaro Herrera <alvherre@commandprompt.com>)
Re: New VACUUM FULL  (Jeff Davis <pgsql@j-davis.com>)
List pgsql-hackers
Here is a patch to support "rewrite" version of VACUUM FULL.
It was called "VACUUM REWRITE" in the past disucussin,
but I choose the following syntax for now:

    VACUUM ( FULL [ INPLACE | REPLACE ] )  [ table_name ]

The reason is to contrast the new REPLACE behavior with the old INPLACE
behavior. I cannot find any good terms of opposite meaning of REWRITE.

The new version works like as CLUSTER USING ctid or rewriting in
ALTER TABLE. It must be faster than them if we have many dead tuples
and are not interested in physical order of tuples.

We still need traditional VACUUM FULL behavior for system catalog because
we cannot change relfilenode for them. Also, VACUUM FULL REPLACE is not
always better than traditional VACUUM FULL; the new version requires
additional disk space and might be slower if we have a few dead tuples.

"VACUUM FULL" and "VACUUM (FULL)" are synonyms for "VACUUM (FULL REPLACE)",
but if the target table is s system catalog, instead "FULL INPLACE" is
used automatically.


If this approach is reasonable, I'll go for other supplemental parts.
(documentations, vacuumdb, etc.)

Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center


Attachment

pgsql-hackers by date:

Previous
From: Greg Smith
Date:
Subject: Re: Parsing config files in a directory
Next
From: Peter Eisentraut
Date:
Subject: Re: Unicode UTF-8 table formatting for psql text output