From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Antonin Houska <ah(at)cybertec(dot)at> |
Cc: | Marcos Pegoraro <marcos(at)f10(dot)com(dot)br>, Michael Banck <mbanck(at)gmx(dot)net>, Junwang Zhao <zhjwpku(at)gmail(dot)com>, Kirill Reshke <reshkekirill(at)gmail(dot)com>, Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>, Michael Paquier <michael(at)paquier(dot)xyz>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: why there is not VACUUM FULL CONCURRENTLY? |
Date: | 2025-03-20 17:32:02 |
Message-ID: | 202503201732.xyyic3z35zis@alvherre.pgsql |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
I rebased this patch series; here's v09. No substantive changes from v08.
I made sure the tree still compiles after each commit.
I did look at 0002 again (and renamed the members of the new struct by
adding a p_ prefix, as well as fixing the references to the old names
that were in a few code comments here and there; I don't think these
changes are "substantive"), and ended up wondering why do we need that
change in the first place. According to the comment where the progress
restore function is called, it's because reorderbuffer.c uses a
subtransaction internally. But I went to look at reorderbuffer.c and
noticed that the subtransaction is only used "when using the SQL
function interface, because that creates a transaction already". So
maybe we should look into making REPACK use reorderbuffer without having
to open a transaction block.
I didn't do anything about that, in particular I didn't actually try to
run REPACK to see whether the transaction is needed. I'll be looking at
that in the next couple of days.
--
Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/
"Once again, thank you and all of the developers for your hard work on
PostgreSQL. This is by far the most pleasant management experience of
any database I've worked on." (Dan Harris)
http://archives.postgresql.org/pgsql-performance/2006-04/msg00247.php
Attachment | Content-Type | Size |
---|---|---|
v09-0001-Add-REPACK-command.patch | text/x-diff | 89.8 KB |
v09-0002-Move-progress-related-fields-from-PgBackendStatu.patch | text/x-diff | 9.9 KB |
v09-0003-Move-conversion-of-a-historic-to-MVCC-snapshot-t.patch | text/x-diff | 5.4 KB |
v09-0004-Add-CONCURRENTLY-option-to-REPACK-command.patch | text/x-diff | 166.8 KB |
v09-0005-Preserve-visibility-information-of-the-concurren.patch | text/x-diff | 39.6 KB |
v09-0006-Add-regression-tests.patch | text/x-diff | 10.6 KB |
v09-0007-Introduce-repack_max_xlock_time-configuration-va.patch | text/x-diff | 20.4 KB |
v09-0008-Enable-logical-decoding-transiently-only-for-REP.patch | text/x-diff | 24.2 KB |
v09-0009-Call-logical_rewrite_heap_tuple-when-applying-co.patch | text/x-diff | 26.1 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2025-03-20 17:45:59 | Re: why there is not VACUUM FULL CONCURRENTLY? |
Previous Message | David E. Wheeler | 2025-03-20 17:20:30 | Re: Support "make check" for PGXS extensions |