Re: why there is not VACUUM FULL CONCURRENTLY? - Mailing list pgsql-hackers

From Antonin Houska
Subject Re: why there is not VACUUM FULL CONCURRENTLY?
Date
Msg-id 16859.1722439545@antos
Whole thread Raw
In response to Re: why there is not VACUUM FULL CONCURRENTLY?  (Kirill Reshke <reshkekirill@gmail.com>)
List pgsql-hackers
Kirill Reshke <reshkekirill@gmail.com> wrote:

> Also, I was thinking about pg_repack vs pg_squeeze being used for the
> VACUUM FULL CONCURRENTLY feature, and I'm a bit suspicious about the
> latter.

> If I understand correctly, we essentially parse the whole WAL to
> obtain info about one particular relation changes. That may be a big
> overhead,

pg_squeeze is an extension but the logical decoding is performed by the core,
so there is no way to ensure that data changes of the "other tables" are not
decoded. However, it might be possible if we integrate the functionality into
the core. I'll consider doing so in the next version of [1].

> whereas the trigger approach does not suffer from this. So, there is the
> chance that VACUUM FULL CONCURRENTLY will never keep up with vacuumed
> relation changes. Am I right?

Perhaps it can happen, but note that trigger processing is also not free and
that in this case the cost is paid by the applications. So while VACUUM FULL
CONCURRENTLY (based on logical decoding) might fail to catch-up, the trigger
based solution may slow down the applications that execute DML commands while
the table is being rewritten.

[1] https://commitfest.postgresql.org/49/5117/

-- 
Antonin Houska
Web: https://www.cybertec-postgresql.com



pgsql-hackers by date:

Previous
From: Nathan Bossart
Date:
Subject: Re: improve performance of pg_dump with many sequences
Next
From: Jim Vanns
Date:
Subject: Re: Suggestions to overcome 'multixact "members" limit exceeded' in temporary tables