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