Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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)

pgsql-committers by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group