why nosql why riak
play

Why NoSQL? Why Riak? Justin Sheehy justin@basho.com 1 What's all - PowerPoint PPT Presentation

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!


  1. Why NoSQL? Why Riak? Justin Sheehy justin@basho.com 1

  2. What's all of this NoSQL nonsense? Voldemort Riak HBase Neo4j Cassandra MongoDB CouchDB Membase Redis (and the list goes on...) 2

  3. What went wrong with SQL databases? Nothing! They are great tools. 3

  4. What went wrong with SQL databases? Nothing! They are great tools. 4

  5. NoSQL came before SQL. Honeywell IDS VAX DBMS dbm IBM IMS MUMPS Cincom TOTAL PICK (and the list goes on...) 5

  6. 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

  7. The start of today's NoSQL Amazon: Dynamo (2007) Google: Bigtable (2006) Technology is not the important part! 7

  8. 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

  9. 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

  10. What's all of this NoSQL nonsense? Voldemort Riak HBase Neo4j Cassandra MongoDB CouchDB Membase Redis Do we really need all of these? 10

  11. 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

  12. 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

  13. ? how do you know what solves your real problem two places to start: ➡ innate/exposed data model ➡ distribution/operational model 13

  14. 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

  15. 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

  16. data model differences Voldemort N e o 4 j Cassandra K/V Graph ColFam etc etc 16

  17. distribution model differences requirements usually from biz or operations Distributed System Server Replication Single Server Locally Embedded 17

  18. distribution model differences requirements usually from biz or operations Distributed System Server Replication Single Server Locally Embedded 18

  19. starting to decide Distributed System Server Replication Single Server Locally Embedded K/V Graph ColFam etc etc 19

  20. 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

  21. 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

  22. now we're getting somewhere! Distributed System Server Replication K/V ColFam 22

  23. we can make a shorter list... Riak, Voldemort, CouchDB, Cassandra, HBase... Distributed System Server Replication K/V ColFam 23

  24. 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

  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! Distributed System Server Replication ColFam K/V 25

  26. 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

  27. How about MySQL? I believe we could, Bob. wait, WHAT? 27

  28. Great tools are still great tools. How about MySQL? I believe we could, Bob. wait, WHAT? 28

  29. Great tools are still great tools. Understand your needs before you choose. 29

  30. So what's so special about ? 30

  31. Riak KV Distributed System Server Replication Single Server Locally Embedded ColFam K/V Graph etc etc 31

  32. Riak KV Riak Search Distributed System Server Replication Single Server Locally Embedded ColFam K/V Graph etc etc 32

  33. Riak KV Riak Core Riak Search Distributed System Server Replication Single Server Locally Embedded ColFam K/V Graph etc etc 33

  34. improvements flow upward Riak Core can flow sideways Distributed System Server Replication Single Server Locally Embedded ColFam ? K/V Graph etc 34

  35. Will the market need this? Distributed System Server Replication Single Server Locally Embedded ColFam ? K/V Graph etc 35

  36. 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

  37. client application protobuf http riak_client The Riak key/value stack: dynamo model FSMs riak core vnode master k/v vnode storage engine 37

  38. 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

  39. 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

  40. 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

  41. client application protobuf http riak_client dynamo model FSMs a distributed system at heart: riak core vnode master k/v vnode storage engine 41

  42. 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

  43. client application protobuf http riak_client dynamo model FSMs riak core carefully managed complexity... vnode master k/v vnode storage engine 43

  44. client application protobuf http riak_client dynamo model FSMs riak core allows simplicity at the edges vnode master k/v vnode storage engine 44

  45. 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

  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 k/v storage engine 46

  47. 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

  48. 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

  49. 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

  50. I don't know what's next 50

  51. 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

  52. 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

  53. 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

  54. our earlier evaluation criteria: ➡ innate/exposed data model ➡ distribution/operational model 54

  55. ➡ innate/exposed data model ➡ distribution/operational model fully distributed system 55

  56. flexible and growing ➡ innate/exposed data model ➡ distribution/operational model fully distributed system 56

  57. http://www.basho.com/ Justin Sheehy justin@basho.com 57

Recommend


More recommend