Pages used in the buffer pools are processed in two categories: Random, pages read one at a time, or Sequential, pages read by prefetch. These pages are queued separately as the Random Least Recently Used queue (LRU) or Sequential Least Recently Used queue (SLRU). The percentage of each queue in a buffer pool is controlled by the VPSEQT parameter.
This threshold is hard to adjust and often requires two settings -- one setting for batch processing and a different setting for online processing. The way that you process data between the batch and on the line processes often differs. Batch is more sequentially processed and online is processed more randomly.
DB2 breaks up these queues into multiple LRU chains. As a result, there is less overhead for queue management because the latch that is taken at the head of the queue will be latched less because the queues are smaller. Multiple subpools are created for a large virtual buffer pool and the threshold is controlled by DB2, not to exceed 4000 VBP buffers in each subpool. The LRU queue is managed within each of the subpools to reduce the buffer pool latch contention when the degree of concurrency is high. Stealing these buffers occurs in a round-robin through the subpools.
First-in first-out (FIFO) can also be used instead of the default of LRU. FIFO always moves the oldest pages out of the queue. Using FIFO decreases the cost of doing a GETPAGE operation and reduces internal latch contention for high concurrency. However, you should use FIFO only where there is little or no I/O and where table space or index is resident in the buffer pool.
You will have separate buffer pools with LRU and FIFO objects. You can set separate buffer pools using the ALTER BUFFERPOOL command and specifying the PGSTEAL option for FIFO. LRU is the PGSTEAL option default.
|
Copyright © 2013 CA Technologies.
All rights reserved.
|
|