X
Business

NuoDB has Microsoft SQL Server in its sights

With its 1.1 release, the "NewSQL" player strikes at the Microsoft ecosystem with ADO.NET, LINQ, and Entity Framework providers ... and a migration tool to poach databases from SQL Server.
Written by Andrew Brust, Contributor

Most of the young, scale-out database players, be they of the NoSQL or NewSQL (distributed, relational), variety, are very Linux oriented. Although many of these databases, including MongoDB, CouchDB, and Cassandra, run just fine on Windows, they still have a proclivity toward best serving developers on the Linux platform.

One NewSQL database, NuoDB, also runs on both operating systems. But the folks at NuoDB looked at their downloads, and discovered that a full 80 percent of them were attributable to the Windows edition of the product. Rather than bury their heads in the Linux sand regarding this phenomenon, the NuoDB folks took ownership of it instead.

(.Net) Developers, developers, developers

The result is version 1.1 of the NuoDB Starlings database. This version ships with support for Microsoft developer technologies to a degree that is almost unprecedented for a third party. These creature comforts include an ADO.NET provider, a LINQ (Language Integrated Query) provider, and an Entity Framework provider that supports the code-first and model-first approaches.

NuoDB 1.1 also includes a migration assistant for moving databases off the SQL Server platform and onto NuoDB. This is a shot across Microsoft's bow, although from a relatively small vessel. Regardless, the value proposition is interesting. While SQL Server can be implemented in a clustered configuration, that's not easy to do, and its architecture is mostly geared toward single-node installations. Additional SQL Server nodes are often made available for fault tolerance purposes, more than for distributed processing.

How it works

NuoDB is a scale-out, cloud-oriented database, built to be geographically distributed by default. Its architecture consists of broker nodes, transaction nodes, and storage management nodes. Each transaction node is responsible for its own "atoms" — little pieces of the database, be it data rows or parts of indexes, that communicate asynchronously. The atoms use multi-version concurrency control (MVCC) to maintain database consistency and ACID guarantees.

The broker nodes handle load balancing between the transaction nodes, and as long as there are two or more broker nodes, NuoDB avoids having any single points of failure. Storage management nodes keep track of the atoms that make up a database, and their replicas.

Nodes in a NuoDB cluster act together on a peer-to-peer basis, analogously to birds in a flock, hence the "Starlings" name and the company's logo design. The whole scheme leads, if the company's claims are accurate, to a very low-latency, geo-distributed database that still uses the relational model, transactional guarantees, and SQL query language that are standard for enterprise developers.

NuoDB nodes can run in the cloud (NuoDB now explicitly claims Windows Azure compatibility) and, interestingly, NuoDB clusters can consist of a mixture of Windows and Linux nodes.

Should Redmond worry?

It's not at all clear to me that NuoDB will siphon off hordes of SQL Server databases and customers. Of course, I'm an SQL Server MVP and a co-author of a book on Microsoft's flagship database, so I have my biases. But coming from that background, NuoDB seems more tempting to me than MongoDB or Cassandra, for example.

Allowing .Net developers to move to a scale-out database architecture — and yet keep their existing APIs, database schemas, and query language — poses a formidable challenge to Redmond.

Editorial standards