Thread: pg_dump order of operation
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.
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
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.
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
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.
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
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.