Ilia Kantor <algolist(at)manual(dot)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