Re: A concurrent VACUUM FULL?

Antonin Houska <ah@cybertec.at>

From: Antonin Houska <ah@cybertec.at>
To: erik@timescale.com
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-06-30T10:03:42Z
Lists: pgsql-hackers
Erik Nordström <erik@timescale.com> wrote:

> Hi hackers,
> 
> I've been looking at the code for CLUSTER/VACUUM FULL, and whether it is possible to do a concurrent version of it using a
> multi-transactional approach similar to concurrent reindexing and partition detach.
> 
> The idea would be to hold weaker locks in TX1 when doing the heap rewrite (essentially allow reads but prevent writes), and then do the
> actual heap swap in a second TX2 transaction.

Patch [1] is in the queue that allows both reads and writes. (An exclusive
lock is acquired here for the swaps, but that should be held for very short
time.)

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

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