On Tue, Jul 9, 2019 at 9:52 AM Julien Rouhaud <rjuju...@gmail.com> wrote:
>
> On Tue, Jul 9, 2019 at 9:24 AM Michael Paquier <mich...@paquier.xyz> wrote:
> >
> > I have done a lookup of this patch set with a focus on the refactoring
> > part, and the split is a bit confusing.
> [...]

I finished to do a better refactoring, and ended up with this API in
scripts_parallel:

extern ParallelSlot *ConsumeIdleSlot(ParallelSlot *slots, int numslots,
const char *progname);

extern ParallelSlot *SetupParallelSlots(const char *dbname, const char *host,
const char *port,
const char *username, bool prompt_password,
const char *progname, bool echo,
PGconn *conn, int numslots);

extern bool WaitForSlotsCompletion(ParallelSlot *slots, int numslots,
   const char *progname);

ConsumeIdleSlot() being a wrapper on top of (now static) GetIdleSlot,
which handles parallelism and possible failure.

Attached v3, including updated documentation for the new -j option.

Attachment: 0002-Add-parallel-processing-to-reindexdb-v3.patch
Description: Binary data

Attachment: 0001-Export-vacuumdb-s-parallel-infrastructure-v3.patch
Description: Binary data

Reply via email to