NoSQL    Mårten GustafsonBrown bag lunch @ TUI / Fritidsresor Stockholm                 2011-08-31
Not Only SQL
Disclaimer I don’t know any and all     products by heart I’m trying to illustrate my      broad reasoning
“NoSQL is a movement promoting a looselydefined class of non-relational data storesthat break with a long history of relati...
“NoSQL is a movement promoting a looselydefined class of non-relational data storesthat break with a long history of relati...
“NoSQL is a movement promoting a looselydefined class of non-relational data storesthat break with a long history of relati...
“NoSQL is a movement promoting a looselydefined class of non-relational data storesthat break with a long history of relati...
“NoSQL is a movement promoting a looselydefined class of non-relational data storesthat break with a long history of relati...
Example reasoning“...so our RDBMS is a SPoF that won’t scale”
Example reasoning“...so our RDBMS is a SPoF that won’t scale”                             move to?                        ...
Example reasoning“...so our RDBMS is a SPoF that won’t scale”                             move to?                        ...
Example reasoning“...so our RDBMS is a SPoF that won’t scale”                               move to?                      ...
Example reasoning“...so our RDBMS is a SPoF that won’t scale”                requires?        move to?De-normalization    ...
Example reasoning“...so our RDBMS is a SPoF that won’t scale”                requires?        move to?De-normalization    ...
Example reasoning“...so our RDBMS is a SPoF that won’t scale”                    requires?        move to?De-normalization...
There is no free lunch.
Key aspects
Key aspects• Type of data
Key aspects• Type of data • Graph
Key aspects• Type of data • Graph • Documents & key/value-pairs
Key aspects• Type of data • Graph • Documents & key/value-pairs• Operational aspect
Key aspects• Type of data • Graph • Documents & key/value-pairs• Operational aspect • Resilient
Key aspects• Type of data • Graph • Documents & key/value-pairs• Operational aspect • Resilient • Atomic
Example                    Atomic       Resilient                     Neo4J    Graph                            ?         ...
Sample cases
Case A: Data from user• Data set... • ...mix of binary & JSON                    (access by known key) • ...replicated to ...
Case A: Data from user                    Atomic       Resilient                     Neo4J    Graph                       ...
Case A: Data from user•   Riak due to...    •   outstanding packaging & community    •   simple on both server and worksta...
Case B: configuration• Data set... • ...is JSON(access by alternating keys) • ...on all nodes • ...seldom updated      (rea...
Case B: configuration                    Atomic       Resilient                     Neo4J    Graph                         ...
Case B: configuration• CouchDB due to...  • simple on both server and workstations  • HTTP API  • Views for alternating key...
priorities & trade-offs
does it fit with current data structures?
ease of adoption?
search and reporting?
does it speak HTTP?
availability and redundancy?
can you monitor it?
performance?
ease of scaling in and out?
commercial support available?
does it run on your preferred OS?
is it properly packaged?
do you understand it?
is your data safe?
there is no universal solution
Thx.Mårten Gustafson@martengustafsonhttp://marten.gustafson.pp.se/marten.gustafson@gmail.com
Upcoming SlideShare
Loading in...5
×

2011 05-12 nosql-fritidsresor

929

Published on

Brown bag lunch presentation given at TUI / Fritidsresor in Stockholm on approaching and evaluating the NoSQL field.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
929
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • NoSQL tends crammed with religious zealots\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • (No)SQL for me is very much about trade offs\n
  • Don’t underestimate the exercise of making your data “fit” a certain nosql product\n
  • Client libraries?\nDoes it require driver libraries?\n
  • What access patterns do you have today? Tomorrow?\nWhat kind of reports will customers or management require?\n
  • For us at Hitta.se this is important since almost everything we do is HTTP based\n
  • What kinds of availability?\nHow does it handle node failures? Network partitions?\n
  • How and with what?\n
  • Out-of-the-box vs. vertical vs. horizontal?\n
  • What’s required to add additional nodes?\nHow do you remove a node temporarily or permanently?\n
  • And how is the community?\n
  • \n
  • Proper install packages?\nSane defaults in terms of service accounts and privileges?\n
  • Don’t underestimate this\n
  • Is your data really durable on disk -- assuming that’s what you need\n
  • \n
  • \n
  • 2011 05-12 nosql-fritidsresor

    1. 1. NoSQL Mårten GustafsonBrown bag lunch @ TUI / Fritidsresor Stockholm 2011-08-31
    2. 2. Not Only SQL
    3. 3. Disclaimer I don’t know any and all products by heart I’m trying to illustrate my broad reasoning
    4. 4. “NoSQL is a movement promoting a looselydefined class of non-relational data storesthat break with a long history of relationaldatabases” - Wikipedia
    5. 5. “NoSQL is a movement promoting a looselydefined class of non-relational data storesthat break with a long history of relationaldatabases” - Wikipedia• Not one single technique
    6. 6. “NoSQL is a movement promoting a looselydefined class of non-relational data storesthat break with a long history of relationaldatabases” - Wikipedia• Not one single technique• Not one type of data
    7. 7. “NoSQL is a movement promoting a looselydefined class of non-relational data storesthat break with a long history of relationaldatabases” - Wikipedia• Not one single technique• Not one type of data• Not one type of use case
    8. 8. “NoSQL is a movement promoting a looselydefined class of non-relational data storesthat break with a long history of relationaldatabases” - Wikipedia• Not one single technique• Not one type of data• Not one type of use case
    9. 9. Example reasoning“...so our RDBMS is a SPoF that won’t scale”
    10. 10. Example reasoning“...so our RDBMS is a SPoF that won’t scale” move to? Multi-master
    11. 11. Example reasoning“...so our RDBMS is a SPoF that won’t scale” move to? Multi-master sacrifices? Atomicity
    12. 12. Example reasoning“...so our RDBMS is a SPoF that won’t scale” move to? Multi-master sacrifices? gives? Atomicity Distribution / replication
    13. 13. Example reasoning“...so our RDBMS is a SPoF that won’t scale” requires? move to?De-normalization Multi-master sacrifices? gives? Atomicity Distribution / replication
    14. 14. Example reasoning“...so our RDBMS is a SPoF that won’t scale” requires? move to?De-normalization Multi-master dissolves? sacrifices? gives? Integrity Atomicity Distribution / replication
    15. 15. Example reasoning“...so our RDBMS is a SPoF that won’t scale” requires? move to?De-normalization Multi-master dissolves? sacrifices? gives? IntegrityQuerying toughens? Atomicity Distribution / replication
    16. 16. There is no free lunch.
    17. 17. Key aspects
    18. 18. Key aspects• Type of data
    19. 19. Key aspects• Type of data • Graph
    20. 20. Key aspects• Type of data • Graph • Documents & key/value-pairs
    21. 21. Key aspects• Type of data • Graph • Documents & key/value-pairs• Operational aspect
    22. 22. Key aspects• Type of data • Graph • Documents & key/value-pairs• Operational aspect • Resilient
    23. 23. Key aspects• Type of data • Graph • Documents & key/value-pairs• Operational aspect • Resilient • Atomic
    24. 24. Example Atomic Resilient Neo4J Graph ? InfiniteGraph CouchDB Riak Document & RavenDB Voldemortkey/value-paris Redis Cassandra
    25. 25. Sample cases
    26. 26. Case A: Data from user• Data set... • ...mix of binary & JSON (access by known key) • ...replicated to all nodes on best effort • ...allows read & write on any node • individual nodes may be unavailable
    27. 27. Case A: Data from user Atomic Resilient Neo4J Graph ? InfiniteGraph CouchDB Riak Document & RavenDB Voldemortkey/value-pairs Redis Cassandra
    28. 28. Case A: Data from user• Riak due to... • outstanding packaging & community • simple on both server and workstations • serious and dedicated engineering team • Lots of statistics • HTTP API • Everything’s tunable (much per request)
    29. 29. Case B: configuration• Data set... • ...is JSON(access by alternating keys) • ...on all nodes • ...seldom updated (read only) • ...consistent and replicated on demand
    30. 30. Case B: configuration Atomic Resilient Neo4J Graph ? InfiniteGraph CouchDB Riak Document & RavenDB Voldemortkey/value-pairs Redis Cassandra
    31. 31. Case B: configuration• CouchDB due to... • simple on both server and workstations • HTTP API • Views for alternating keys • Lots of statistics • Dead simple “one-click” push replication
    32. 32. priorities & trade-offs
    33. 33. does it fit with current data structures?
    34. 34. ease of adoption?
    35. 35. search and reporting?
    36. 36. does it speak HTTP?
    37. 37. availability and redundancy?
    38. 38. can you monitor it?
    39. 39. performance?
    40. 40. ease of scaling in and out?
    41. 41. commercial support available?
    42. 42. does it run on your preferred OS?
    43. 43. is it properly packaged?
    44. 44. do you understand it?
    45. 45. is your data safe?
    46. 46. there is no universal solution
    47. 47. Thx.Mårten Gustafson@martengustafsonhttp://marten.gustafson.pp.se/marten.gustafson@gmail.com
    1. Gostou de algum slide específico?

      Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

    ×