Re: optimizing pg_upgrade's once-in-each-database steps
Nathan Bossart <nathandbossart@gmail.com>
On Thu, May 16, 2024 at 05:09:55PM -0700, Jeff Davis wrote: > How much complexity do you avoid by using async instead of multiple > processes? If we didn't want to use async, my guess is we'd want to use threads to avoid complicated IPC. And if we followed pgbench's example for using threads, it might end up at a comparable level of complexity, although I'd bet that threading would be the more complex of the two. It's hard to say definitively without coding it up both ways, which might be worth doing. > Also, did you consider connecting once to each database and running > many queries? Most of those seem like just checks. This was the idea behind 347758b. It may be possible to do more along these lines. IMO parallelizing will still be useful even if we do combine more of the steps. -- Nathan Bossart Amazon Web Services: https://aws.amazon.com
Commits
-
Introduce framework for parallelizing various pg_upgrade tasks.
- 40e2e5e92b7d 18.0 landed
-
pg_upgrade: Parallelize WITH OIDS check.
- f93f5f7b984e 18.0 landed
-
pg_upgrade: Parallelize contrib/isn check.
- 9db3018cf83b 18.0 landed
-
pg_upgrade: Parallelize data type checks.
- bbf83cab98f2 18.0 landed
-
pg_upgrade: Parallelize encoding conversion check.
- c880cf258864 18.0 landed
-
pg_upgrade: Parallelize incompatible polymorphics check.
- cf2f82a37cc3 18.0 landed
-
pg_upgrade: Parallelize postfix operator check.
- c34eabfbbfd3 18.0 landed
-
pg_upgrade: Parallelize retrieving extension updates.
- 6ab8f27bc716 18.0 landed
-
pg_upgrade: Parallelize retrieving loadable libraries.
- 46cad8b31927 18.0 landed
-
pg_upgrade: Parallelize retrieving relation information.
- 6d3d2e8e541f 18.0 landed
-
pg_upgrade: Parallelize subscription check.
- 7baa36de58bd 18.0 landed
-
pg_upgrade: Move live_check variable to user_opts.
- 4b56bb4ab485 18.0 landed
-
pg_upgrade: run all data type checks per connection
- 347758b12063 17.0 cited