NuoDB distinguishes itself from traditional relational products, not only because of its smaller footprint and reduced administrative requirements but also because it offers a (geographically) distributed database environment that can easily scale out, as opposed to scaling up. True distributed architectures have historically been difficult to implement using relational technology yet, as corporations move more and more towards hybrid cloud environments, they become ever more necessary. Which is why NuoDB is well placed.
With regard to competition from other NewSQL databases, NuoDB would argue in favour of its performance and also the fact that it has recently introduced HTAP (hybrid transaction analytic processing) capabilities, which means that you can perform operational analytics against transactional data without impeding the performance of those transactions.
Proof points quoted by the company include 1.82 million transactions per second running across 32 machines and a 72,000 database instance implementation on a single HP Moonshot system.
NuoDB leverages both direct marketing and partner models. Notable OEM and technology partners include Dassault Systèmes, Palo Alto Networks, Pentaho (for both BI and ETL), New Relic, Zabbix (for application performance management), HP, Amazon (there is a quick start kit for scale-out provisioning on AWS) and Drupal.
While the company is not focused on any particular industry sector it is particularly targeting users that are either migrating to the cloud or are deploying hybrid cloud environments. The product includes major relational database compatibility features for Oracle, SQL Server and MySQL to enable migrations from these environments to NuoDB. In the latest release there is also a new SQL-based parallel loading facility to improve performance for migrations from third party RDBMS environments.
The company’s web site lists a dozen or so customers and, although some of these are major organisations, none of them are household names. On the other hand we do know of large well-known companies that are using NuoDB in production (NuoDB worked extensively with several of them during its beta phase and is continuing to do so) but have declined to make their names public. The company is heavily targeting ISVs and application providers, especially in the financial and telecommunications markets.
NuoDB is implemented on a three-tier architecture: an administrative tier that consists of 'brokers' that provide functions such as load balancing and to which applications and users connect; a processing layer consisting of 'transaction engines' that run in memory; and a storage layer consisting of 'storage managers'. Each storage manager within a 'domain' has its own copy of the database thus, in effect, you have multiple physical instances of the same database but these are presented to the users (the transaction engines) as a single, logical instance.
NuoDB is an append-only database, which means that you cannot update a record but create a new version of that record, although actually you only write changes to the record with the most recent changes defining the current version of that record. Older versions can be reconstructed by iterating backwards through the deltas, which means that you can do point-in-time queries and have support for (logical) schema evolution. So NuoDB is heavily reliant on versioning and uses MVCC (multi-version concurrency control). In general, NuoDB uses optimistic locking as well as other techniques, not least because traditional distributed lock management tends to become a bottleneck. In cases where locks need to be applied, if there is a conflict between a read and a write then the conflict is resolved based on the time at which that request was made with the reader and writer respectively seeing the version of the data that was live at that point in time. For each process a particular transaction engine takes over the role of 'chairman' and this communicates with the other transaction engines via asynchronous messages: chairman are used to resolve conflicts in more complex scenarios and are also critical for the continuous availability that NuoDB offers.
As far as hybrid transaction/analytical processing (HTAP) is concerned, you designate a number of your transaction engines as specific to analytics. In effect, a sub-cluster is being used for transaction processing and another sub-cluster for analytics. As far as the data being processed is concerned, there is no conflict between the data being used for analytics as opposed to that used to support transaction processing, because of NuoDB’s nature as an append-only database. This means that analytics can run against the latest version of the data while not impeding updates or inserts that may be occurring within the transactional environment.
NuoDB provides the usual sorts of services one might expect: training, support, professional services and so forth. There is a free to download version of the product available, which has all the features of the main product except that it does not support geographical distribution, and is limited with respect to the number of machine hosts.