pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Antonin Houska <ah@cybertec.at>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: Michael Banck <mbanck@gmx.net>
Cc: Junwang Zhao <zhjwpku@gmail.com>
Cc: Kirill Reshke <reshkekirill@gmail.com>
Cc: Pavel Stehule <pavel.stehule@gmail.com>
Cc: Michael Paquier <michael@paquier.xyz>
Cc: PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Subject: Re: why there is not VACUUM FULL CONCURRENTLY?
Date: Fri, 31 Jan 2025 11:15:24 +0100
Message-ID: <24725.1738318524@antos> (raw)
In-Reply-To: <202501310932.ugw3k5c4orgv@alvherre.pgsql>
References: <202501310932.ugw3k5c4orgv@alvherre.pgsql>

Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:

> On 2025-Jan-31, Antonin Houska wrote:
> 
> Something that Robert Haas just mentioned to me is handling of row
> locks: if concurrent transactions are keeping rows in the original table
> locked (especially SELECT FOR KEY SHARE, since that's not considered by
> logical decoding at present and it would be possible to break foreign
> keys if we just do nothing), them we need these to be "transferred" to
> the new table somehow.

The current implementation acquires AccessExclusiveLock on the table
(supposedly for very short time) so it can swap the table and index
files. Once we have that lock, I think the transactions holding the row locks
should no longer be running. Or can the row lock "survive" the table lock
somehow?

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





view thread (88+ messages)  latest in thread

Message-ID: <24725.1738318524@antos>
Permalink:  ../24725.1738318524@antos/
Also on:    postgresql.org/message-id/24725.1738318524@antos

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: ah@cybertec.at, alvherre@alvh.no-ip.org, mbanck@gmx.net, zhjwpku@gmail.com, reshkekirill@gmail.com, pavel.stehule@gmail.com, michael@paquier.xyz
  Subject: Re: why there is not VACUUM FULL CONCURRENTLY?
  In-Reply-To: <24725.1738318524@antos>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox