Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Mailing Lists -> Oracle-L -> RE: Redo Copy Latch

RE: Redo Copy Latch

From: Gaja Krishna Vaidyanatha <>
Date: Fri, 8 Dec 2000 09:21:19 -0800 (PST)
Message-Id: <>

Hi Anil, Diego & the list,

I think I may have a clarification to your disagreement and it is related to a functionality change in how LGWR writes the redo entries from the log_buffer to disk. It stems from one of the "events" that cause LGWR to write - the 1/3rd full event.

Prior to Oracle8, if log_buffer were 'x bytes' in size, when there were 'x/3 bytes worth of redo entries' in the log_buffer, LGWR wrote the x/3 bytes to disk, allowing other server processes to continue writing to the remaining 2x/3 bytes. That was the whole point behind it being a 'circular buffer'. This occurred without any redo copy latches being taken away or frozen.

In Oracle8 that functionality got modified a little. The 1/3 full event really does not 'kick in' unless log_buffer was sized at 1Mb. So if log_buffer is less than 1Mb. in size, LGWR will wait for log_buffer to be full and then initiate the write. When that happens, it is only normal for the redo copy latches to be momentarily frozen or taken away (as the case may be), to prevent any writes to log_buffer (because it is already full).

The point I was trying to make in my original posting that LGWR itself should not take away any of the redo copy latches for the normal process of writing redo entries to disk. The subtle difference I am trying to point out is between the 'entire redo log buffer' getting flushed to disk vs. redo entries written to disk periodically (when 1/3rd full or every 3 secs.).

The need to flush the redo log buffer really will not arise if the 1/3rd full event kicks in (as needed). However, this doesn't happen if log_buffer is sized < 1Mb. To add a little more complexity to the problem, there is also the 'nuance' of the 'write ahead' feature of LGWR a.k.a. 'piggy-backed writes' and this occurs when multiple commit tokens are written to the log_buffer, because multiple transactions committed approximately at the same time and posted their tokens to log_buffer.

Hope that helps,


Gaja Krishna Vaidyanatha
Director, Storage Management Products, Quest Software Inc. Received on Fri Dec 08 2000 - 11:21:19 CST

Original text of this message