Hannu Krosing wrote:
On Tue, 2008-10-28 at 10:10 +0000, Simon Riggs wrote:
On Tue, 2008-10-28 at 11:45 +0200, Hannu Krosing wrote:
On Tue, 2008-10-28 at 08:49 +0000, Simon Riggs wrote:
Looking at a VACUUM's WAL records makes me think twice about the way we
issue a VACUUM.

1. First we scan the heap, issuing a HEAP2 clean record for every block
that needs cleaning.
IIRC the first heap pass just collects info and does nothing else. Is this just an empty/do-nothing WAL record ?
8.3 changed that; it used to work that way. I guess I never looked at
the amount of WAL being generated.

I can't see how it is safe to do anything more than just lookups on
first pass.

What's done in the first pass is the same HOT pruning that is done opportunistically on other page accesses as well. IIRC it's required for correctness, though I can't remember what exactly the issue was.

I don't think the extra WAL volume is a problem; VACUUM doesn't generate much WAL, anyway. As for the extra data page writes it causes; yeah, that might cause some I/O that could be avoided, but remember that the first pass often dirties buffers anyway to set hint bits.

--
  Heikki Linnakangas
  EnterpriseDB   http://www.enterprisedb.com

--
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