Re: Vacuum x Vacuum full - Mailing list pgsql-admin

From Stephan Szabo
Subject Re: Vacuum x Vacuum full
Date
Msg-id 20040625101942.J32249@megazone.bigpanda.com
Whole thread Raw
In response to Vacuum x Vacuum full  (Carlos Benkendorf <chbenkendorf@yahoo.com>)
List pgsql-admin
On Fri, 25 Jun 2004, Carlos Benkendorf wrote:

> I would like to know if space disk is free to the Operational System
> during a standard vacuum (without the full option)?
>
> I found in section "21.1.1 Recovering disk space" of Postgresql 7.4.2 manual
> something about it.
>
> "The standard form of VACUUM is best used with the goal of maintaining a
> fairly level steady-state usage of disk space.The standard form finds
> old row versions and makes their space available for re-use within the
> table, but it does not try very hard to shorten the table file and
> return disk space to the operating system. "
>
> Even so it is not clear. They say the space will be available for re-use
> within the table so I realized the space will not be available to
> the operational system. But they also say the command "does not try very
> hard to shorten the table file and return disk space to the operating
> system" what means to me that it could sometimes free space to the
> operating system.
>
> I could not clear my doubt. Will the standard form, free disk space to the
> operational system or not?

Sometimes. If there are empty pages at the end of the file, it can attempt
to shorten the file. If there's data at the end of the file, it won't.

> I did some tests and discovered that the standard form frees disk space
> to the operational system. But if the standard form already frees it why
> the full form will do different?

Full can move tuples between pages which can free up pages at the end of
the file which can allow it to shorten further.

For example, if you insert enough rows to say have 2 pages in your table
file and delete all the entries on the first page and not quite all on the
second, vacuum (nonfull) is not going to be able to truncate the file
because the data is in the second page.  Vacuum full will move live rows
to the first page freeing up the entire second page and making it
available for release.

pgsql-admin by date:

Previous
From: Carlos Benkendorf
Date:
Subject: Vacuum x Vacuum full
Next
From: Tom Lane
Date:
Subject: Re: Vacuum x Vacuum full