Another database system I’ve checked into is NuoDB. NuoDB describe themselves as an ‘Emergent’ database system, which they define as “simple and autonomous actions by components that produce complex, coordinated behaviors in the overall system”.
NuoDB is horizontally scalable, like many NoSQL systems, but supports SQL along with ACID transactions.It is asynchronous and uses peer-to-peer communication, with no single point of failure. NuoDB can use a normal file system for storage or can use a cloud service (Like Amazon S3).
In a deployment, at the top level is a domain, which is a collection of hosts.
There are three layers to a NuoDB deployment:
1) Management:
Broker – Manages the Transaction and Storage engines
Agent – runs on a host – Manages the processes running on a computer- Each host must have an agent.
2) SQL – Transaction engine
3) Storage – Storage Manager – co-ordinates the data storage to a file system or a cloud service
NuoDB also has an concept of a ‘chorus’, which is a database along with the processes that support it. A chorus can go across multiple domains.
NuoDB includes a web console to manage the different processes.
So processes can be added and taken offline on the fly, the broker will take care of routing the requests. A chorus can also have multiple brokers for redundancy.