• Robert Haas's avatar
    Refactor and generalize the ParallelSlot machinery. · f71519e5
    Robert Haas authored
    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
    f71519e5
parallel_slot.c 12.9 KB