This site was created to host online resources related to the Apress book Expert Oracle Exadata. The book was published in July of 2011 and was authored by Kerry Osborne, Randy Johnson and Tanel Poder. The technical reviewer was Kevin Closson. The primary purpose of this site is to provide online copies of the scripts used in the book and post errata as necessary. We expect to also use this site to answer questions related to the book. Please feel free to drop us a note with any questions or comments..

I have just started reading the book. The copy that I have has “Chapter 3″ printed at the top of every “right-hand-side” page in “Chapter 2″. DOnt know if this has been fixed or will be fixed in future printings. Thanks.
Hello,
I am reading your book “Oracle Exadata” with pleasure and interest.
I have some questions concerning the “cellblocks helped by minscn optimization” performance counter discussed in chapter 11. I understand from this explanation, that the database sends the minimum SCN at which any still active transaction started to the cells and that the cells compare this to the locking transaction’s start SCN in case they hit any locked rows. For transactions with a start SCN older than the minimum SCN sent by the database the cells can thus conclude that the transaction has already commited. The explanation in your book seems to suggest that the start SCN is stored in the ITL slot used for the transaction. The few internet ressources I found concerning this matter however claim that the ITL consists of the following components: Xid, Uba, Flag, Lck, Scn/Fsc and I found the following description for scn/fsc: “depending on the flag, the commit scn or the number of bytes of free space that would become available if this transaction committed (“free space credit”)” – i.e. no space to store the start SCN in the ITL entry!
The questions outlined above come down to 3 points:
1) Is my understanding of the explanation in chapter 11 correct?
2) Is the start scn of a transaction stored in the ITL (differently from what several documents claim) – has this maybe changed with Oracle 11g (which might explain different descriptions of the ITL entry still found on Internet)?
3) (If no to 2) and yes to 1)): Where can the cell find the transaction’s start SCN (without communicating with the database) in order to compare it with the minimum SCN received from the database?
Then I have one additional question regarding the minscn optimization:
4) Even if the cell can conclude that the transaction marked as locking a row in the blocked did already commit, isn’t it necessary to know if this transaction did commit before or after the query currently processed by the cell has started in order to know if the block can be used or if undo must be applied first for read consistency? And if this information is necessary, how can the cell get it without communicating with the database?
By the way I had a similar question regarding the “cell blocks helped by commit cache” where I would expect that the commit cache in the cell not only stores if a transaction did already commit or not, but also the commit SCN (or the most recent SCN at which the transaction was confirmed as not having committed) in order to determine if the block may be processed within the cell or if it needs to be shipped to the database for a read consistent clone to be created (or if the transaction’s state has to be asked again from the database).
Thanks a lot for your help
as well as for the great book you have written
kind regards
Martin Maletinsky