Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: difference between cache buffer lru chain and cache buffers chains

Re: difference between cache buffer lru chain and cache buffers chains

From: Jonathan Lewis <jonathan_at_jlcomp.demon.co.uk>
Date: Fri, 24 Mar 2006 07:53:26 +0000 (UTC)
Message-ID: <e008hm$df$1@nwrdmz02.dmz.ncs.ea.ibs-infra.bt.com>


"Mladen Gogala" <gogala_at_sbcglobal.net> wrote in message news:pan.2006.03.24.04.58.46.877593_at_sbcglobal.net...

>

> Cache buffer LRU chain no longer exists as of version 8i. Buffers maintain
> something called "touch count" which is increased each time buffer is
> accessed. Using touch count instead of LRU chain avoids use of latches and
> increases concurrency.

The LRU chains still exist - the kernel still needs a way of deciding __quickly__ which buffers are candidates for ejection. But the touch count mechanism means that the buffer (header) doesn't have to be moved to the top of the chain every time it is visited. Instead, when the buffer header gets to the end of the chain, it becomes the next candidate for eviction, and may be evicted or promoted depending on its touch count.

Your conclusion about reducing latch activity and increasing concurrency is correct, though. Most of the LRU related latch activity occurs as the chains are modified - and the touch count mechanism was designed to reduced dramatically the need for moving blocks around the chain.

-- 
Regards

Jonathan Lewis
http://www.oracle.com/technology/community/oracle_ace/ace1.html#lewis

The Co-operative Oracle Users' FAQ
http://www.jlcomp.demon.co.uk/faq/ind_faq.html

Cost Based Oracle: Fundamentals
http://www.jlcomp.demon.co.uk/cbo_book/ind_book.html
Received on Fri Mar 24 2006 - 01:53:26 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US