The Real Cost of Oracle RAC

coins

Storage for DBAs: In my previous article (in this mini-series on database economics) I explained how to calculate the cost of a mid-range Oracle database system. My motive was a concern that many people working either directly or indirectly with database software are uninformed about just how expensive it is – particularly in comparison to the cost of hardware. And in this article I want to cover the great granddaddy of Oracle licenses costs: Oracle Real Application Clusters (RAC).

I also want to show you a little-known trick that can allow you to build a two-node fully active/active RAC cluster for a fraction of the price you would normally expect to pay.

But first, let’s talk about RAC…

Oracle RAC: High Availability For the Masses

There was a time, long ago, when big servers were very expensive. Many people ran Oracle on RISC-based UNIX systems, which had limited scalability in terms of the number of CPU cores and the maximum amount of physical memory. Oracle recognised this scalability issue and built a software solution for it, initially called Oracle Parallel Server (OPS). If you never used OPS in anger you should ask some of the grizzled, battle-scarred veterans who did how they fared against it, but at least in theory it allowed customers to scale out when scaling up wasn’t really possible.

However, things change – and nowhere more so than in IT. The days of big iron RISC systems seem long ago and nowadays (comparatively) cheap multicore x86 hardware is the norm. Scaling up to 80 cores in a server is not unusual, so the need for a software scalability solution is less strong than it was. However, Oracle knows a thing or two about staying at the top, so OPS became Real Application Servers and the scalability marketing message got overtaken by a new claim: high availability. Yes, Oracle RAC allows you to run one database across multiple nodes so if you look at it the right way that’s increasing system availability.

Of course, If you look at it another way (as I do), increasing the number of nodes is actually increasing the risk of failure to a single node. Plus, adding a whole raft of cluster functionality such as cache coherence, cluster filesystems and cluster ready services is just adding complexity, which is the enemy of availability. Yet everyone in the RAC game lives with the same shared deception: that losing a whole node does not count as a service outage. Sure, you get a whole load of users that get kicked off. Ok, so you have to bounce a whole set of application servers. But hey, technically it wasn’t a full outage so the SLAs weren’t affected. Er… ok… I think I’ve made my thoughts clear on this before.

Oracle RAC: The Expensive Way

There are two reasons why RAC can be expensive, or to put it another way two dimensions. The price goes up as the license cost increases, but it also goes up in multiples as the architecture scales out to multiple nodes.

In general, RAC is a feature of Oracle Enterprise Edition – in fact looking at the prices on the Oracle Store as I write this it’s the joint-most-expensive option (along with Oracle OLAP) priced at $23k per core (list)… If you consider that the Enterprise Edition license is $47.5k per core then that’s nearly half as much again. Don’t forget that Oracle’s core multiplication factor table determines that we need to multiply these costs by 0.5 for Intel Xeon processors, which is what I’m using in this example (see the first article in this series if you don’t know what this means).

oracle-rac-price-assumptions

Let’s state some assumptions for this imaginary Oracle RAC cluster we are building. It will have 4 nodes (16 cores per node) and 20TB of usable disk storage. We’ll also assume that in buying the licenses we got a 60% discount. We’re looking at the three-year price and, as always, the maintenance costs us 22% of the net license cost. I’m including the Oracle Diagnostics Pack ($5k per core) in the license cost too – surely nobody can cope without it these days?

oracle-rac-price-breakdowns

The total cost over three years, just for hardware, software and support (i.e. discounting TCO-type calculations like power, cooling, etc) is now up at £1.8m. That’s a relatively large amount of money! But what I find really interesting is the proportion that goes to the database vendor compared to the proportion that is spent on hardware:

oracle-rac-4node-price-breakdown

The storage (which I naturally have an interest in) is just 8% of the total cost, while the database vendor’s products and support services comprise 89% of the total cost. This is where database consolidation starts to make sense (more databases on the same hardware means better value for money from the core-based licenses). It’s also where flash memory storage makes sense, because it allows a far better return on this massive investment: firstly by unleashing applications to run at the speed of memory, and secondly by unlocking (expensive) CPUs which are otherwise stuck waiting on I/O from slow disk storage systems.

Oracle RAC: The Inexpensive Way

But wait, I promised you an alternative to the costly system above. What is it? The answer can be found buried deep within Oracle’s Software Investment Guide (page 11 of the current published version) where we find the following information: from Oracle 10g onwards, Oracle Standard Edition includes the Real Application Clusters Option provided customers use Oracle Clusterware and ASM. Since Standard Edition is limited to a maximum of 4 CPU sockets (not cores!!) this effectively means a two-node system using two-socket servers.

That’s still an amazing revelation – it’s basically RAC (with certain caveats) for free! With the right choice of high-end CPU, a two-socket server can deliver massive performance. Let’s have a look at the cost of a two-node RAC system running on Standard Edition using the same assumptions from above [massive thanks to Doug (see comments below) for pointing out my mistake - now corrected - that Standard Edition is licensed by the socket not the core and that the core multiplication factor therefore does not apply]:

oracle-se-rac-price-breakdowns

Now many people will think, “Hang on I can’t cope without Enterprise Edition” … but for this level of saving, isn’t it worth giving that some closer analysis? The real bonus here is that, in only paying licenses by the socket, you can achieve a massive benefit if you use the fastest processors with the largest number of cores and not pay any penalty.

oracle-se-rac-2node-price-breakdown

The price of Standard Edition RAC is 87% of the price of our previous configuration. (If you were to compare a like-for-like scenario where 2 node Enterprise Edition RAC moved to 2 node Standard Edition RAC the saving would instead be £702.5k or 76%)

Conclusion

Everything here is just speculation, based on the information available from Oracle at the time of writing. You should not construe my remarks as guarantees or facts, but instead do your own research and talk to your local database vendor’s representatives.

The point of writing this article is that technical people don’t always have a handle on price, because in some organisations they don’t always need to. But when the technical design has such a dramatic effect on the price, I think we all ought to be looking at the bigger picture and taking the time to work out the implications of our choices.

Software, as they say in Redwood Shores, doesn’t come cheap…

About these ads

14 Responses to The Real Cost of Oracle RAC

  1. Doug says:

    In North America. the licensing for SE is by socket, not by core, at USD 17.5K per socket. A maximum of 4 sockets can be licensed in an SE cluster. There is no “core factor” multiplier for licensing by socket. RAC is included at no additional charge. There is a maximum of 4 sockets that can be licensed in an SE cluster.

    So for license costs, it is 4 * $17.5K, this is even more affordable than your example. There are some downsides:
    - 2 nodes does not make a quorum
    - it is not horizontally scalable (can’t add nodes)
    - not possible to license the diagnostic and tuning packs

    Where do I sign up for a 60% discount off of list price? :)

    • flashdba says:

      Doug – thank goodness I have readers who are smarter than me. I’m such an idiot, how did I make that mistake?

      You are absolutely right and I have updated the post above to use socket-based license prices with no core multiplication factor for standard edition. The saving went from 66% to 87%… much better!

      You are right about the downsides, but I believe that all pros and cons need to be looked at in relation to the price paid for each feature. It’s just possible that, for some systems, this incredible price difference may justify a change in design.

      The 60% discount on list price is entirely fictional in my imaginary world :-)

  2. Reblogged this on michaelstruik and commented:
    Cool

  3. Look at all those foreign coins…. could at least have used some of the Kingdom… :)

  4. Weidong Zhou says:

    SE with free RAC seems an interesting idea. However, many of my clients I work with are using EE. If have to use EE, it’s cheaper to buy a Quarter Rack Exadata with RAC ONE. From my experience, the performance is quite impressive and much cheaper than full RAC option. One major downside for RAC ONE is that it does cold failover, not hot failover like RAC.

    • flashdba says:

      That’s great if you can afford Exadata, but what if your database runs 11.1 or 10g? Or your systems run on IBM, HPUX or Windows? Or, heaven forbid, you don’t enjoy the idea of vendor lockin?

  5. kellyl122 says:

    Nice analysis and very impressive comparison.

    We have an on demand webinar ”Why Oracle Standard Edition should still be on the menu’ that explores this topic from the perspective of the massive savings available when using SE and RAC and also how to make up for some of the loss of features such as Data Guard. You can view it here http://www.youtube.com/watch?v=jd5rzt82qEc

    It really is incredible how viable an option using SE with RAC is and great work spreading the word on this secret!

  6. Vijay says:

    For me, having great I/O throughput does not mean you need to run a scale down Software. Being technical and a DBA, it is best to argue on technical merits of RAC compared to non-RAC.
    The price of RAC ( do not want to be speculative ) could always be discounted. Any blog with respect to pricing is time sensitive. Just like great SSD technology help I/O systems, tomorrow, you will have more cores and efficient servers. With Oracle 12c moving in that direction of doing more with less, you could argue that small shops are better off with no rac ? or calculate business impact of no HA ?
    Also, if you already have transferable EE licence when you want to do a H/W refresh, then you only have a maintenance cost ?

    In the big picture, the percent of revenue that goes to IT is very low. Now, in that small amount, if why haggle and compromise between H/W and software refresh ? Just have the Best H/W and EE. :)

    • flashdba says:

      Hi Vijay

      I believe it’s the responsibility of everyone technical to at least have a basic understanding of the cost of each solution. Too many organisations abstract the pricing of solutions from the design, only bringing them together at a higher level during “cost saving” exercises or audits.

      The aim of this article is therefore to give technical people a basic guide to the price of RAC and other Oracle options. You are correct that the prices will change over time, but the fundamental proportions are likely to remain fairly static.

      If you work in a business where the cost is not as important as the function, you are very lucky!

  7. Rob says:

    Interesting article and something I’ve been looking into quite a lot recently. One outstanding concern I have is that from reading the Oracle Database Licensing guide (http://www.oracle.com/us/corporate/pricing/databaselicensing-070584.pdf) it looks like you have to be careful as to the processor platform you run SE on:

    “When licensing Oracle programs with Standard Edition One or Standard Edition in the product name, a processor is counted equivalent to a socket; however, in the case of multi-chip modules, each chip in the multi-chip module is counted as one occupied socket.”

    Could be pricey if for example you deploy SE onto a Xeon processor platform that has the cores implemented as separate chips on the processor module.

    Cheers,
    Rob.

    • flashdba says:

      Rob

      You’re absolutely right. Although since the document contains a footnote indicating that it is for educational purposes only and does not constitute part of a contract, you’d probably have to go and check any direct agreements you have in place with Oracle to know what licenses you require. You certainly wouldn’t want to make any assumptions as they might turn out to be costly!

      For tiresome legal reasons I must point out that I strongly urge all Oracle users to ensure they are fully and appropriately licensed and have the relevant agreements in place in accordance with any applicable laws. Yawn.

      • Rob says:

        Another thing I was trying to understand was whether the 4 “sockets” limit for SE applies to each node of the cluster or to the cluster as a whole i.e. can I have a RAC cluster consisting of 2 x 4 “sockets” or only 2 x 2 “sockets” making up 4 in total …

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 670 other followers