I feel like some kind of dubious character from a crime movie: "Psst, buddy! Wanna cloud database that's non-stop, geographically and elastically scalable? And it's also ACID compliant, roughly 75% of the cost of using Oracle, good at hybrid workloads, SQL-compliant, ridiculously easy to install, equally easy to manage, and runs on multiple platforms. And did I mention cheap? Oh yeah, I did."
Anyway, those are the claims made by NuoDB about its eponymous database product, and its pitch for what it calls a Cloud Data Management System is compelling. A few weeks ago, just before NuoDB's mid-January launch, I talked with one of the company's founders and CEO, Barry Morris, about the product, and it's a fascinating story.
One of NuoDB's design presumptions was that optimization is hard but scale-out is easy. In other words, if you want better performance from your database you can do the time-honored wash-rinse-repeat cycle beloved by database analysts everywhere (measure, analyze, tune, re-measure, re-analyze, etc.), or you can just throw more hardware at the problem. And that is what NuoDB has chosen to do.
[ CLEAR CHOICE TEST: Six free databases with commercial-quality features ]
Of course, throwing more hardware at a database performance problem requires that the database system be easy to scale which, in turn, requires an architecture that is modular rather than monolithic. And that's what NuoDB is: a distributed system of self-organizing units rather than using the hub-and-spoke command and control architecture of traditional databases.
A consequence of this architecture is that installing a NuoDB host takes about five minutes, has hardly any parameters to set, and requires very little in the way of administration once it's running!
Where NuoDB gets really interesting is that communications between the hosts is not synchronous as you might expect, but rather asynchronous which, while it requires high bandwidth connections between hosts, is not overly sensitive to network latency, making it more compatible with real-world WAN configurations.
The issue of NuoDB being good at handling hybrid loads -- that is, making analytical queries while under transactional loading -- is a powerful argument for the product, because most major SQL database product performance will tank if you try such a thing.
Fundamental to NuoDB is being SQL-complaint (It is ANSI SQL-92 compliant with SQL-99 extensions, and works with and ships with a set of JDBC/ODBC drivers) which, it is claimed, makes it a "drop-in" replacement for any standard SQL environment. Morris told me of a customer who moved an Oracle-based application with 500 tables, hundreds of threads, and many complex interactions to NuoDB in under one month.
So, how powerful is NuoDB? The company claims that a load of 1 million transactions per second could be handled by NuoDB running on 20 cheap servers connected by Gigabit Ethernet. Running on Amazon EC2, Windows, Linux, OS X and Solaris, NuoDB can use a local file system, Amazon S3 or a Hadoop Distributed File System for storage.
There are two no-cost editions: Free, which supports two hosts and 4GB of storage (HDFS is not supported as a storage option) and is available for users, while Developer (for development only, of course) allows for unlimited hosts and has no storage limits. If you want to use NuoDB for production systems then pricing starts at a very reasonable $1,200 per annum for two hosts and 16GB of storage.
Prior to the January launch some 3,000 beta users had signed up, and at the launch NuoDB announced that AutoZone, the automotive parts distributor and retailer, will be implementing the database for provisioning and management of up-to-the-minute digital signage in its 5,000 outlets in the U.S., Puerto Rico, Mexico and Brazil.
For high-performance, resilient, low-cost database solutions, NuoDB is definitely worth checking out.