Monday, January 30, 2012

GoldenGate capture with compressed tables will be available soon!

  I've been told "Golden Gate will support compressed tables...soon" for literally years now by multiple people at Oracle.  My first SR on this was opened on March 29th, 2010, nearly 2 years ago!  That SR's resolution was to add me to bugs:

bugdb - 9416239 which tracks SUPPORT of OLTP TABLE COMPRESSION
bugdb - 9428399 which tracks exadata V2 HCC compression
bugdb – 9426065 - SUPPORT ORACLE COMPRESSED TABLES

  Mining compressed tables is a necessary requirement for many large databases that use CDC...especially databases in Exadata, where you're all but expected to make use of Hybrid Columnar Ccompression (HCC). Think of all the benefits of compression in your database:

1. Compressed data means smaller datafiles, which means faster restore times, improving your RTO.

2. Your 8k block actually stores more than 8k of data which means you need to read/write fewer blocks.  Since the blocks are stored compressed in memory, it also means you increase the amount of data in the same size of your db cache. As the blocks move from memory to disk, it improves your potential IOPS capacity.  Ok, not really increasing IOPS capacity, but increasing the amount of data you can move per IO, which has a similar effect.

3. Compression means less storage requirements which in turn mean less storage costs.

In a previous post, I mentioned how, when I first started looking at Golden Gate with Exadata, I found that not only were compressed tables not captured, if GG came across a logged change of a compressed table in the archivelogs or redo, it would abend...even if it was a table that was excluded from capture.  We submitted a prio 1 SR and Oracle created a patch for this-so we were able to begin using GG with Exadata...but all tables that used compression were excluded from GG capture because of this limitation-put another way, we were forced to not compress tables that needed to be captured.  Those were all the biggest, most compressible tables.  This forced my client to use much more storage in their Exadata cells than they anticipated, and today they're preparing to buy additional storage cells, partially because of this limitation.

Imagine the fun they had explaining to their management they need hundreds of thousands of dollars to purchase additional storage from Oracle, ultimately due to an Oracle bug. :)  Come to think of it...no wonder it took Oracle 2 years to fix this! :)

Not to get too off track, but for a truly high-performance database, you should really test how advanced compression affects your system performance.  Your milage will vary, but based on my testing, I would expect it to improve your performance.  See http://otipstricks.blogspot.com/2011/02/exadata-index-dropping-and-compression.htmlThere are other huge performance improvements 11.2.0.3 offers for Exadata, especially for OLTP environments.  

Performance aside, IMHO you should begin to prepare for the upgrade to 11.2.0.3 PB 3 to take advantage of this new GG feature/bug fix, so you're ready to go when the new version of GG is released. 

I have no special knowledge from a friend at Oracle this time...I'm gleaning this from a statement in a PDF from Douglas Reid, Oracle GoldenGate product mgmt.  GG 11.2.1 will have tighter integration with XStream Out API (Capture), which means GG will be using a call to a procedure already in the Oracle kernel.  That internal call will be what handles OLTP and HCC compression, which to this point hasn't been possible.  Soooo...based on the schedule in that PDF of the approx March/April release of GG 11.2.1, there must be, prior to that time,  a database change to allow that.  Since we can't do it in 11.2.0.3 PB2 and its going to happen in the next several weeks...it must be coming in PB3.  The release schedule "remains at the discretion of Oracle"...but short of mind reading, this is the best we've got.

So, 11.2.0.3PB3 will be out w/in the next few weeks.  Based on the previous release cycles of patch bundles, it will be sooner than that.  I would guess sometime this week Exadata 11.2.0.3 PB 3 will be released (it requires Exadata Storage Server 11.2.2.4.)  Check Metalink note 888828.1 for updates...by the time you read this, you'll likely see 11.2.0.3 PB3 listed in that note...if not, check back in a few days. (Add that note to your MOS favourites by clicking the little star on it.  Its the best source to find what's currently GA.)

To sum it up, when you use GG 11.2.1 with Exadata 11.2.0.3 PB3, you'll be able to FINALLY mine compressed tables in Goldengate.
 I could be wrong, but my impression is that a lot of people at different companies are using Goldengate with Exadata.  "Extreme Goldengate Performance on Exadata" is one of my most popular posts.  Given the cost per GB of storage in Exadata, compression could save you a *huge* amount of money.  Once GG 11.2.1 is released, the only reason I can think of NOT to compress everything you can is that your access patterns don't work well with it...assuming the budget that was big enough to buy Exadata is also big enough to license compression. ;)

After ~2 years of waiting for these 3 bugs to be fixed, the wait is finally over.

Wednesday, January 4, 2012

Yet another plug for a great book

If you know anything about Oracle databases, you've likely heard of Jonathan Lewis and the great work he's done in the past on Oracle internals (why things do what they do...what's going on under the hood of the database)...especially his work on the cost-based optimizer.  I know he's inspired me to be much better than I would have been, because after reading his books, I was humbled by my relative ignorance, and became desperate to improve.  He's literally an alien of extraordinary ability....


We exist in a field filled with many geniuses.  What sets him apart from all but very few is his ability to bring people to his depth of understanding...his ability to explain complicated things is unmatched...but come to think of it...many of the "greats" have this ability.  Carry Millsap, Tanel Poder, Richard Niemic, Kerry Osborne...not to mention many others.  Hmm...maybe that's the difference between obscurity and notoriety...


I bring this up because I've been reading one of his newest books, Oracle Core: Essential Internals for DBAs and Developers.  His approach to explaining things in the book is interesting...he's recognized the circular manor of Oracle internals...you have to have a clue about everything before you can get a little depth about something in particular.  You have to have a little depth about everything before you can get deep into anything.  This is how he explains things.  By the time he gets into real depth, he's already brought you to a place where its just a small step, rather than a leap.  This makes his book interesting to people who have used Oracle for years and newbies too.


I'll add it to my book list on the right....