NuoDB is a SQL/ACID compliant distributed database management system. Different from traditional shared-disk or shared-nothing architectures, NuoDB is a new distributed, peer-to-peer, asynchronous approach.
A Three-Tiered Architecture
NuoDB was not designed with a specific operating system, network backplane or virtualization model in mind. It is a general piece of software that exploits the resources it is given. Its distributed architecture is split into three layers: an administrative tier, a transactional tier and a storage tier.
Durable Distributed Cache
Today’s database vendors have applied three common design patterns around traditional systems to extend them into distributed scale-out database systems. These approaches – Shared-Disk, Shared-Nothing and Synchronous Commit - overcome some of the limitations of single-server deployments, but remain complex and prone to error.
By stepping back and rethinking database design from the ground up, Jim Starkey, NuoDB’s technical founder, has come up with an entirely new design approach called Durable Distributed Cache (DDC). The net effect is a system that scales-out/in dynamically on commodity machines and virtual machines, has no single point of failure, and delivers full ACID transactional semantics.
Atoms: Internal Object Structure
The front-end of the transactional tier supports SQL. Beneath that layer, all data is stored in and managed through objects called Atoms. Atoms are self-coordinating objects that represent specific types of information (such as data, indexes or schemas). All data associated with a database, including the internal meta-data is represented through an Atom.
Multi-Version Concurrency Control
Traditional approaches like deadlock detection or explicit lock management become very expensive when scaled beyond a few hosts and without a synchronized clock, order isn’t meaningful. To address all of these issues, NuoDB uses MVCC to handle conflicts and provide a clear model for consistency.
Abstracting all data into Atoms is done in part to simplify the NuoDB durability model. All access and caching in the architecture is on the atom-level, and all atoms have some unique identifier, so atoms are stored as key-value pairs.
In NuoDB, the Commit Protocol enables a user to tradeoff performance and durability concerns. When any change is happening in the context of a transaction, it gets sent to all peers that need to know about the change.
Management and Operations Model
Above the two database layers is a management tier. NuoDB’s management tier is a collection of peer processes. These processes are called management agents, and one runs on every host where a database could be active.