Why NoSQL? Why Riak? Justin Sheehy justin@basho.com 1
What's all of this NoSQL nonsense? Voldemort Riak HBase Neo4j Cassandra MongoDB CouchDB Membase Redis (and the list goes on...) 2
What went wrong with SQL databases? Nothing! They are great tools. 3
What went wrong with SQL databases? Nothing! They are great tools. 4
NoSQL came before SQL. Honeywell IDS VAX DBMS dbm IBM IMS MUMPS Cincom TOTAL PICK (and the list goes on...) 5
But that's not really NoSQL, is it? Honeywell IDS VAX DBMS dbm IBM IMS MUMPS Cincom TOTAL PICK (and the list goes on...) 6
The start of today's NoSQL Amazon: Dynamo (2007) Google: Bigtable (2006) Technology is not the important part! 7
The start of today's NoSQL Amazon sells books. (esp. 3+ years ago) Why not just use Oracle/MySQL/etc? most Technology is not the important part! 8
The start of today's NoSQL Amazon sells books. (esp. 3+ years ago) Why not just use Oracle/MySQL/etc? Business needs (re)created demand for alternative database technologies. 9
What's all of this NoSQL nonsense? Voldemort Riak HBase Neo4j Cassandra MongoDB CouchDB Membase Redis Do we really need all of these? 10
It's still about business needs. Riak ! s n o i s i c e d e v i r d s e s a c e s u Redis 11
It's still about business needs. m Riak e l b o r p l a e r r u o y s e v l o s t a h w e Redis s o o h c 12
? how do you know what solves your real problem two places to start: ➡ innate/exposed data model ➡ distribution/operational model 13
data model differences requirements usually from app developers Semi-Structured Documents Key/Value Graph Traversal Hierarchical Indexed Query Tabular/Relational Bigtable Column Family Native Data Structures 14
data model differences not much useful ordering ? l Graph Traversal u f r e w o p e r o m s i e n o h c Bigtable Column Family i h w 15
data model differences Voldemort N e o 4 j Cassandra K/V Graph ColFam etc etc 16
distribution model differences requirements usually from biz or operations Distributed System Server Replication Single Server Locally Embedded 17
distribution model differences requirements usually from biz or operations Distributed System Server Replication Single Server Locally Embedded 18
starting to decide Distributed System Server Replication Single Server Locally Embedded K/V Graph ColFam etc etc 19
starting to decide We need a K/V or ColFam store. Distributed System Server Replication Single Server Locally Embedded K/V Graph ColFam etc etc 20
starting to decide We need a K/V We need to recover or ColFam store. quickly from server failure. Distributed System Server Replication Single Server Locally Embedded K/V Graph ColFam etc etc 21
now we're getting somewhere! Distributed System Server Replication K/V ColFam 22
we can make a shorter list... Riak, Voldemort, CouchDB, Cassandra, HBase... Distributed System Server Replication K/V ColFam 23
we can make a shorter list... Riak, Voldemort, CouchDB, Cassandra, HBase... then we can narrow it more... protocols, licensing, benchmarking, simplicity... Distributed System Server Replication K/V ColFam 24
we can make a shorter list... Riak, Voldemort, CouchDB, Cassandra, HBase... then we can narrow it more... protocols, licensing, benchmarking, simplicity... and make a choice! Distributed System Server Replication ColFam K/V 25
we can make a shorter list... Riak, Voldemort, CouchDB, Cassandra, HBase... then we can narrow it more... protocols, licensing, benchmarking, simplicity... and make a choice! How about MySQL? Distributed System Server Replication I believe we could, Bob. ColFam K/V 26
How about MySQL? I believe we could, Bob. wait, WHAT? 27
Great tools are still great tools. How about MySQL? I believe we could, Bob. wait, WHAT? 28
Great tools are still great tools. Understand your needs before you choose. 29
So what's so special about ? 30
Riak KV Distributed System Server Replication Single Server Locally Embedded ColFam K/V Graph etc etc 31
Riak KV Riak Search Distributed System Server Replication Single Server Locally Embedded ColFam K/V Graph etc etc 32
Riak KV Riak Core Riak Search Distributed System Server Replication Single Server Locally Embedded ColFam K/V Graph etc etc 33
improvements flow upward Riak Core can flow sideways Distributed System Server Replication Single Server Locally Embedded ColFam ? K/V Graph etc 34
Will the market need this? Distributed System Server Replication Single Server Locally Embedded ColFam ? K/V Graph etc 35
Will the market need this? I know how to get there. Distributed System Server Replication Single Server Locally Embedded ColFam ? K/V Graph etc 36
client application protobuf http riak_client The Riak key/value stack: dynamo model FSMs riak core vnode master k/v vnode storage engine 37
client application client application client application protobuf protobuf http http protobuf http riak_client riak_client riak_client dynamo model FSMs dynamo model FSMs dynamo model FSMs the cluster nodes are united by riak core via gossip, consistent hashing, etc vnode master vnode master vnode master k/v vnode k/v vnode k/v vnode storage engine storage engine storage engine 38
client application protobuf http riak_client dynamo model FSMs riak core vnode master k/v vnode just a local k/v store: storage engine 39
client application protobuf http just an abstract k/v store: riak_client dynamo model FSMs riak core vnode master k/v vnode storage engine 40
client application protobuf http riak_client dynamo model FSMs a distributed system at heart: riak core vnode master k/v vnode storage engine 41
client application failure detection protobuf http virtual nodes riak_client sloppy quorums dynamo model FSMs a distributed system at heart: riak core vector clocks vnode master dynamic membership k/v vnode remote dispatch gossip storage engine 42
client application protobuf http riak_client dynamo model FSMs riak core carefully managed complexity... vnode master k/v vnode storage engine 43
client application protobuf http riak_client dynamo model FSMs riak core allows simplicity at the edges vnode master k/v vnode storage engine 44
client application let's make a dist. search system! protobuf http riak_client dynamo model FSMs riak core vnode master k/v vnode k/v storage engine 45
client application let's make a dist. search system! protobuf http riak_client adapted FSMs dynamo model FSMs riak core vnode master k/v vnode k/v storage engine 46
client application let's make a dist. search system! protobuf http riak_client adapted FSMs dynamo model FSMs riak core vnode master k/v vnode search vnode search storage k/v storage engine 47
solr lucene protobuf http search client riak_client done! adapted FSMs dynamo model FSMs riak core vnode master k/v vnode search vnode search storage k/v storage engine 48
solr lucene protobuf http search client riak_client the sum adapted FSMs dynamo model FSMs is greater than riak core the parts vnode master k/v vnode search vnode search storage k/v storage engine 49
I don't know what's next 50
I don't know what's next, I don't know what's next but I know how to build it. another interface solr lucene protobuf http search client X client riak_client more FSMs adapted FSMs dynamo model FSMs riak core vnode master k/v vnode X vnode search vnode X storage search storage k/v storage engine 51
I don't know what's next, I don't know what's next but I know how to build it. I know how to build it interoperability scalability fault-tolerance predictable availability riak core ease of operations flexible storage pluggable protocols 52
I know how to build it I know how to build it, but you don't have to. interoperability scalability fault-tolerance predictable availability ease of operations pluggable protocols flexible storage 53
our earlier evaluation criteria: ➡ innate/exposed data model ➡ distribution/operational model 54
➡ innate/exposed data model ➡ distribution/operational model fully distributed system 55
flexible and growing ➡ innate/exposed data model ➡ distribution/operational model fully distributed system 56
http://www.basho.com/ Justin Sheehy justin@basho.com 57
Recommend
More recommend