Welcome to Expert Oracle Exadata

By admin3 Comments




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..


3 Comments to “Welcome to Expert Oracle Exadata”

  1. Martin Maletinsky says:


    I have a question regarding the architecture of Exadata as explained in chapter 1, in particular with respect to the fact that “no storage devices are directly presented to the operating system on the database servers” as stated on page 14 and exemplified by the output starting on page 14.
    1) So when a DB process wants to write data to the files / read data from the files, it must use different logic depending if it runs on a Exadata platform or not. If on an Exadata platform it sends a corresponding request to the storage cell (using the LIBCELL library I suppose?), otherwise it issues a read/write call to the OS to access the corresponding (data)file. Is my understanding correct or did I misunderstand something?
    2) How does a DB process determine which storage server it needs to send a read/write request to (or are all requests broadcast to every storage server)?
    3) In non-Exadata platform, the ROWID contains information in which block/in which file the row is located. Does this semantic not apply on Exadata platforms (otherwise the DB processes would have to be aware of the files) – how is a ROWID for a given row generated in this case (e.g. in order to reference the row from within an index)?

    Thanks a lot for any help
    kind regards
    Martin Maletinsky

  2. Kamran Khan says:

    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.

  3. Martin Maletinsky says:


    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

Leave your Comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Blue Taste Theme created by Jabox