The Trouble with NoSQL Databases

advertisement
Iran Hutchinson




I work for InterSystems who drives the new
http://globalsdb.org NoSQL project.
Email: [email protected]
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-a-
time) 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
Column
Document


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
?
Key-Value
Data
Graph
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
?
Key-Value
Data
Graph
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
Related flashcards
Particle physics

48 Cards

Standard Model

11 Cards

Create flashcards