The Trouble with NoSQL Databases

advertisement

Iran Hutchinson

I work for InterSystems who drives the new http://globalsdb.org

NoSQL project.

Email: iran.hutchinson@intersystems.com

Twitter: #iranic

Skype: chatwithiran

 … NoSQL Databases

 Understanding what they are

 Understanding how to leverage their strengths

 Understanding their weaknesses

 Staying away from hype and religious wars

 Fighting your developer demon

Edgar Frank “Ted” Codd

Known for 12 Rules (0 ~ 12) for Relational Data

Systems

Rule 1: The information Rule

 All information is represented in 1 and only 1 way, namely by values in column positions within rows of tables

Rule 12: The no subversion Rule

 If the system provides a low-level (record-at-atime) interface, then that interface cannot be used to subvert the system i.e. relational security or integrity constraints.

Simple APIs

 Java Example: Document.save(myObject)

Seamless language integration

 No impedance mismatch

Designed to be horizontally scalable (elastic)

Flexible data model

Majority free and/or Open Source

Free and Commercial production support

Proven

Available talent / Well-known

AD-Hoc querying

Scalable (limits?)

Free and Commercial production support

Interface for data access

Limited horizontal scalability?

Impedance mismatches

Programming model

In-flexible data model

Does not include the underlying data structure.

B-tree and B+-trees can be fast and efficient

The relational model + SQL can limit B-trees

 Class of data management systems inherently

 Non-relational

 Distributed

 Horizontally scalable

 With optional schemas

 Providing simple APIs

Term Not-Only-SQL recently embraced

Dave Kellog’s Blog Post

No to ACID

No to the impedance mismatch with SQL

Dealing with Big Data and Web Scale

High prices from RDBMS vendors

Use commodity hardware

Flexible data models

It’s a cool movement ….

No

Remember MUMPS?

 SET ^Car("Door","Color")="BLUE”

Remember Multi-value/PICK

 MATWRITE array.variable ON file.variable,id. ….

Ever heard of the NoSQL RDB?

Key-Value

Graph

Data

Document

Column

This depends on your use case.

Example

 http://www.mongodb.org/display/DOCS/Use+Cas es

Compare your problems to others.

Example:

 http://wiki.apache.org/hadoop/PoweredBy

 http://nosql-database.org/ lists 122 today.

Depends on your model selection.

Most likely choose well-known project.

Don’t forget about shared risk!

Some solutions have no querying

When available query languages differ

Lack of general AD-Hoc querying – “no” SQL

NOTE: Toad for Cloud

Skills

Data Model

Data format

Tools

Standards?

Some databases are not as proven

Incomplete NoSQL solutions

 You write a larger data management tier

 You maintain your business code and infrastructure code

 You have to customize management and deployment technology and procedures

Know your application

Don’t forget the past lessons

Consider a hybrid approach

Fight the desire to Roll-Your-Own-DB

Start small but significant

 Two Systems

 NoSQL + SQL/RDBMS

Updates

 Real-time

 Asynchronous or Batch

NoSQL

Data

Mapper /

Translato r

SQL/RDB

MS

 One system does both NoSQL and

SQL

?

Relational

Graph

Key-Value

Data

Document

Column

InterSystems Caché supports SQL and NoSQL

Production NoSQL for 20+ years

APIs for .NET, Java, Perl, Python, etc.

Expanding paradigms for more use cases.

Comes the closest to approach 2

Relational

?

Graph

Key-Value

Data

Document

Column

Core of InterSystems Caché

Free for development and production

Simple APIs Java and JavaScript http://globalsdb.org

Sponsored by InterSystems

Array

?

Data

Document

 Over time I think we will see

 NoSQL features in mainstream databases

 NoSQL offerings by more commercial companies

 Dominant open source / free NoSQL projects

 New definitions of enterprise databases

Hadoop/Hbase

Cassandra

MongoDB

CouchDB

Riak

Couchbase

Neo4J

InterSystems Caché

SimpleDB

Azure Table Storage

Google App Engine Data Storage

Mark Logic Server

Infinite Graph

Riak (has open source version)

Berkely DB

Download