Background writer committed - Mailing list pgsql-hackers

From Jan Wieck
Subject Background writer committed
Date
Msg-id 3FBB991B.5010402@Yahoo.com
Whole thread Raw
Responses unsubscribe  ("John Liu" <johnl@emrx.com>)
Re: Background writer committed  (Bruce Momjian <pgman@candle.pha.pa.us>)
Re: Background writer committed  (Shridhar Daithankar <shridhar_daithankar@myrealbox.com>)
List pgsql-hackers
I committed the first part of the background writer process. We had a 
consensus on attempting to avoid write() calls from regular backends, 
but did no come to any conclusions what to do to force the kernel to 
actually do some IO.

Consequently, this patch is a separate process launched by postmaster, 
that periodically write()'s out "some" dirty buffers in LRU order. This 
causes the buffers returned for replacement (when a backend needs to 
read in a page) to be clean allways. The process does no sync(), fsync() 
or any other calls thus far. Nothing has changed in the checkpoint logic 
either.

The configuration options controlling the process are all PGC_SIGHUP:

# - Background writer -
#bgwriter_delay = 200       # 10-5000 milliseconds
#bgwriter_percent = 1       # 0-100% of dirty buffers
#bgwriter_maxpages = 100    # 1-1000 buffers max at once

Delay is the number of milliseconds to wait between loops. If there was 
nothing to do at all in one loop (all buffers clean), then the process 
will sleep for 10 seconds.

Percent is the percentage of "dirty pages" to write per loop. This is 
independant of the size of the buffer pool. If percent = 0 the 
postmaster will not start the process at all.

Maxpages is an upper bound to prevent the background writer from 
producing a write storm if a sequential operation causes all pages of a 
large buffer pool to be dirtied at once.


Jan

-- 
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== JanWieck@Yahoo.com #



pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: ECPG: "EXEC SQL CREATE SCHEMA foo" Broken
Next
From: Andrew Dunstan
Date:
Subject: Re: Build farm