Tuesday, January 18, 2011

In Memory Undo

In 2008, Zagreb, I attended 3 days presentation "Reactive Performance Management Intensive", by Craig Shallahamer founder of OraPub. This was a great presentation on a many features I have to admit I really knew nothing about.

So, in some direct talk with Craig, I asked him where does he get this rare knowledge, because I have never seen so deep understanding of very cool Oracle subjects. And the best of all most of them are never shown around Internet in written manuals? He answered me: "I read US patents from Oracle and try to connect new features with themes that they have copyrighted!" I was amazed with an answer and this approach took me in one moment for his follower.

One of it's presentation part was "In-Memory Undo (IMU)" where Craig friendly admit that he has a doubt able slide(s) from that area. So I was promised that he'll make review and let us now the result of it's changes. Regardless Craig react very soon (22nd January 2009) I have forgotten for that promise. But recent article on DBA Village remind me on this. So I decided to share original document that help a lot to understand the whole idea of IMU.

PDF can be downloaded for free from Craig's WEB site

For those who doesn't want to read the whole document here is briefly about IMU:
  • In a nutshell, “traditional” undo uses physical blocks, just like any other segment. If a query needs to read an undo block to maintain read-consistency, it still has to go through all the latch and potentially I/O overhead of any other query. Additionally (and this is probably new for many of us, but now seems obvious), undo block changes also must maintain redo information for recovery purposes.
  • In-memory undo replaces undo blocks with an in-memory control structure called an IMU node. Instead of writing a change to an undo buffer, undo is written to the IMU node and persists in memory even after commit. A read-consistent query needs none of the overhead associated with physical blocks, so speed is dramatically improved.
  • Craig’s tests showed a 21% drop in CPU time and a 6.5% drop in wall-clock time for a load test that used IMU versus one that used physical undo.
  • He attributes the not as dramatic wall-clock improvement to I/O overhead that isn’t reflected in the CPU timing.

What to say at the end but respect Craig, great respect to you and your work!

No comments:

Post a Comment