
2-60 IBM Informix OnLine Database Server Administrator’s Guide
How a User Process Acquires a Buffer
The following example shows how the value of LRU_MIN_DIRTY is applied
to the buffer pool to arrive at the number of page buffers in an MLRU queue
that, when reached, can signal a suspension of page cleaning:
BUFFERS specified as 8000
LRUS specified as 8
LRU_MIN_DIRTY specified as 50
Number of buffers in the MLRU queue when cleaning can be suspended
is equal to (Total buffers/Number of LRU queues) multiplied by the
percentage specified by LRU_MIN_DIRTY.
Buffers in MLRU = (8000/8) * 50%
Buffers in MLRU = 1000 * 0.50
Buffers in MLRU = 500
Refertopage 2-74foradescriptionofdatabufferflushing.Refertopage 5-19
for more details about tuning the values of LRU_MAX_DIRTY and
LRU_MIN_DIRTY.
How a User Process Acquires a Buffer
OnLine shared-lock buffering allows more than one OnLine user process to
simultaneously access the same buffer in shared memory. OnLine provides
thisconcurrencywithoutaloss in process isolation by usingbufferlocksand
three categories of lock access (share, update, and exclusive).
The buffer-acquisition procedure comprises seven steps:
1. Identify the data requested by physical page number.
2. Determine the levelof lock accessneeded by theuserprocessfor the
requested buffer.
3. Attempt to locate the page in shared memory.
4. Ifthepageis notinsharedmemory,locateabufferinanFLRUqueue
and read the page in from disk.
5. Proceed with processing, locking the buffer if necessary.
6. After the user process is finished with the buffer, release the lock on
the buffer.
7. Wake waiting processes with compatible lock access types, if any
exist.
Comentarios a estos manuales