pgsql: Refactor and generalize the ParallelSlot machinery.

From: Robert Haas <rhaas(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Refactor and generalize the ParallelSlot machinery.
Date: 2021-03-11 19:02:10
Message-ID: E1lKQZW-0004eJ-5k@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Refactor and generalize the ParallelSlot machinery.

Create a wrapper object, ParallelSlotArray, to encapsulate the
number of slots and the slot array itself, plus some other relevant
bits of information. This reduces the number of parameters we have
to pass around all over the place.

Allow for a ParallelSlotArray to contain slots connected to
different databases within a single cluster. The current clients
of this mechanism don't need this, but it is expected to be used
by future patches.

Defer connecting to databases until we actually need the connection
for something. This is a slight behavior change for vacuumdb and
reindexdb. If you specify a number of jobs that is larger than the
number of objects, the extra connections will now not be used.
But, on the other hand, if you specify a number of jobs that is
so large that it's going to fail, the failure would previously have
happened before any operations were actually started, and now it
won't.

Mark Dilger, reviewed by me.

Discussion: http://postgr.es/m/12ED3DA8-25F0-4B68-937D-D907CFBF08E7@enterprisedb.com
Discussion: http://postgr.es/m/BA592F2D-F928-46FF-9516-2B827F067F57@enterprisedb.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/f71519e545a34ece0a27c8bb1a2b6e197d323163

Modified Files
--------------
src/bin/scripts/reindexdb.c | 17 +-
src/bin/scripts/vacuumdb.c | 46 ++--
src/fe_utils/parallel_slot.c | 407 ++++++++++++++++++++++++-----------
src/include/fe_utils/parallel_slot.h | 27 ++-
src/tools/pgindent/typedefs.list | 2 +
5 files changed, 338 insertions(+), 161 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Robert Haas 2021-03-11 19:13:19 Re: pgsql: Don't consider newly inserted tuples in nbtree VACUUM.
Previous Message Peter Geoghegan 2021-03-11 17:36:02 Re: pgsql: Don't consider newly inserted tuples in nbtree VACUUM.