With RAC, Oracle has to maintain "cache coherency". Because there's more than one instance, and therefore more than one SGA, a block can reside in more than one SGA, and the usual locking mechanisms of a single instance aren't sufficient. If instance A is making changes to a block, and instance B wants to make changes, instance B has to wait, and then have the block transferred to its SGA over the cluster interconnect before it can make changes. These waits will usually show up as "gc buffer busy" waits, "gc" meaning "global cache." Oracle makes a big deal of "Cache Fusion", which transfers blocks over the interconnect, but in reality if you have a lot of inter-instance contention for blocks, performance will usually be very poor. Paul Baumgartel CREDIT SUISSE Information Technology Prime Services Databases Americas One Madison Avenue New York, NY 10010 USA Phone 212.538.1143 paul.baumgartel@xxxxxxxxxxxxxxxxx www.credit-suisse.com ________________________________ From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of Ric Van Dyke Sent: Friday, May 09, 2008 2:52 PM To: ricks12345@xxxxxxxxx; oracle-l@xxxxxxxxxxxxx Subject: RE: does oracle use block level locking with RAC? There are locks and then there are locks. Your right Oracle locks ROWs not blocks. However, when in RAC only one instance "owns" the block at a given time. I forget all the techno garble to describe the mechanism right now but when another instance wants to change a block it requests to be the owner of that block if it isn't at the time the change is being made. So it sure seems like a lock because you can't access the block until you own it. But it's not a lock in the sense that most of us think of a lock. Is that confusing enough? :-) ----------------------- Ric Van Dyke Hotsos Enterprises ----------------------- Hotsos Symposium 2009 dedicated to performance and nothing but performance March 8 - 12, 2009 in Dallas, Texas Be there. ________________________________ From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of Rick Ricky Sent: Friday, May 09, 2008 2:39 PM To: oracle-l@xxxxxxxxxxxxx Subject: does oracle use block level locking with RAC? I saw on a board somewhere that someone is having deadlock issues due to block level locking with Oracle RAC? I thought Oracle always did row level locking on everything? Could this be a mis-perception with something else? ============================================================================== Please access the attached hyperlink for an important electronic communications disclaimer: http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html ==============================================================================