pg_dump order of operation

Started by Ronover 7 years ago7 messagesgeneral
Jump to latest
#1Ron
ronljohnsonjr@gmail.com

Hi,

In v8.4, I noticed that the tables seemed to be dumped in alphabetical
order.  Not so much, though, in a multithreaded 9.6 dump of an 8.4 database;
there's no pattern that I can discern.

In what order does the 9.6 pg_dump dump tables?

Thanks

--
Angular momentum makes the world go 'round.

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Ron (#1)
Re: pg_dump order of operation

Ron <ronljohnsonjr@gmail.com> writes:

In v8.4, I noticed that the tables seemed to be dumped in alphabetical
order. Not so much, though, in a multithreaded 9.6 dump of an 8.4 database;
there's no pattern that I can discern.
In what order does the 9.6 pg_dump dump tables?

I don't believe the ordering rules have changed materially since 8.4;
it's intended to be by object kind, and within that by name, except
where dependencies force doing something else.

But what are you thinking constitutes the "dump order" in a parallel dump?

regards, tom lane

#3Ron
ronljohnsonjr@gmail.com
In reply to: Tom Lane (#2)
Re: pg_dump order of operation

On 08/26/2018 10:24 AM, Tom Lane wrote:

Ron <ronljohnsonjr@gmail.com> writes:

In v8.4, I noticed that the tables seemed to be dumped in alphabetical
order. Not so much, though, in a multithreaded 9.6 dump of an 8.4 database;
there's no pattern that I can discern.
In what order does the 9.6 pg_dump dump tables?

I don't believe the ordering rules have changed materially since 8.4;
it's intended to be by object kind, and within that by name, except
where dependencies force doing something else.

I thought that didn't matter, since FK and PK constraints were added (in the
required order) after all data was loaded).

But what are you thinking constitutes the "dump order" in a parallel dump?

I don't understand your question.

--
Angular momentum makes the world go 'round.

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Ron (#3)
Re: pg_dump order of operation

Ron <ronljohnsonjr@gmail.com> writes:

On 08/26/2018 10:24 AM, Tom Lane wrote:

Ron <ronljohnsonjr@gmail.com> writes:

In what order does the 9.6 pg_dump dump tables?

I don't believe the ordering rules have changed materially since 8.4;
it's intended to be by object kind, and within that by name, except
where dependencies force doing something else.

I thought that didn't matter, since FK and PK constraints were added (in the
required order) after all data was loaded).

But what are you thinking constitutes the "dump order" in a parallel dump?

I don't understand your question.

Perhaps I don't understand *your* question. What concrete problem are you
having?

regards, tom lane

#5Ron
ronljohnsonjr@gmail.com
In reply to: Tom Lane (#4)
Re: pg_dump order of operation

On 08/26/2018 01:42 PM, Tom Lane wrote:

Ron <ronljohnsonjr@gmail.com> writes:

On 08/26/2018 10:24 AM, Tom Lane wrote:

Ron <ronljohnsonjr@gmail.com> writes:

In what order does the 9.6 pg_dump dump tables?

I don't believe the ordering rules have changed materially since 8.4;
it's intended to be by object kind, and within that by name, except
where dependencies force doing something else.

I thought that didn't matter, since FK and PK constraints were added (in the
required order) after all data was loaded).

But what are you thinking constitutes the "dump order" in a parallel dump?

I don't understand your question.

Perhaps I don't understand *your* question. What concrete problem are you
having?

I want to track the progress of pg_dump so as to estimate completion time.

--
Angular momentum makes the world go 'round.

#6Tom Lane
tgl@sss.pgh.pa.us
In reply to: Ron (#5)
Re: pg_dump order of operation

Ron <ronljohnsonjr@gmail.com> writes:

On 08/26/2018 01:42 PM, Tom Lane wrote:

Perhaps I don't understand *your* question. What concrete problem are you
having?

I want to track the progress of pg_dump so as to estimate completion time.

Well, if you don't use --jobs then you should get more or less the same
behavior as in 8.4. If you do use that, then it's hardly surprising that
things are more complicated.

It looks like there's a hack in there to order tables by decreasing size
during a parallel dump, on the theory that we'll get more parallelism
that way. (Not sure I believe that, and the part of it that also orders
index dumps that way is certainly brain-dead.)

regards, tom lane

#7Ron
ronljohnsonjr@gmail.com
In reply to: Tom Lane (#6)
Re: pg_dump order of operation

On 08/26/2018 02:44 PM, Tom Lane wrote:

Ron <ronljohnsonjr@gmail.com> writes:

On 08/26/2018 01:42 PM, Tom Lane wrote:

Perhaps I don't understand *your* question. What concrete problem are you
having?

I want to track the progress of pg_dump so as to estimate completion time.

Well, if you don't use --jobs then you should get more or less the same
behavior as in 8.4. If you do use that, then it's hardly surprising that
things are more complicated.

I'm not demanding that it be simple, but just asking what the pattern is.

--
Angular momentum makes the world go 'round.