OSDN Git Service

Modify AtEOXact_CatCache and AtEOXact_RelationCache to assume that the
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 8 Aug 2005 19:17:23 +0000 (19:17 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 8 Aug 2005 19:17:23 +0000 (19:17 +0000)
commit4568e0f791f7e838409e1ef93d3513a6314b835e
treef35fc0900e984a6ec9fe0861753330df613ed41c
parentbe27a2012311af1ad3254b2d17df28f7f4ddd5c5
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.
src/backend/access/transam/xact.c
src/backend/utils/cache/catcache.c
src/backend/utils/cache/relcache.c
src/backend/utils/resowner/resowner.c