postgresql/src/include
Tom Lane f60d176a5e Tweak catalog cache management algorithms to reduce cost of
SearchCatCacheList and ReleaseCatCacheList.  Previously, we incremented
and decremented the refcounts of list member tuples along with the list
itself, but that's unnecessary, and very expensive when the list is big.
It's cheaper to change only the list refcount.  When we are considering
deleting a cache entry, we have to check not only its own refcount but
its parent list's ... but it's easy to arrange the code so that this
check is not made in any commonly-used paths, so the cost is really nil.
The bigger gain though is to refrain from DLMoveToFront'ing each individual
member tuple each time the list is referenced.  To keep some semblance
of fair space management, lists are just marked as used or not since the
last cache cleanout search, and we do a MoveToFront pass only when about
to run a cleanout.  In combination, these changes reduce the costs of
SearchCatCacheList and ReleaseCatCacheList from about 4.5% of pgbench
runtime to under 1%, according to my gprof results.
2005-08-13 22:18:07 +00:00
..
access Solve the problem of OID collisions by probing for duplicate OIDs 2005-08-12 01:36:05 +00:00
bootstrap Tag appropriate files for rc3 2004-12-31 22:04:05 +00:00
catalog Make pg_stat_file() use OUT parameters so that the user doesn't have to 2005-08-13 19:02:34 +00:00
commands ALTER TABLE OWNER must change the ownership of the table's rowtype too. 2005-08-04 01:09:29 +00:00
executor Revise nodeMergejoin in light of example provided by Guillaume Smet. 2005-05-13 21:20:16 +00:00
lib Tag appropriate files for rc3 2004-12-31 22:04:05 +00:00
libpq Autovacuum loose end mop-up. Provide autovacuum-specific vacuum cost 2005-08-11 21:11:50 +00:00
mb Actually, this macro had worse problems than a bogus name ... 2005-08-05 15:01:48 +00:00
nodes Add NOWAIT option to SELECT FOR UPDATE/SHARE. 2005-08-01 20:31:16 +00:00
optimizer Fix a bunch of bad interactions between partial indexes and the new 2005-07-28 20:26:22 +00:00
parser Add NOWAIT option to SELECT FOR UPDATE/SHARE. 2005-08-01 20:31:16 +00:00
port Add fsync() define for Win32 to cover cases other than wal_sync_method 2005-06-16 17:53:54 +00:00
postmaster Autovacuum loose end mop-up. Provide autovacuum-specific vacuum cost 2005-08-11 21:11:50 +00:00
regex I made the patch that implements regexp_replace again. 2005-07-10 04:54:33 +00:00
rewrite Change expandRTE() and ResolveNew() back to taking just the single 2005-06-04 19:19:42 +00:00
storage Remove BufferBlockPointers array in favor of a base + (bufnum) * BLCKSZ 2005-08-12 05:05:51 +00:00
tcop Autovacuum loose end mop-up. Provide autovacuum-specific vacuum cost 2005-08-11 21:11:50 +00:00
utils Tweak catalog cache management algorithms to reduce cost of 2005-08-13 22:18:07 +00:00
c.h Add comment about void* use in MemSet. 2005-07-21 15:16:30 +00:00
fmgr.h Avoid bare 'struct Node;' declaration --- provokes annoying warnings 2005-06-09 18:44:05 +00:00
funcapi.h Document get_call_result_type() and friends; mark TypeGetTupleDesc() 2005-05-30 23:09:07 +00:00
getaddrinfo.h Fix a few macro definitions to ensure that unary minus is enclosed in 2005-07-27 12:44:10 +00:00
getopt_long.h Some more missed copyright notices. Many of these look like they 2005-01-01 20:44:34 +00:00
Makefile Use 'cp' and 'chmod' in place of 'install' to install header files. 2005-03-25 23:22:54 +00:00
miscadmin.h Add SET ROLE. This is a partial commit of Stephen Frost's recent patch; 2005-07-25 22:12:34 +00:00
pg_config.h.in Update to autoconf 2.59 as well as updates of related scripts 2005-07-01 18:17:31 +00:00
pg_config.h.win32 Win32 8.1 stamp. 2005-01-18 14:39:46 +00:00
pg_config_manual.h Officially decouple FUNC_MAX_ARGS from INDEX_MAX_KEYS, and set the 2005-03-29 03:01:32 +00:00
pgstat.h Autovacuum loose end mop-up. Provide autovacuum-specific vacuum cost 2005-08-11 21:11:50 +00:00
pgtime.h Code spacing improvement, particularly *tm spacing. 2005-07-22 03:46:34 +00:00
port.h Fix up canonicalize_path to do the right thing in all cases (I think ... 2005-08-12 21:07:53 +00:00
postgres.h First phase of project to use fixed OIDs for all system catalogs and 2005-04-14 01:38:22 +00:00
postgres_ext.h Pgindent run for 8.0. 2004-08-29 05:07:03 +00:00
postgres_fe.h Tag appropriate files for rc3 2004-12-31 22:04:05 +00:00
rusagestub.h Fix a few macro definitions to ensure that unary minus is enclosed in 2005-07-27 12:44:10 +00:00
strdup.h Fix an obsolete file path mentioned in a comment. 2004-01-25 22:19:42 +00:00