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.
0002-Add-parallel-processing-to-reindexdb-v3.patch
Description: Binary data
0001-Export-vacuumdb-s-parallel-infrastructure-v3.patch
Description: Binary data