Thread: pgsql: Rearrange vacuum-related bits in PGPROC as a bitmask, to better

pgsql: Rearrange vacuum-related bits in PGPROC as a bitmask, to better

From
alvherre@postgresql.org (Alvaro Herrera)
Date:
Log Message:
-----------
Rearrange vacuum-related bits in PGPROC as a bitmask, to better support
having several of them.  Add two more flags: whether the process is
executing an ANALYZE, and whether a vacuum is for Xid wraparound (which
is obviously only set by autovacuum).

Sneakily move the worker's recently-acquired PostAuthDelay to a more useful
place.

Modified Files:
--------------
    pgsql/src/backend/access/transam:
        twophase.c (r1.36 -> r1.37)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/transam/twophase.c?r1=1.36&r2=1.37)
    pgsql/src/backend/commands:
        analyze.c (r1.109 -> r1.110)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/analyze.c?r1=1.109&r2=1.110)
        vacuum.c (r1.359 -> r1.360)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/vacuum.c?r1=1.359&r2=1.360)
    pgsql/src/backend/postmaster:
        autovacuum.c (r1.62 -> r1.63)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/postmaster/autovacuum.c?r1=1.62&r2=1.63)
    pgsql/src/backend/storage/ipc:
        procarray.c (r1.35 -> r1.36)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/ipc/procarray.c?r1=1.35&r2=1.36)
    pgsql/src/backend/storage/lmgr:
        proc.c (r1.194 -> r1.195)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/lmgr/proc.c?r1=1.194&r2=1.195)
    pgsql/src/include/storage:
        proc.h (r1.100 -> r1.101)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/storage/proc.h?r1=1.100&r2=1.101)

alvherre@postgresql.org (Alvaro Herrera) writes:
> Rearrange vacuum-related bits in PGPROC as a bitmask, to better support
> having several of them.  Add two more flags: whether the process is
> executing an ANALYZE, and whether a vacuum is for Xid wraparound (which
> is obviously only set by autovacuum).

Is the explicit reset of PROC_VACUUM_FOR_WRAPAROUND (about line 2140
of autovacuum.c) actually needed?  Won't that get cleared automatically
during transaction end?

            regards, tom lane

Re: pgsql: Rearrange vacuum-related bits in PGPROC as a bitmask, to better

From
Alvaro Herrera
Date:
Tom Lane wrote:
> alvherre@postgresql.org (Alvaro Herrera) writes:
> > Rearrange vacuum-related bits in PGPROC as a bitmask, to better support
> > having several of them.  Add two more flags: whether the process is
> > executing an ANALYZE, and whether a vacuum is for Xid wraparound (which
> > is obviously only set by autovacuum).
>
> Is the explicit reset of PROC_VACUUM_FOR_WRAPAROUND (about line 2140
> of autovacuum.c) actually needed?

Probably not.  Actually I was just wondering if it was possible to
commit the transaction opened for the previous vacuum sooner, which
would clear that bit and also release the locks on the vacuumed
relation.  But that's probably too much of a hassle and a wasted Xid or
two.

--
Alvaro Herrera                        http://www.advogato.org/person/alvherre
"Ellos andaban todos desnudos como su madre los parió, y también las mujeres,
aunque no vi más que una, harto moza, y todos los que yo vi eran todos
mancebos, que ninguno vi de edad de más de XXX años" (Cristóbal Colón)