Re: optimize file transfer in pg_upgrade

2025-04-28 Thread Nathan Bossart
On Mon, Apr 28, 2025 at 09:00:01PM +0300, Alexander Lakhin wrote: > Thank you for the references! Unfortunately I still can't see where the > lack of upgrade log files is discussed. That was briefly discussed here: https://postgr.es/m/644cf995-e3a5-4f69-9398-7db500e2673d%40dunslane.net O

Re: optimize file transfer in pg_upgrade

2025-04-28 Thread Alexander Lakhin
Hello Nathan, 28.04.2025 18:15, Nathan Bossart wrote: I see a couple of other pg_upgrade failures on drongo and fairywren that look similar, although these are for different tests: https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=drongo&dt=2025-03-10%2019%3A26%3A35 http

Re: optimize file transfer in pg_upgrade

2025-04-28 Thread Nathan Bossart
On Sun, Apr 27, 2025 at 05:00:01PM +0300, Alexander Lakhin wrote: > Both happened on Windows, but what's worse is that the failure logs > contain no information on the exact reason. We can see: > #   Failed test 'pg_upgrade with transfer mode --swap: stdout matches' > #   at > C:/tools/xmsys64/hom

Re: optimize file transfer in pg_upgrade

2025-04-27 Thread Alexander Lakhin
Hello Nathan, 20.03.2025 04:02, Nathan Bossart wrote: On Wed, Mar 19, 2025 at 04:28:23PM -0500, Nathan Bossart wrote: And here is yet another new version of the full patch set. I'm planning to commit 0001 (the new pg_upgrade transfer mode test) tomorrow so that I can deal with any buildfarm ind

Re: optimize file transfer in pg_upgrade

2025-04-05 Thread Nathan Bossart
On Wed, Mar 19, 2025 at 12:44:38PM -0400, Andres Freund wrote: > On 2025-03-19 12:28:33 -0400, Tom Lane wrote: >> Nathan Bossart writes: >> > I'm currently planning to commit this sometime early-ish next week. One >> > notable loose end is the lack of a pg_upgrade test with a non-default >> > tab

Re: optimize file transfer in pg_upgrade

2025-04-05 Thread Tom Lane
Nathan Bossart writes: > I'm currently planning to commit this sometime early-ish next week. One > notable loose end is the lack of a pg_upgrade test with a non-default > tablespace, but that is an existing problem that IMHO is best handled > separately (since we can only test it in cross-version

Re: optimize file transfer in pg_upgrade

2025-03-25 Thread Nathan Bossart
On Thu, Mar 20, 2025 at 03:23:13PM -0500, Nathan Bossart wrote: > I'm still aiming to commit this sometime early next week. Committed. Thanks to everyone who chimed in on this thread. While writing the attributions, I noticed that nobody seems to have commented specifically on 0001. The closest

Re: optimize file transfer in pg_upgrade

2025-03-20 Thread Nathan Bossart
On Thu, Mar 20, 2025 at 11:11:46AM -0500, Nathan Bossart wrote: > As promised, I've committed just 0001 for now. I'll watch closely for any > issues in the buildfarm. Seeing none, here's is a rebased patch set without 0001. The only changes are some fleshed-out comments and commit messages. I'm

Re: optimize file transfer in pg_upgrade

2025-03-20 Thread Nathan Bossart
On Wed, Mar 19, 2025 at 09:02:42PM -0500, Nathan Bossart wrote: > On Wed, Mar 19, 2025 at 04:28:23PM -0500, Nathan Bossart wrote: >> On Wed, Mar 19, 2025 at 02:32:01PM -0500, Nathan Bossart wrote: >>> In addition to testing with in-place tablespaces, we might also want to >>> teach the transfer mod

Re: optimize file transfer in pg_upgrade

2025-03-19 Thread Nathan Bossart
On Wed, Mar 19, 2025 at 04:28:23PM -0500, Nathan Bossart wrote: > On Wed, Mar 19, 2025 at 02:32:01PM -0500, Nathan Bossart wrote: >> In addition to testing with in-place tablespaces, we might also want to >> teach the transfer modes test to do cross-version testing when possible. >> In that case, w

Re: optimize file transfer in pg_upgrade

2025-03-19 Thread Nathan Bossart
On Wed, Mar 19, 2025 at 02:32:01PM -0500, Nathan Bossart wrote: > In addition to testing with in-place tablespaces, we might also want to > teach the transfer modes test to do cross-version testing when possible. > In that case, we can test normal (non-in-place) tablespaces. However, that > would

Re: optimize file transfer in pg_upgrade

2025-03-19 Thread Andres Freund
Hi, On 2025-03-19 12:28:33 -0400, Tom Lane wrote: > Nathan Bossart writes: > > I'm currently planning to commit this sometime early-ish next week. One > > notable loose end is the lack of a pg_upgrade test with a non-default > > tablespace, but that is an existing problem that IMHO is best handl

Re: optimize file transfer in pg_upgrade

2025-03-19 Thread Andres Freund
Hi, On 2025-03-18 21:14:22 -0500, Nathan Bossart wrote: > From 8b6a5e0148c2f7a663f5003f12ae9461d2b06a5c Mon Sep 17 00:00:00 2001 > From: Nathan Bossart > Date: Tue, 18 Mar 2025 20:58:07 -0500 > Subject: [PATCH v7 1/4] Add test for pg_upgrade file transfer modes. > > This new test checks all of p

Re: optimize file transfer in pg_upgrade

2025-03-19 Thread Nathan Bossart
On Tue, Mar 18, 2025 at 09:14:22PM -0500, Nathan Bossart wrote: > And here is a new version of the full patch set. I'm currently planning to commit this sometime early-ish next week. One notable loose end is the lack of a pg_upgrade test with a non-default tablespace, but that is an existing prob

Re: optimize file transfer in pg_upgrade

2025-03-19 Thread Nathan Bossart
On Tue, Mar 18, 2025 at 01:50:10PM -0400, Andres Freund wrote: > On 2025-03-18 12:47:01 -0500, Nathan Bossart wrote: >> On Tue, Mar 18, 2025 at 01:37:02PM -0400, Andres Freund wrote: >> > - Do we need a new old cluster for each of the modes? That seems like >> > wasted >> > time? I guess it's r

Re: optimize file transfer in pg_upgrade

2025-03-18 Thread Nathan Bossart
On Tue, Mar 18, 2025 at 10:12:51AM -0400, Andres Freund wrote: > On 2025-03-18 10:04:41 -0400, Tom Lane wrote: >> Robert Haas writes: >> > I'm not quite sure what the best thing is to do is for the pg_upgrade >> > tests in particular, and it may well be best to do as you propose for >> > now and f

Re: optimize file transfer in pg_upgrade

2025-03-18 Thread Nathan Bossart
On Tue, Mar 18, 2025 at 02:08:42PM -0500, Nathan Bossart wrote: > For now, here's a new version of the test with a rewritten table. I also > tried to fix the expected error regex to handle some of the other error > messages for unsupported modes (as revealed by cfbot). And here is a new version o

Re: optimize file transfer in pg_upgrade

2025-03-18 Thread Andres Freund
Hi, On 2025-03-18 12:29:02 -0500, Nathan Bossart wrote: > Here is a first sketch at a test that cycles through all the transfer modes > and makes sure they succeed or fail with an error along the lines of "not > supported on this platform." Each test verifies that some very simple > objects make

Re: optimize file transfer in pg_upgrade

2025-03-18 Thread Andres Freund
On 2025-03-18 12:47:01 -0500, Nathan Bossart wrote: > On Tue, Mar 18, 2025 at 01:37:02PM -0400, Andres Freund wrote: > > - Do we need a new old cluster for each of the modes? That seems like wasted > > time? I guess it's required for --link... > > It'll also be needed for --swap. We could opti

Re: optimize file transfer in pg_upgrade

2025-03-18 Thread Nathan Bossart
On Tue, Mar 18, 2025 at 01:37:02PM -0400, Andres Freund wrote: > I'd add a few more complications: > > - Create and test a relation that was rewritten, to ensure we test the > relfilenode != oid case and one that isn't rewritten. +1 > - Perhaps create a tablespace? +1, I don't think we have m

Re: optimize file transfer in pg_upgrade

2025-03-18 Thread Álvaro Herrera
On 2025-Mar-18, Robert Haas wrote: > The background here is that I'm kind of on the warpath against weird > configurations that we only test on certain buildfarm animals at the > moment, because the result of that is that CI is clean and then the > buildfarm turns red when you commit. That's an un

Re: optimize file transfer in pg_upgrade

2025-03-18 Thread Andres Freund
Hi, On 2025-03-18 10:04:41 -0400, Tom Lane wrote: > Robert Haas writes: > > I'm not quite sure what the best thing is to do is for the pg_upgrade > > tests in particular, and it may well be best to do as you propose for > > now and figure that out later. But I question whether just rerunning > >

Re: optimize file transfer in pg_upgrade

2025-03-18 Thread Tom Lane
Robert Haas writes: > I'm not quite sure what the best thing is to do is for the pg_upgrade > tests in particular, and it may well be best to do as you propose for > now and figure that out later. But I question whether just rerunning > all of those tests with several different mode flags is the r

Re: optimize file transfer in pg_upgrade

2025-03-18 Thread Robert Haas
On Mon, Mar 17, 2025 at 4:30 PM Nathan Bossart wrote: > On Mon, Mar 17, 2025 at 04:04:45PM -0400, Robert Haas wrote: > > On Mon, Mar 17, 2025 at 3:34 PM Nathan Bossart > > wrote: > >> * Once committed, I should update one of my buildfarm animals to use > >> PG_TEST_PG_UPGRADE_MODE=--swap. > >

Re: optimize file transfer in pg_upgrade

2025-03-17 Thread Nathan Bossart
On Mon, Mar 17, 2025 at 04:04:45PM -0400, Robert Haas wrote: > On Mon, Mar 17, 2025 at 3:34 PM Nathan Bossart > wrote: >> * Once committed, I should update one of my buildfarm animals to use >> PG_TEST_PG_UPGRADE_MODE=--swap. > > It would be better if we didn't need a separate buildfarm animal

Re: optimize file transfer in pg_upgrade

2025-03-17 Thread Robert Haas
On Mon, Mar 17, 2025 at 3:34 PM Nathan Bossart wrote: > * Once committed, I should update one of my buildfarm animals to use > PG_TEST_PG_UPGRADE_MODE=--swap. It would be better if we didn't need a separate buildfarm animal to test this, because that means you won't get notified by local testin

Re: optimize file transfer in pg_upgrade

2025-03-17 Thread Nathan Bossart
On Wed, Mar 05, 2025 at 08:34:37PM -0600, Nathan Bossart wrote: > Thank you, Greg and Robert, for sharing your thoughts. With that, here's > what I'm considering to be a reasonably complete patch set for this > feature. This leaves about a month for rigorous testing and editing, so > I'm hopeful

Re: optimize file transfer in pg_upgrade

2025-03-17 Thread Bruce Momjian
On Wed, Mar 5, 2025 at 03:40:52PM -0500, Greg Sabino Mullane wrote: > On Wed, Mar 5, 2025 at 2:43 PM Nathan Bossart > wrote: > > One other design point I wanted to bring up is whether we should bother > generating a rollback script for the new "swap" mode.  In short, I'm > wondering

Re: optimize file transfer in pg_upgrade

2025-03-05 Thread Nathan Bossart
On Wed, Mar 05, 2025 at 03:40:52PM -0500, Greg Sabino Mullane wrote: > I've seen various failures, but they always get caught quite early. > Certainly early enough to easily abort, fix perms/mounts/etc., then retry. > I think your instinct is correct that this reversion is more trouble than > its w

Re: optimize file transfer in pg_upgrade

2025-03-05 Thread Greg Sabino Mullane
On Wed, Mar 5, 2025 at 2:43 PM Nathan Bossart wrote: > One other design point I wanted to bring up is whether we should bother > generating a rollback script for the new "swap" mode. In short, I'm > wondering if it would be unreasonable to say that, just for this mode, once > pg_upgrade enters t

Re: optimize file transfer in pg_upgrade

2025-03-05 Thread Robert Haas
On Wed, Mar 5, 2025 at 2:42 PM Nathan Bossart wrote: > Of course, rollback would still be possible, but you'd really need to > understand what "swap" mode does behind the scenes to do so safely. In any > case, I'm growing skeptical that a probably-not-super-well-tested script > that extremely few

Re: optimize file transfer in pg_upgrade

2025-03-05 Thread Nathan Bossart
On Fri, Feb 28, 2025 at 02:51:27PM -0600, Nathan Bossart wrote: > Cool. I appreciate the design feedback. One other design point I wanted to bring up is whether we should bother generating a rollback script for the new "swap" mode. In short, I'm wondering if it would be unreasonable to say that,

Re: optimize file transfer in pg_upgrade

2025-03-01 Thread Nathan Bossart
I've spent quite a bit of time recently trying to get this patch set into a reasonable state. It's still a little rough around the edges, and the code for the generated scripts is incomplete, but I figured I'd at least get some CI testing going. -- nathan >From 0af23114cfe5d00ab0b69ff804bb92d58d

Re: optimize file transfer in pg_upgrade

2025-03-01 Thread Robert Haas
On Fri, Feb 28, 2025 at 2:40 PM Robert Haas wrote: > Maybe we should rethink the decision not to transfer relfilenodes for > sequences. Or have more than one way to do it. pg_upgrade > --binary-upgrade --binary-upgrade-even-for-sequences, or whatever. Sorry, I meant: pg_dump --binary-upgrade --bi

Re: optimize file transfer in pg_upgrade

2025-02-28 Thread Robert Haas
On Fri, Feb 28, 2025 at 3:01 PM Nathan Bossart wrote: > That's exactly where I landed (see v3-0002). I haven't measured whether > transferring relfilenodes or dumping the sequence data is faster for the > existing modes, but for now I've left those alone, i.e., they still dump > sequence data. T

Re: optimize file transfer in pg_upgrade

2025-02-28 Thread Nathan Bossart
On Fri, Feb 28, 2025 at 03:37:49PM -0500, Robert Haas wrote: > On Fri, Feb 28, 2025 at 3:01 PM Nathan Bossart > wrote: >> That's exactly where I landed (see v3-0002). I haven't measured whether >> transferring relfilenodes or dumping the sequence data is faster for the >> existing modes, but for

Re: optimize file transfer in pg_upgrade

2025-02-28 Thread Robert Haas
On Wed, Nov 6, 2024 at 5:07 PM Nathan Bossart wrote: > these user relation files will have the same name. Therefore, it can be > much faster to instead move the entire data directory from the old cluster > to the new cluster and to then swap the catalog relation files. This is a cool idea. > An

Re: optimize file transfer in pg_upgrade

2025-02-28 Thread Nathan Bossart
On Fri, Feb 28, 2025 at 02:41:22PM -0500, Robert Haas wrote: > On Fri, Feb 28, 2025 at 2:40 PM Robert Haas wrote: >> Maybe we should rethink the decision not to transfer relfilenodes for >> sequences. Or have more than one way to do it. pg_upgrade >> --binary-upgrade --binary-upgrade-even-for-sequ

Re: optimize file transfer in pg_upgrade

2024-12-02 Thread Nathan Bossart
Here is a rebased patch set for cfbot. I'm planning to spend some time getting these patches into a more reviewable state in the near future. -- nathan >From 81fe66e0f0aa4f958a8707df669f60756c89bb85 Mon Sep 17 00:00:00 2001 From: Nathan Bossart Date: Tue, 5 Nov 2024 15:59:51 -0600 Subject: [PAT

Re: optimize file transfer in pg_upgrade

2024-11-19 Thread Nathan Bossart
On Mon, Nov 18, 2024 at 10:34:00PM -0500, Bruce Momjian wrote: > On Wed, Nov 6, 2024 at 04:07:35PM -0600, Nathan Bossart wrote: >> For clusters with many relations, the file transfer step of pg_upgrade can >> take the longest. This step clones, copies, or links the user relation >> files from the

Re: optimize file transfer in pg_upgrade

2024-11-19 Thread Nathan Bossart
On Sun, Nov 17, 2024 at 01:50:53PM -0500, Greg Sabino Mullane wrote: > On Wed, Nov 6, 2024 at 5:07 PM Nathan Bossart > wrote: >> Therefore, it can be much faster to instead move the entire data directory >> from the old cluster >> to the new cluster and to then swap the catalog relation files. >

Re: optimize file transfer in pg_upgrade

2024-11-18 Thread Bruce Momjian
On Wed, Nov 6, 2024 at 04:07:35PM -0600, Nathan Bossart wrote: > For clusters with many relations, the file transfer step of pg_upgrade can > take the longest. This step clones, copies, or links the user relation > files from the older cluster to the new cluster, so the amount of time it > takes

Re: optimize file transfer in pg_upgrade

2024-11-17 Thread Greg Sabino Mullane
On Wed, Nov 6, 2024 at 5:07 PM Nathan Bossart wrote: > Therefore, it can be much faster to instead move the entire data directory > from the old cluster > to the new cluster and to then swap the catalog relation files. > Thank you for breaking this up so clearly into separate commits. I think it

optimize file transfer in pg_upgrade

2024-11-06 Thread Nathan Bossart
For clusters with many relations, the file transfer step of pg_upgrade can take the longest. This step clones, copies, or links the user relation files from the older cluster to the new cluster, so the amount of time it takes is closely related to the number of relations. However, since v15, we'v