NoSQL
John Paul Ashenfelter CTO/Transitionpoint
Why do you use SQL?
ACID Reliable Strong ecosystem
SQL #fail?
Scaling horizontally Performance Flexibility (xed schema) Doesnt model domain
3
NOSQL
What is NoSQL?
Not Only SQL => NOSQL web workloads, not OLTP or DW ecosystem that addresses #fail of sql
Why NoSQL?
schema-free documents fast key lookups horizontal scaling REST APIs
6
Whos Using NoSQL?
Digg Gilt Twitter Foursquare Amazon Google
Yahoo LinkedIn Facebook
NoSQL Ecosystem
Column stores Key value stores Document stores Graph databases
8
Column Stores
Column Store 411
Column-oriented database tuple of name, value, timestamp supercolumn is a map of columns columnfamily ~= table Stored on (custom) lesystem No joins, no sorting after insert
10
Why use a Column Store?
very large (TB => PB) data set distributed (local => global) data set high volume of reads need for MapReduce-style processing
11
Column Store Implementations
Google BigTable Hadoop Cassandra
12
Column Store Examples
Google is canonical example Digg with Cassandra Twitter for analytics
13
Graph Databases
14
Graph Database 411
Stores data in graphs (networks) nodes relationships properties Traverse the graph to nd the data Semi-structured
15
Why Use a Graph Database
Problem domain maps to graph or network social networks collaborative ltering Sparse data
16
Graph Database Implementations
neo4j
17
Graph Database Examples
18
Document Stores
19
Document Store 411
document-oriented tree of objects objects have attribute values and lists similar to XML or JSON storage directly accesses structure similar to column store with N columns/
20
Why Use a Document Store
schema-less (!!!!!) need data in JSON (or XML) read/write as a unit partitioning and replication for scaling
21
Document Store Implementations
Mongodb Couchdb Riak
22
Document Store Examples
23
Key-Value Stores
24
Key-Value Store 411
big hash table -- keys and values transparent partition and replication lower emphasis on transactions eventual consistency
25
Why Use A Key-Value Store
scaling, scaling, scaling low-latency optimized high-throughput optimized
26
Key-Value Implementations
Amazon SimpleDB Redis Memcachedb Tokyo Cabinet/Tyrant Amazon Dynamo Project Voldemorte
(Microsoft) Dynomite Mnesia Lawnchair for JS
27
Key-Value Store Example
28
CODE!
29
Where Can I Learn More
MyNoSQL Blog Key Papers Conferences, particularly dynamic languages
30
ColdFusion and NoSQL
31
NoSQL Conferences
no:sql(east) meetings (particularly Mongo) emerging tech conferences -- OSCON,
Ruby/Python, JS
32
MyNoSQL Blog
[Link] Lots of activity Not really CF-oriented, but Java pops up
33
Key papers
Dynamo: http://
[Link]/2007/10/ amazons_dynamo.html [Link]/2007/08/[Link] [Link]
CAP Theorem: http://
Map/Reduce: [Link]
34
Thanks!
Contact
johnpaul@[Link] @johnpaul @transitionpoint [Link] [Link]
Follow
Read
35