Обсуждение: pg_restore with --use-list and --jobs and depdendencies

Поиск
Список
Период
Сортировка

pg_restore with --use-list and --jobs and depdendencies

От
Wells Oliver
Дата:
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?

--

Re: pg_restore with --use-list and --jobs and depdendencies

От
Tom Lane
Дата:
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