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 -> latch-free SCN scheme (10.1.0.3)

latch-free SCN scheme (10.1.0.3)

From: Mladen Gogala <gogala_at_sbcglobal.net>
Date: Tue, 15 Feb 2005 01:53:05 GMT
Message-ID: <pan.2005.02.15.01.53.05.140316@sbcglobal.net>


In my alert.log I have the following text:

Mon Feb 14 20:29:29 2005
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
Picked latch-free SCN scheme 2
KCCDEBUG_LEVEL = 0
Using LOG_ARCHIVE_DEST_10 parameter default value as USE_DB_RECOVERY_FILE_DEST Autotune of undo retention is turned on. Dynamic strands is set to TRUE
Running with 1 shared and 10 private strand(s). Zero-copy redo is FALSE

What is "latch-free SCN scheme"? As far as I am aware, any transaction that needed to increase SCN, needed to acquire latch that was protecting SCN. Is it still the case? V$LATCHNAME, of course, tells a different story:

  1 select name,latch# from v$latchname 2 where name like '%SCN%'   3* order by 1
SQL> /

NAME                          LATCH#

------------------------- ----------
batching SCNs 110 change tracking consisten 155

t SCN

change tracking optimizat 154
ion SCN

flashback SCN barrier            159
flashback hint SCN barrie        161

r
NAME                          LATCH#

------------------------- ----------
lgwr LWN SCN 106 mostly latch-free SCN 105 ping redo on-disk SCN 108 redo on-disk SCN 107

9 rows selected.

What's the deal? If SCN acquisition is really latch free, ie does not require previous latch acquisition, that would be a great performance enhancement. If that is so, is that true for RAC as well? What about local and global SCN? Is there still a global SCN for the database and a local one for each instance? My world is falling apart! Moreover, what is "zero-copy redo"? Once upon a time, there was a parameter which was determining the maximum size of redo entry that was written directly to log buffer. Everything greater then that was first formatted in the process buffer, space was then allocated in the redo buffer (by acquiring redo allocation latch, of course), and when redo copy latch was acquired, the user buffer was copied into the log buffer. Am I correct in my understanding that all processes need to acquire only allocation latch and that they will write directly into the log buffer? No copy latch necessary?

-- 
Bug, noun: Son of a glitch
Received on Mon Feb 14 2005 - 19:53:05 CST

Original text of this message

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