2. What is NuoDB?
NuoDB is the first and only emergent database that is;
100% SQL compliant
100% ACID transactions
Elastically scalable
Highly resilient and requires minimal database administration
Your SQL database wasn’t designed to scale elastically in the
cloud. However as your traffic grows, the database simply must
scale. But it’s hard.
SQL databases - every single one - were designed to run on the
traditional client server systems that were architected back in the
last century. They are all monolithic, synchronous, and centralized,
which means that performing actions like doing a CRUD operation
for a single record in the database, requires locking the database
on the master node.
3. Key features
100% SQL - NewSQL looks and behaves just like a traditional
SQL database but scales and provides the same flexibility of
NoSQL. Developers can focus on building scalable applications
using the same SQL tools they know and have come to trust like
DbVisualizer, Hibernate and Active Record.
100% ACID - Guaranteed atomicity, consistency, isolation, and
durability (ACID). NuoDB fully supports ACID transactions so no
compromises are required when it comes to the accuracy of
your data.
Elastically Scalable - NuoDB allows you to horizontally scale out
or in without bringing down the system, changing a single line
of code, or giving up the power of SQL. Your applications behave
as expected whether you add one node or one hundred nodes.
4. Built-in Redundancy - Disaster recovery at the database level
is now a thing of the past. You no longer need to spend
double on redundant hardware that will sit idle until there is
a disaster. NuoDB’s distributed architecture will continue to
operate as a single cohesive database even if there are
multiple points of failure. Its peer-to-peer architecture
makes it easy to deal with hardware failures and power
outages without any downtime.
Multi-Tenancy - NuoDB allows you to deploy one or more
databases within a single administrative domain via the
NuoConsole. This greatly reduces the administrative burden
of configuring, managing and monitoring the NuoDB
system.
Auto Replication - Low latency environments often require a
separate replicated database to support operational
reporting requirements. With NuoDB you are no longer
required to setup extraneous processes to support
operational intelligence reporting. Simply add another
storage node to the database and let NuoDB handle the
replication for you.
5. Easy Administration - NuoDB is designed for simplicity and
(almost) zero administration. It’s simple to monitor your
database and add or remove nodes to a running
database. No sharding or caching strategies are needed.
Built-in Security - Cloud deployment always begs the
question “how secure is my data?”. NuoDB is not an SQL
database retrofitted for the cloud; it was born? to live in the
cloud. All asynchronous peer-to-peer communication
between NuoDB transaction and storage nodes is secure
and encrypted by default. And NuoDB can be easily
configured to persist data to an encrypted file store. You
are no longer required to make the security vs.
performance trade-offs associated with traditional
databases.
NuoConsole - Centralized monitoring of your decentralized
database is made easy with the NuoDB monitoring web
app. The NuoConsole allows you to start and stop your
database, add additional resources to your database such
as Transaction Engines and Storage Managers, and monitor
your database in real-time.
6. Developer Tools - Integrate NuoDB with the most popular
development frameworks like JAVA EE, Ruby on Rails,
Zend, Coldfusion, .NET, node.js, Python and many others
to build new applications or to scale existing ones. NuoDB
works seamlessly with many ORM tools such as Hibernate,
Active Record, and PHP PDO.
Heterogeneous Deployment - The Emergent Architecture
provides an unprecedented level of deployment flexibility.
NuoDB is the only database system that can be distributed
across a heterogeneous set of operating systems and
infrastructure resources that include the cloud, large data
centres, or local commodity hardware, and still continue to
function as a single instance of a database. NuoDB runs on
Windows, MacOS, Linux, and Solaris platforms today.
7. Emergent architecture
An emergent architecture is characterized by simple,
autonomous actions by individual components
producing complex, coordinated behaviors in the
overall system.
8. Atomicity
NuoDB is an asynchronous, decentralized, peer-to-peer
database and object-oriented. Objects in NuoDB know how
to perform various actions that create specific behaviors in
the overall database. And every object in NuoDB is an
Atom. An Atom in NuoDB is like a single bird in a flock.
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.
9. 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:
Atoms know how to make copies of themselves.
Atoms keep all copies of themselves up to date.
Atoms can broadcast messages. Atoms listen for
events and changes from other Atoms.
Atoms can request data from other Atoms.
Atoms can serialize themselves to persistent
storage.
Atoms can retrieve data from storage.
10. Consistency via Asynchronous
Decentralized Messaging
Atoms communicates P2P asynchronously. This is ideal for the
decentralized nature of an elastic cloud infrastructure.
A key reason to a traditional SQL database is so hard to scale in the cloud
is that it operates synchronously, relying on a single master node to lock
the database and orchestrate transactions. They weren’t designed for the
decentralized, asynchronous nature in the cloud.
In a NuoDB database, using object-oriented Atoms, it is able to perform
all the coordinated actions of a traditional SQL database (CRUD a record)
without locking.
When an Atom changes in NuoDB, it informs all other instances of itself in
all other locations, transactionally replicating the changes via
asynchronous message queues.
It is the right mechanism in the context of the decentralized,
geographically disparate, shared-nothing architecture of the cloud.
11. The Atoms are the
Database
Everything in NuoDB database is an Atom, and the
Atoms are the database. The Atoms work in concert to
form both the Transaction and the Storage tiers.
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).
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.
12. 12 Rules of A Cloud Data
Management System
(CDMS)
1. Modern Superset of an RDBMS
2. Elastic Scale-out for Extreme
Performance
3. Single Logical Database
4. Run Anywhere, Scale Anywhere
5. Nonstop Availability
6. Dynamic Multi-tenancy
7. Active/Active Geo-distribution
8. Embrace Cloud
9. Store Anywhere,
Store Redundantly
10. Workload Mix
11. Tuneable Durability Guarantees
12. Distributed Security
13. Empower Developers &
Administrators
Source:
http://go.nuodb.com/rs/nuodb/images/NuoDB_12_Rules_v
4.pdf
13. Development with .NET
JRE – Java Runtime Environment
.NET Framework
NuoDB driver for ADO.NET
NuoDB Provider for Entity Framework (EF5)
14. Video demos
NuoDB in 90 seconds
https://vimeo.com/52935940
The NuoDB Distributed DBMS Architecture
https://vimeo.com/63356635
NuoDB Continuous Availability Demo
https://vimeo.com/119475588
ACID
Atomicity
Atomicity requires that each transaction is "all or nothing": if one part of the transaction fails, the entire transaction fails, and the database state is left unchanged. An atomic system must guarantee atomicity in each and every situation, including power failures, errors, and crashes. To the outside world, a committed transaction appears (by its effects on the database) to be indivisible ("atomic"), and an aborted transaction does not leave effects on the database at all, as if it never existed.
Consistency
The consistency property ensures that any transaction will bring the database from one valid state to another. Any data written to the database must be valid according to all defined rules, including but not limited to constraints, cascades, triggers, and any combination thereof. This does not guarantee correctness of the transaction in all ways the application programmer might have wanted (that is the responsibility of application-level code) but merely that any programming errors do not violate any defined rules.
Isolation
The isolation property ensures that the concurrent execution of transactions results in a system state that would be obtained if transactions were executed serially, i.e. one after the other. Providing isolation is the main goal of concurrency control. Depending on concurrency control method, the effects of an incomplete transaction might not even be visible to another transaction.
Durability
Durability means that once a transaction has been committed, it will remain so, even in the event of power loss, crashes, or errors. In a relational database, for instance, once a group of SQL statements execute, the results need to be stored permanently (even if the database crashes immediately thereafter). To defend against power loss, transactions (or their effects) must be recorded in a non-volatile memory.