Thread: VACUUM technical question

VACUUM technical question

From
Ilia Kantor
Date:
Hello,

I have a technical question about VACUUM

I assume all table data is kept in a single file
and each index has its single file also.

Also I assume that VACUUM cleans the file of 'dead pages' that consist
of dead rows only.

How does it manage to reduce file size without any locks ?
Or which locks are applied ?




--
Best regards,
 Ilia                          mailto:algolist@manual.ru


Re: VACUUM technical question

From
Tom Lane
Date:
Ilia Kantor <algolist@manual.ru> writes:
> How does it manage to reduce file size without any locks ?

It doesn't.  The file can only be shortened while holding
AccessExclusiveLock (otherwise we could cause serious problems for
concurrent seqscans).  VACUUM FULL has such a lock anyway,
plain VACUUM only tries to truncate if it can acquire such
a lock for a short time at the end of the VACUUM run.

            regards, tom lane