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

Home -> Community -> Mailing Lists -> Oracle-L -> RE: How do commits release row level locks?

RE: How do commits release row level locks?

From: Powell, Mark D <mark.powell_at_eds.com>
Date: Fri, 13 Feb 2004 08:46:00 -0500
Message-ID: <564DE4477544D411AD2C00508BDF0B6A1CE0A9E5@usahm018.exmi01.exch.eds.com>


Jonathan Lewis is probably the best person to answer this but here is my simplified explanation. Oracle does track which rows are locked. It does so in the interested transaction list, ITL, within the actual data blocks. Upon commit if the block is still in the buffer pool I believe that Oracle updates the block as necessary to clean up the ITL information then it updates the transaction information in the RBS header (see v$transaction). If the dirty block was flushed to disk prior to commit Oracle does not retrieve the block back into memory but rather the delayed block cleanout method is used to update the block information from the RBS information when the block is re-retrieved.

Oracle does not duplicate the row lock information in memory, which is why you cannot see which rows are locked unless you actually attempt to retrieve them. This reduces lock related memory costs and allows Oracle to support an almost unlimited number of concurrent rows locked providing enough RBS area is provided.

HTH -- Mark D Powell --

-----Original Message-----

From: oracle-l-bounce_at_freelists.org
[mailto:oracle-l-bounce_at_freelists.org]On Behalf Of Ryan Sent: Thursday, February 12, 2004 11:13 PM To: oracle-l_at_freelists.org
Subject: How do commits release row level locks?

Now Oracle does not track which rows are locked. How processes know when a lock has been released? I can't find it in the docs. I'm assuming there is something similiar to an SCN written to the block header of each row. However, the SCN would not be sufficient, since it does not identify whether the transaction is complete.



Please see the official ORACLE-L FAQ: http://www.orafaq.com

To unsubscribe send email to: oracle-l-request_at_freelists.org put 'unsubscribe' in the subject line.
--

Archives are at http://www.freelists.org/archives/oracle-l/
FAQ is at http://www.freelists.org/help/fom-serve/cache/1.html

-----------------------------------------------------------------
----------------------------------------------------------------
Please see the official ORACLE-L FAQ: http://www.orafaq.com
----------------------------------------------------------------
To unsubscribe send email to: oracle-l-request_at_freelists.org
put 'unsubscribe' in the subject line.
--

Archives are at http://www.freelists.org/archives/oracle-l/ FAQ is at http://www.freelists.org/help/fom-serve/cache/1.html
Received on Fri Feb 13 2004 - 07:46:00 CST

Original text of this message

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