In this blog series, I will be covering the requirements necessary for efficient and reliable database failover for cloud applications. I will compare with various solutions in the market today. It is my hope it will help you make better architectural decisions.

One of the features that Heimdall provides is excellent failover control for databases.  While vendors have good (or even great) solutions for their own products, it is often in very limit situations that this is provided.  Oracle RAC is well-known, solid solution. But, when you look under the covers, you find that there is a single point of failure for RAC–the database data store itself.  You can have multiple nodes on the front, talking to RAID over multipath connections, but if the actual data becomes corrupted, the entire system will fail.  While rare, this is not unheard of (

Reliability:  Oracle RAC is designed for low latency between the data store and the database nodes, which inherently restricts the geographic distance.  Oracle has a whitepaper that documents the constraints of RAC on so called “Stretched” or “Extended distance” clusters (, and in particular notes “Consequently, Oracle does not certify Oracle RAC on Stretched Cluster configurations” and “For a full DR protection Oracle recommends deploying an Oracle RAC together with a local and a remote Oracle Data Guard setup as described in the Maximum Availability Architecture (MAA).”

Usability: In a RAC+Data Guard setup, the complexity of failover and maintenance becomes a more significant factor vs. setting up a pure RAC cluster.  Heimdall can provide simplified failover configuration for such a setup over what Oracle provides, and can provide similar capabilities to other databases as well.

Cost: Oracle RAC is one of the most complete failover solutions in the market, but it is a huge cost to the customer. Heimdall is less than one-third the cost and can also support both Oracle and non-Oracle solutions.

In my next blog, we will review Amazon RDS failover options.