Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: Asynchronous Commit in Oracle Database 10g R2
"Bart the bear" <bartthebear_at_gmail.com> wrote in message
news:1126037870.752485.105620_at_g47g2000cwa.googlegroups.com...
> Can you give us some more info about the private redo threads? Where
> can we read something about them? Is this anything like the ancient
> mechanism for discrete transactions, which wrote in its private redo
> log buffers?
> The phrase "small transactions" sounds remarkably like
> "discrete transactions". Is this the same feature that was used for
> cheating on benchmarks?
>
There is some similarity, but my memory of discrete transactions was that it pinned the data blocks for the duration of the transaction, didn't write any undo, and then write the redo records and changed the data blocks on commit. Consequently you had to make sure that your transactions really were in and out very quickly, and you could have problems with parent/child and general read-consistency (because of the limitation about visiting each block only once).
Private threads does the full undo/redo processing, and doesn't pin the datablocks for the duration, it simply starts by building much larger redo streams in a private redo buffer, and then switches to the public buffer on commit, or when you hit the limiting size for a redo record.
Check the alert log for a line like:
Running with 2 shared and 18 public threads (my machine has 2 CPUs, hence the 2 above, I assume) and the limit of a small transaction, as indicated by:
Maximum redo generation record size = 120832 bytes Maximum redo generation change vector size = 116476 bytes
-- Regards Jonathan Lewis Cost Based Oracle - Volume 1. Estimated publication date Nov 2005 http://www.jlcomp.demon.co.uk/faq/ind_faq.html The Co-operative Oracle Users' FAQ http://www.jlcomp.demon.co.uk/appearances.html Public Appearances - schedule updated 8th July 2005Received on Wed Sep 07 2005 - 01:18:41 CDT