pgsql: Just-in-time background writing strategy.

Started by Tom Lanealmost 19 years ago1 messagescomitters
Jump to latest
#1Tom Lane
tgl@sss.pgh.pa.us

Log Message:
-----------
Just-in-time background writing strategy. This code avoids re-scanning
buffers that cannot possibly need to be cleaned, and estimates how many
buffers it should try to clean based on moving averages of recent allocation
requests and density of reusable buffers. The patch also adds a couple
more columns to pg_stat_bgwriter to help measure the effectiveness of the
bgwriter.

Greg Smith, building on his own work and ideas from several other people,
in particular a much older patch from Itagaki Takahiro.

Modified Files:
--------------
pgsql/doc/src/sgml:
config.sgml (r1.146 -> r1.147)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/config.sgml?r1=1.146&r2=1.147)
monitoring.sgml (r1.53 -> r1.54)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/monitoring.sgml?r1=1.53&r2=1.54)
pgsql/src/backend/catalog:
system_views.sql (r1.45 -> r1.46)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/system_views.sql?r1=1.45&r2=1.46)
pgsql/src/backend/postmaster:
bgwriter.c (r1.43 -> r1.44)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/postmaster/bgwriter.c?r1=1.43&r2=1.44)
pgstat.c (r1.165 -> r1.166)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/postmaster/pgstat.c?r1=1.165&r2=1.166)
pgsql/src/backend/storage/buffer:
bufmgr.c (r1.224 -> r1.225)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/buffer/bufmgr.c?r1=1.224&r2=1.225)
freelist.c (r1.60 -> r1.61)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/storage/buffer/freelist.c?r1=1.60&r2=1.61)
pgsql/src/backend/utils/adt:
pgstatfuncs.c (r1.45 -> r1.46)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/pgstatfuncs.c?r1=1.45&r2=1.46)
pgsql/src/backend/utils/misc:
guc.c (r1.421 -> r1.422)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/misc/guc.c?r1=1.421&r2=1.422)
postgresql.conf.sample (r1.229 -> r1.230)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/misc/postgresql.conf.sample?r1=1.229&r2=1.230)
pgsql/src/include/catalog:
catversion.h (r1.427 -> r1.428)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/catversion.h?r1=1.427&r2=1.428)
pg_proc.h (r1.472 -> r1.473)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_proc.h?r1=1.472&r2=1.473)
pgsql/src/include:
pgstat.h (r1.67 -> r1.68)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/pgstat.h?r1=1.67&r2=1.68)
pgsql/src/include/storage:
buf_internals.h (r1.92 -> r1.93)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/storage/buf_internals.h?r1=1.92&r2=1.93)
bufmgr.h (r1.107 -> r1.108)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/storage/bufmgr.h?r1=1.107&r2=1.108)
pgsql/src/test/regress/expected:
rules.out (r1.134 -> r1.135)
(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/rules.out?r1=1.134&r2=1.135)