Re: CBC Latch contention in 10g

  • From: "Jonathan Lewis" <jonathan@xxxxxxxxxxxxxxxxxx>
  • To: <oracle-l@xxxxxxxxxxxxx>
  • Date: Thu, 21 Oct 2004 17:38:16 +0100

I don't know if there is any published material
on this - I think I got the important bit of it from
Steve Adams' masterclass.

It's likely that the sharable cache latch used some
of the time is better than never having it at all - and
Oracle does keep finding new ways to (a) reduce
the latch acquisition, and (b) switch to single latch
reads anyway, so scalability does keep improving.

Where did you see a fanfare about sharable latches,
I didn't spot it. I'd be interested to see how it was


Jonathan Lewis
The Co-operative Oracle Users' FAQ
Optimising Oracle Seminar - schedule updated Sept 19th

----- Original Message ----- 
From: "Smiley John - IL" <SMILEYJ@xxxxxxxx>
To: "'Jonathan Lewis'" <jonathan@xxxxxxxxxxxxxxxxxx>
Cc: <oracle-l@xxxxxxxxxxxxx>
Sent: Thursday, October 21, 2004 3:57 PM
Subject: RE: CBC Latch contention in 10g

: Thanks Jonathan.  You've given me something to think about.  It had not
: occurred to me that the buffer header would have to be modified in order
: inspect the buffer for consistent read purposes and that the CBC latch 
: not be taken in a sharable mode.  This puts some rather severe limitations
: on CBC latch sharing and makes me wonder why Oracle bothered to implement
: it.  It would also seem to place some severe limits on scalability even in
: read-only environments.  CBC latch sharing was announced with some 
: so I had expected it to be of more consequence.
: I would like to understand this better.  Any references you can provide
: would be appreciated.  I've read most of the easily obtainable literature:
: Cary's Optimizing Oracle Performance, both of Tom Kyte's outstanding 
: Richmond Shee's Oracle Wait Interface book, Steve Adam's Internals book, 
: your Practical Oracle 8i book to name a few.   However, none of these 
: deep enough into what exactly happens during a buffer get for me to latch
: onto the fact (pun intended) that the buffer header has to be modified if
: all I want to do is read the buffer.  In general, there's a lot more going
: on under the covers that none of the published resources I've come across 
: far seem to address.


Other related posts: