pgsql: Fix recently-understood problems with handling of XID freezing,

From: tgl(at)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Fix recently-understood problems with handling of XID freezing,
Date: 2006-11-05 22:42:10
Message-ID: 20061105224210.D710F9FA4D1@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Log Message:
-----------
Fix recently-understood problems with handling of XID freezing, particularly
in PITR scenarios. We now WAL-log the replacement of old XIDs with
FrozenTransactionId, so that such replacement is guaranteed to propagate to
PITR slave databases. Also, rather than relying on hint-bit updates to be
preserved, pg_clog is not truncated until all instances of an XID are known to
have been replaced by FrozenTransactionId. Add new GUC variables and
pg_autovacuum columns to allow management of the freezing policy, so that
users can trade off the size of pg_clog against the amount of freezing work
done. Revise the already-existing code that forces autovacuum of tables
approaching the wraparound point to make it more bulletproof; also, revise the
autovacuum logic so that anti-wraparound vacuuming is done per-table rather
than per-database. initdb forced because of changes in pg_class, pg_database,
and pg_autovacuum catalogs. Heikki Linnakangas, Simon Riggs, and Tom Lane.

Modified Files:
--------------
pgsql/doc/src/sgml:
catalogs.sgml (r2.135 -> r2.136)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/catalogs.sgml.diff?r1=2.135&r2=2.136)
config.sgml (r1.93 -> r1.94)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/config.sgml.diff?r1=1.93&r2=1.94)
maintenance.sgml (r1.63 -> r1.64)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/maintenance.sgml.diff?r1=1.63&r2=1.64)
manage-ag.sgml (r2.48 -> r2.49)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/manage-ag.sgml.diff?r1=2.48&r2=2.49)
pgsql/doc/src/sgml/ref:
vacuum.sgml (r1.42 -> r1.43)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/ref/vacuum.sgml.diff?r1=1.42&r2=1.43)
pgsql/src/backend/access/heap:
heapam.c (r1.220 -> r1.221)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/heap/heapam.c.diff?r1=1.220&r2=1.221)
pgsql/src/backend/access/transam:
clog.c (r1.40 -> r1.41)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/transam/clog.c.diff?r1=1.40&r2=1.41)
rmgr.c (r1.24 -> r1.25)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/transam/rmgr.c.diff?r1=1.24&r2=1.25)
varsup.c (r1.75 -> r1.76)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/transam/varsup.c.diff?r1=1.75&r2=1.76)
xact.c (r1.227 -> r1.228)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/transam/xact.c.diff?r1=1.227&r2=1.228)
xlog.c (r1.252 -> r1.253)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/transam/xlog.c.diff?r1=1.252&r2=1.253)
pgsql/src/backend/catalog:
heap.c (r1.313 -> r1.314)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/heap.c.diff?r1=1.313&r2=1.314)
pgsql/src/backend/commands:
analyze.c (r1.100 -> r1.101)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/analyze.c.diff?r1=1.100&r2=1.101)
dbcommands.c (r1.186 -> r1.187)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/dbcommands.c.diff?r1=1.186&r2=1.187)
vacuum.c (r1.341 -> r1.342)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/vacuum.c.diff?r1=1.341&r2=1.342)
vacuumlazy.c (r1.80 -> r1.81)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/vacuumlazy.c.diff?r1=1.80&r2=1.81)
pgsql/src/backend/libpq:
hba.c (r1.156 -> r1.157)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/libpq/hba.c.diff?r1=1.156&r2=1.157)
pgsql/src/backend/nodes:
copyfuncs.c (r1.352 -> r1.353)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/copyfuncs.c.diff?r1=1.352&r2=1.353)
equalfuncs.c (r1.286 -> r1.287)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/equalfuncs.c.diff?r1=1.286&r2=1.287)
pgsql/src/backend/parser:
gram.y (r2.567 -> r2.568)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/gram.y.diff?r1=2.567&r2=2.568)
pgsql/src/backend/postmaster:
autovacuum.c (r1.27 -> r1.28)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/postmaster/autovacuum.c.diff?r1=1.27&r2=1.28)
postmaster.c (r1.500 -> r1.501)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/postmaster/postmaster.c.diff?r1=1.500&r2=1.501)
pgsql/src/backend/storage/ipc:
procarray.c (r1.18 -> r1.19)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/ipc/procarray.c.diff?r1=1.18&r2=1.19)
pgsql/src/backend/utils/init:
flatfiles.c (r1.21 -> r1.22)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/init/flatfiles.c.diff?r1=1.21&r2=1.22)
postinit.c (r1.171 -> r1.172)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/init/postinit.c.diff?r1=1.171&r2=1.172)
pgsql/src/backend/utils/misc:
guc.c (r1.357 -> r1.358)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/misc/guc.c.diff?r1=1.357&r2=1.358)
postgresql.conf.sample (r1.197 -> r1.198)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/misc/postgresql.conf.sample.diff?r1=1.197&r2=1.198)
pgsql/src/backend/utils/time:
tqual.c (r1.98 -> r1.99)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/time/tqual.c.diff?r1=1.98&r2=1.99)
pgsql/src/include/access:
clog.h (r1.17 -> r1.18)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/clog.h.diff?r1=1.17&r2=1.18)
heapam.h (r1.116 -> r1.117)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/heapam.h.diff?r1=1.116&r2=1.117)
htup.h (r1.86 -> r1.87)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/htup.h.diff?r1=1.86&r2=1.87)
rmgr.h (r1.16 -> r1.17)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/rmgr.h.diff?r1=1.16&r2=1.17)
transam.h (r1.58 -> r1.59)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/transam.h.diff?r1=1.58&r2=1.59)
xlog.h (r1.74 -> r1.75)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/access/xlog.h.diff?r1=1.74&r2=1.75)
pgsql/src/include/catalog:
catversion.h (r1.358 -> r1.359)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/catversion.h.diff?r1=1.358&r2=1.359)
pg_attribute.h (r1.125 -> r1.126)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_attribute.h.diff?r1=1.125&r2=1.126)
pg_autovacuum.h (r1.4 -> r1.5)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_autovacuum.h.diff?r1=1.4&r2=1.5)
pg_class.h (r1.96 -> r1.97)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_class.h.diff?r1=1.96&r2=1.97)
pg_database.h (r1.41 -> r1.42)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_database.h.diff?r1=1.41&r2=1.42)
pgsql/src/include/commands:
vacuum.h (r1.67 -> r1.68)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/commands/vacuum.h.diff?r1=1.67&r2=1.68)
pgsql/src/include/libpq:
hba.h (r1.44 -> r1.45)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/libpq/hba.h.diff?r1=1.44&r2=1.45)
pgsql/src/include/nodes:
parsenodes.h (r1.333 -> r1.334)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/parsenodes.h.diff?r1=1.333&r2=1.334)
pgsql/src/include/postmaster:
autovacuum.h (r1.4 -> r1.5)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/postmaster/autovacuum.h.diff?r1=1.4&r2=1.5)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2006-11-05 23:40:31 pgsql: Fix recently-identified PITR recovery hazard: the base backup
Previous Message User Gevik 2006-11-05 21:53:52 press - pr: initial import