Thread: pgsql: Arrange for GetSnapshotData to copy live-subtransaction XIDs from

pgsql: Arrange for GetSnapshotData to copy live-subtransaction XIDs from

From
tgl@postgresql.org (Tom Lane)
Date:
Log Message:
-----------
Arrange for GetSnapshotData to copy live-subtransaction XIDs from the
PGPROC array into snapshots, and use this information to avoid visits
to pg_subtrans in HeapTupleSatisfiesSnapshot.  This appears to solve
the pg_subtrans-related context swap storm problem that's been reported
by several people for 8.1.  While at it, modify GetSnapshotData to not
take an exclusive lock on ProcArrayLock, as closer analysis shows that
shared lock is always sufficient.
Itagaki Takahiro and Tom Lane

Modified Files:
--------------
    pgsql/src/backend/access/transam:
        varsup.c (r1.72 -> r1.73)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/transam/varsup.c.diff?r1=1.72&r2=1.73)
    pgsql/src/backend/storage/ipc:
        procarray.c (r1.16 -> r1.17)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/ipc/procarray.c.diff?r1=1.16&r2=1.17)
    pgsql/src/backend/utils/time:
        tqual.c (r1.95 -> r1.96)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/time/tqual.c.diff?r1=1.95&r2=1.96)
    pgsql/src/include/utils:
        tqual.h (r1.62 -> r1.63)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/utils/tqual.h.diff?r1=1.62&r2=1.63)