,

NuoDB – a cloud database – Explained


nuodb

 

1. What is NuoDB?

NuoDB is a client/cloud relational database technology which is SQL compliant and has been called ‘NewSQL.’ It has a distributed object architecture that works in the cloud. NuoDB uses the term “emergent architecture” for their database, which means that when a new server is added in order to scale-up the database, the database runs faster.
The NuoDB database distributes tasks amongst several processors to avoid bottlenecks of data. It uses peer-to-peer messaging to route tasks to nodes, and it is ACID compliant.
The database uses a “tiered approach—comprising multiple, redundant tiers of transaction engines (TE) and storage managers (SM).” This approach helps scale the data predictably in the cloud. NuoDB domains consist of several redundant TEs and SMs that can run on the same platform. Adding database capacity can be done by adding more TEs or SMs. NuoDB can support the following platforms: Windows, Mac OS, Linux, Solaris x86, Amazon EC2. And JoyentCloud.

 

2. How does it work?

Everything In NuoDB Is An Atom
Under the hood, NuoDB is an asynchronous, decentralized, peer-to-peer database with the safety of SQL and ACID. The NuoDB system is also object-oriented. Objects in NuoDB know how to perform various actions that create specific behaviors in the overall database. And at the heart of every object in NuoDB is the Atom.
Atoms are self-describing objects (data and metadata) that together comprise the database. Everything in the NuoDB database is an Atom, including the schema, the indexes, and even the underlying data. For example, each table is an Atom that describes the metadata for the table and can reference other Atoms; such as Atoms that describe ranges of records in the table and their versions.

Atoms Are Powerful
Atoms are intelligent, powerful, self-describing objects that together form the NuoDB database. Atoms know how to perform many actions, like these:
o Atoms know how to make copies of themselves.
o Atoms keep all copies of themselves up to date.
o Atoms can broadcast messages. Atoms listen for events and changes from other Atoms.
o Atoms can request data from other Atoms.
o Atoms can serialize themselves to persistent storage.
o Atoms can retrieve data from storage.

Consistency Via Asynchronous Decentralized Messaging
Atoms communicate with each other in an asynchronous, peer-to-peer manner that is ideal for the shared-nothing, decentralized nature of today’s computing environments. One of the key reasons a traditional SQL database is so hard to scale on distributed or virtualized hardware is that it was built to operate synchronously, relying on a single master node to lock the database and orchestrate transactions.
So we changed the whole idea. Through the use of object-oriented Atoms that know how to perform certain actions, and a system in which Atoms communicate with each other in a peer-to-peer manner, a NuoDB database is able to perform all the coordinated actions of a traditional SQL database (like creating, deleting, or updating a record) without relying on master-slave configurations or locking.

When an Atom changes in NuoDB, it sends messages to all other instances of itself in all other locations, replicating the changes using highly reliable, asynchronous message queues. It is the right mechanism for providing transactional guarantees in the context of the decentralized, geographically distributed, shared-nothing architectures.

The Atoms Are The Database
Everything in the database is an Atom, and the Atoms are the database. The Atoms work in concert to form both the Transaction (or Compute) Tier and the Storage Tier.
A NuoDB Transaction Engine is a process that executes the SQL layer and is comprised completely of Atoms. The Transaction Engine operates on Atoms, listens for changes, and communicates changes with other Transaction Engines in the database.

A NuoDB Storage Manager is simply a special kind of Transaction Engine that allows Atoms to serialize themselves to permanent storage (such as a local disk or Amazon S3, for example).

A NuoDB database can be as simple as a single Transaction Engine and a single Storage Manager, or can be as complex as tens of Transaction Engines and Storage Managers distributed across dozens of computer hosts.

 

3. What are the uses of NuoDB?

Mobile Applications
Hot mobile apps are downloaded billions of times. A cloud-based mobile app needs to scale out fast to keep up with demand and scale back in just as fast because the web service provider’s meter is running all the time. NuoDB offers elastic scalability at millions of transactions per second with minimal administration. Read Case Study

Web-Scale Applications
Developers need to prepare well in advance for if/when their applications take off and need to scale. Any hot app could be the next Facebook. NuoDB gives them all the elastic scale-out they will ever need combined with the safety and familiarity of SQL/ACID.

Multi-Tenant Solutions
Internet Service Providers (ISPs) need to host hundreds of databases as efficiently as possible while simultaneously keeping one customer’s database separate from all others. Typically the solution has been to deploy across many, many servers. NuoDB offers true multi-tenancy at low cost.

SaaS Solutions
Successful ISVs and SaaS providers have sharded, replicated and tuned their databases to ensure high performance and zero downtime. NuoDB does not require sharding, replication or other kinds of performance work; it doesn’t have to be that hard to run SaaS smoothly.

 

4. Who uses NuoDB?

 

nuodbcustoers

NuoDB has customers from individual developers to the Fortune 1000. Some of them are:

http://www.fuseforward.net

http://www.joyent.com

http://www.northps.com

http://www.holderconstruction.com

http://www.blackhawknetwork.com

http://fathomvoice.com

 

5. What are the advantages of NuoDB over Sql?

Drawbacks of Sql
In the data world, SQL is a relation-based, data model, and the most common means used to retrieve and manipulate data. Predicates, clauses, expressions and queries that are all used in SQL data management system have made it abundantly popular and user friendly. But this traditional data management system suffers serious of limitations, including:
• Process becomes tedious when large volume of data is used.
• Often incorrect SQLs are created for multi table data graph.
• Data repetition occurs that occupies much of your storage.
• Cannot use DML operations.
• The absence of table makes the view inactive.
• This traditional data management system uses much of resources.
• You don’t get the feature of elasticity.
• Needs considerable growth in the area of geo-distribution.

SQL is more than 30 years old and it was not designed with the intent of remote, or “cloud” computing. It was solely built to to leverage server architecture. Cloud-based computing requires things to be easily added and removed to meet huge demands, and it’s a bit too complex in these traditional database designs.

Under the SQL Compliance section, it says in part: NuoDB implements the majority of the SQL99 standard. Existing standards-compliant databases will port and run with minimal, if any, modification. NuoDB isn’t simply a new storage engine for MySQL or other existing database, it is a new SQL engine written to take full advantage of distributed, cooperative nodes. The result is that databases designers will not need to compromise on schema design by de-normalizing tables, removing joins, or carefully optimizing object-to-relational tools to get the performance their application needs.

NuoDB’s ability to share machines, and its SQL standards make it an easy platform for developers to work with. An existing SQL database runs almost with no modification or minimal changes. Further, the unique architecture of NuoDB allows you to grow, shrink, allocate, reassign and provision database. As we draw closer to the company’s final launch product, I’m excited. NuoDB very well may be your new alternative to the traditional database management system.

 

6. Online Resources


http://dev.nuodb.com

http://en.wikipedia.org/wiki/NuoDB

http://www.infoq.com/search.action?queryString=nuodb&page=1&searchOrder=

http://architects.dzone.com/articles/replicating-mysql-nuodb-using

http://www.zdnet.com/nuodb-has-microsoft-sql-server-in-its-sights-7000015078/

https://github.com/nuodb/migration-tools

http://finance.yahoo.com/news/nuodb-demonstrates-72-000-hyper-162243522.html

 

7. Video Resources


 

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.