From: Tom Lane <tgl@sss.pgh.pa.us>
To: Wells Oliver <wells.oliver@gmail.com>
Cc: pgsql-admin <pgsql-admin@postgresql.org>
Subject: Re: pg_restore with --use-list and --jobs and depdendencies
Date: Fri, 07 Jan 2022 17:26:31 -0500
Message-ID: <1386276.1641594391@sss.pgh.pa.us> (raw)
In-Reply-To: <CAOC+FBV6y-skipCOyrjRxEow1xD9wD-i6PiADTG324_cMpDqaQ@mail.gmail.com>
References: <CAOC+FBV6y-skipCOyrjRxEow1xD9wD-i6PiADTG324_cMpDqaQ@mail.gmail.com>
Wells Oliver <wells.oliver@gmail.com> writes:
> Hi all: I just wanted to clarify something for myself: how does pg_restore
> determine restore order if you're using a --use-list and --jobs parameters.
> Given the concurrency of jobs and (assuming) it goes in order of what's in
> the list, does it... well, does it sort out dependencies properly so data
> is inserted that foreign keys need, etc?
(1) The basic order of the restored items is what you say in the --list
file, but it will start the next item as soon as (a) a worker is free
and (b) all of that item's dependencies are complete
(2) It will honor direct dependencies between restored items, ie
not start B till A is done if B is shown as depending on A
(3) I'm not too sure about indirect dependencies, ie if you have
a situation where C depends on B depends on A and you ask for just
A and C, that may end up with no dependency constraint delaying C.
Which might be fine, or it might not; you'd need to be more specific
about what you intend to skip.
regards, tom lane
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-admin@postgresql.org
Cc: tgl@sss.pgh.pa.us, wells.oliver@gmail.com
Subject: Re: pg_restore with --use-list and --jobs and depdendencies
In-Reply-To: <1386276.1641594391@sss.pgh.pa.us>
* 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