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

Started by Alvaro Herreraalmost 19 years ago3 messagescomitters
Jump to latest
#1Alvaro Herrera
alvherre@postgresql.org

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)

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Alvaro Herrera (#1)
Re: pgsql: Rearrange vacuum-related bits in PGPROC as a bitmask, to better

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

#3Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Tom Lane (#2)
Re: pgsql: Rearrange vacuum-related bits in PGPROC as a bitmask, to better

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)