LRU skip

In the 102B06 release, one of the most beneficial improvements is the LRU skip.
Here is a general idea about LRU. LRU is one of the dozens of latche Progress uses to ensure the buffer pool is accessed one at a time. Unlike many other latches, such as buffer latches, there is one of LRU latch. It has two ends, the LRU end and the MRU ends, Least recently used and the Most recently used. It is busy keeping the chain update to ms; other top of that, every database activity, reads and updates, either read from disk or memory, LRU is involved, it has to make sure there is a place for the new comers, etc. As one can imagine that LRU usually is the single bottleneck in the system performance, it requires a lot of CPU cycles. With the LRU skip, the two ends(LRU and MRU) are not kept up to ms(millisecond) anymore, it will "skip" however many skips you specify. This can dramatically reduce your CPU usages.

Rich Banville at Progress tested with a Solaris box (I think it was Soloaris 8), readprobe testing, his test shows that the LRU skip 100 is the optimal number, anything above that( to 1000 even ) didn't make much difference. That will depend on the randomness and the intensity of the test.

Further more, now the LRU is no longer the busiest latch in the pool of latches. the LRU gate is flow smoothly now, and other latches has come to the attention such as the BHT, the buffer hash table latch.

The trade off is the buffer hit ratio. Naturelly, when the chain is not updated with every activity, the buffer reads might be reading some "out of update" information. I would consder 95% buffer hit ratio acceptable though.