On Thu, Mar 06, 2025 at 01:47:34PM -0500, Tom Lane wrote: > 1. pg_upgrade has made a policy judgement to apply parallelism across > databases not within a database, ie it will launch concurrent dump/ > restore tasks in different DBs but not authorize any one of them to > eat multiple CPUs. That needs to be re-thought probably, as I think > that decision dates to before we had useful parallelism in pg_dump and > pg_restore. I wonder if we could just rip out pg_upgrade's support > for DB-level parallelism, which is not terribly pretty anyway, and > simply pass the -j switch straight to pg_dump and pg_restore.
That would certainly help for clusters with one big database with many LOs or something, but I worry it would hurt the many database case quite a bit. Maybe we could add a --jobs-per-db option that indicates how to parallelize dump/restore. If you set --jobs=8 --jobs-per-db=8, the databases would be dumped serially, but pg_dump would get -j8. If you set --jobs=8 and --jobs-per-db=2, we'd process 4 databases at a time, each with -j2. -- nathan