> 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.)
That sounds great. Do you know if there's anything I can do to help?