Re: [Proposal] Progress bar for pg_dump/pg_restore - Mailing list pgsql-hackers

From Merlin Moncure
Subject Re: [Proposal] Progress bar for pg_dump/pg_restore
Date
Msg-id CAHyXU0y__PoN-iCuWSgObT7WHrwH=jr_LV_eVae2W-EwRje7XA@mail.gmail.com
Whole thread Raw
In response to [Proposal] Progress bar for pg_dump/pg_restore  (Taiki Kondo <tai-kondo@yk.jp.nec.com>)
Responses Re: [Proposal] Progress bar for pg_dump/pg_restore  (Taiki Kondo <tai-kondo@yk.jp.nec.com>)
List pgsql-hackers
On Fri, Jun 12, 2015 at 7:45 AM, Taiki Kondo <tai-kondo@yk.jp.nec.com> wrote:
> Hi, all.
>
> I am newbie in hackers.
> I have an idea from my point of view as one user, I would like to propose the following.
>
>
> Progress bar for pg_dump / pg_restore
> =====================================
>
> Motivation
> ----------
> "pg_dump" and "pg_restore" show nothing if users don't specify verbose (-v) option.
> In too large table to finish in a few minutes, this behavior worries some users about if this situation (nothing
showsup) is all right.
 
>
> I propose this feature to free these users from worrying.
>
>
> Design & API
> ------------
> When pg_dump / pg_restore is running, progress bar and estimated time to finish is shown on screen like following.
>
>
> =========>           (50%)  15:50
>
> The bar ("=>" in above) and percentage value ("50%" in above) show percentage of progress, and the time ("15:50" in
above)shows estimated time to finish.
 
> (This percentage is the ratio for the whole processing.)
>
> Percentage and time are calculated and shown for every 1 second.
>
> In pg_dump, the information, which is required for calculating percentage and time, is from pg_class.
>
> In pg_restore, to calculate the same things, I want to record total amount of command lines into pg_dump file, thus I
wouldlike to add a new element to "Archive" structure.
 
> (This means that version number of archive format is changed.)
>
>
> Usage
> ------
> To use this feature, user must specify "-P" option in command line.
> (This definition is also temporary, so this is changeable if this leads problem.)
>
> $ pg_dump -Fc -P -f foo.pgdump foo
>
> I also think it's better that this feature is enabled as the default and does not force users to specify any options,
butit means changing the default behavior, and can make problem in some programs expecting no output on stdout.
 
>
>
> I will implement this feature if this proposal is accepted by hackers.
> (Maybe, I will not use ncurses for implementing this feature, because ncurses can not be used with standard printf
familyfunctions.)
 
>
>
> Any comments are welcome.

*) how do you estimate %done and ETA when dumping?

*) what's the benefit of doing this instead of using a utility like 'pv'?

merlin



pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: git push hook to check for outdated timestamps
Next
From: Andres Freund
Date:
Subject: Re: [Proposal] Progress bar for pg_dump/pg_restore