> My plan is to create another background process very similar to 
> the checkpointer and to let that run forever basically looping over that 
> BufferSync() with a bool telling that it's the bg_writer.

Why not use the checkpointer itself inbetween checkpoints ?
use a min and a max dirty setting like Informix. Start writing
when more than max are dirty stop when at min. This avoids writing
single pages (which is slow, since it cannot be grouped together
by the OS).

Andreas

Wed, 5 Nov 2003 17:01:27 +0100
"Zeugswetter Andreas SB SD" <ZeugswetterA@spardat.at>
Re: Experimental ARC implementation
Zeugswetter Andreas SB SD wrote:

>> My plan is to create another background process very similar to 
>> the checkpointer and to let that run forever basically looping over that 
>> BufferSync() with a bool telling that it's the bg_writer.
> 
> Why not use the checkpointer itself inbetween checkpoints ?
> use a min and a max dirty setting like Informix. Start writing
> when more than max are dirty stop when at min. This avoids writing
> single pages (which is slow, since it cannot be grouped together
> by the OS).

Current approach is similar ... if I strech the IO and syncing over the 
entire 150-300 second checkpoint interval, grouping in 50 pages then 
sync()+nap, the system purr's pretty nice and without any peaks.


Jan

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


Wed, 05 Nov 2003 11:48:11 -0500
Jan Wieck <JanWieck@Yahoo.com>
Re: Experimental ARC implementation