System Architecture 2-77
Write Types Describe Flushing Activity
IfOnLine is configured for more than one page-cleaner daemon process, the
LRUqueues are divided among the page-cleaner daemons for more efficient
flushing.
Foreground Write
If a database server process searches through theFLRU queues and cannot
locatean empty or unmodified buffer, the server process itself marks a page
forflushing. If the server process must perform buffer flushing just to acquire
a shared-memory buffer, performance can suffer. Writes that the server
process performs are calledforeground writes. Foreground writes should be
avoided. If you find that foreground writes are occurring, increase the
numberof page cleaners or decrease the value of LRU_MAX_DIRTY. (Refer to
page 5-17 for more information about tuning the values of the page-cleaner
parameters.)
LRU Write
Foreground writes alert the master daemon,tbinit, that page cleaning is
needed.Once alerted, the tbinit daemon wakes the page cleaners or, if none
have been allocated in this OnLine configuration, thetbinit daemon begins
pagecleaning. An LRU write occurs as a result of tbinit prompting, instead of
as a result of the page cleaners waking by themselves.
Chunk Write
Chunk writes are performed by page cleaners during a checkpoint or when
every page in the shared-memory buffer pool is modified. Chunk writes,
whichare performed as sorted writes, are the most efficient writes available
to OnLine.
During a chunk write, each page cleaner is assigned to one or more chunks.
Each page cleaner reads through the buffer headers and creates an array of
pointers to pages that are associated with its specific chunk. (The page
cleaners have access to this information because the chunk number is
containedwithin the physical page number address, which is part of the page
header.)This sorting minimizes head movement (disk seek time) on the disk
and enables the page cleaners to use the big buffers during the write, if
possible. (Refer topage 2-55.)