pgsql: Modify AtEOXact_CatCache and AtEOXact_RelationCache to assume

From: tgl(at)svr1(dot)postgresql(dot)org (Tom Lane)
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Modify AtEOXact_CatCache and AtEOXact_RelationCache to assume
Date: 2005-08-08 19:17:24
Message-ID: 20050808191724.940C852883@svr1.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Log Message:
-----------
Modify AtEOXact_CatCache and AtEOXact_RelationCache to assume that the
ResourceOwner mechanism already released all reference counts for the
cache entries; therefore, we do not need to scan the catcache or relcache
at transaction end, unless we want to do it as a debugging crosscheck.
Do the crosscheck only in Assert mode. This is the same logic we had
previously installed in AtEOXact_Buffers to avoid overhead with large
numbers of shared buffers. I thought it'd be a good idea to do it here
too, in view of Kari Lavikka's recent report showing a real-world case
where AtEOXact_CatCache is taking a significant fraction of runtime.

Modified Files:
--------------
pgsql/src/backend/access/transam:
xact.c (r1.211 -> r1.212)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/access/transam/xact.c.diff?r1=1.211&r2=1.212)
pgsql/src/backend/utils/cache:
catcache.c (r1.121 -> r1.122)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/catcache.c.diff?r1=1.121&r2=1.122)
relcache.c (r1.225 -> r1.226)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/cache/relcache.c.diff?r1=1.225&r2=1.226)
pgsql/src/backend/utils/resowner:
resowner.c (r1.12 -> r1.13)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/resowner/resowner.c.diff?r1=1.12&r2=1.13)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2005-08-08 19:44:23 pgsql: Avoid useless loop overhead in AtEOXact routines when the backend
Previous Message User Nwakefield 2005-08-08 18:18:34 bizgres - bizgres: