]> granicus.if.org Git - postgresql/commit
Fix recently-understood problems with handling of XID freezing, particularly
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 5 Nov 2006 22:42:10 +0000 (22:42 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 5 Nov 2006 22:42:10 +0000 (22:42 +0000)
commit48188e1621bb6711e7d092bee48523b18cd80177
tree524459ab58f8740a23efa7b7b521833646c678ba
parent10c70b86023001dc6d9028737afc97850b86e58f
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.
43 files changed:
doc/src/sgml/catalogs.sgml
doc/src/sgml/config.sgml
doc/src/sgml/maintenance.sgml
doc/src/sgml/manage-ag.sgml
doc/src/sgml/ref/vacuum.sgml
src/backend/access/heap/heapam.c
src/backend/access/transam/clog.c
src/backend/access/transam/rmgr.c
src/backend/access/transam/varsup.c
src/backend/access/transam/xact.c
src/backend/access/transam/xlog.c
src/backend/catalog/heap.c
src/backend/commands/analyze.c
src/backend/commands/dbcommands.c
src/backend/commands/vacuum.c
src/backend/commands/vacuumlazy.c
src/backend/libpq/hba.c
src/backend/nodes/copyfuncs.c
src/backend/nodes/equalfuncs.c
src/backend/parser/gram.y
src/backend/postmaster/autovacuum.c
src/backend/postmaster/postmaster.c
src/backend/storage/ipc/procarray.c
src/backend/utils/init/flatfiles.c
src/backend/utils/init/postinit.c
src/backend/utils/misc/guc.c
src/backend/utils/misc/postgresql.conf.sample
src/backend/utils/time/tqual.c
src/include/access/clog.h
src/include/access/heapam.h
src/include/access/htup.h
src/include/access/rmgr.h
src/include/access/transam.h
src/include/access/xlog.h
src/include/catalog/catversion.h
src/include/catalog/pg_attribute.h
src/include/catalog/pg_autovacuum.h
src/include/catalog/pg_class.h
src/include/catalog/pg_database.h
src/include/commands/vacuum.h
src/include/libpq/hba.h
src/include/nodes/parsenodes.h
src/include/postmaster/autovacuum.h