Обсуждение: pgsql: Rearrange vacuum-related bits in PGPROC as a bitmask, to better

Поиск
Список
Период
Сортировка

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

От
alvherre@postgresql.org (Alvaro Herrera)
Дата:
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)

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

От
Tom Lane
Дата:
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

От
Alvaro Herrera
Дата:
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)