NoSQLUsing the right tool for the right job<br />
www.xebia.fr / blog.xebia.fr<br />2<br />No  SQL<br />
www.xebia.fr / blog.xebia.fr<br />3<br />Not<br />Only<br />I<br />/<br />I<br />/<br />No  SQL<br />
www.xebia.fr / blog.xebia.fr<br />4<br />Not<br />Only<br />I<br />/<br />I<br />/<br />/<br />/<br />No  SQL<br />
www.xebia.fr / blog.xebia.fr<br />5<br />Not<br />Only<br />I<br />/<br />I<br />/<br />/<br />/<br />No  SQL<br />Relatio...
www.xebia.fr / blog.xebia.fr<br />6<br />Need to store<br />some data ?<br />Oracle<br />SQL Server<br />Sybase<br />DB2<b...
www.xebia.fr / blog.xebia.fr<br />7<br />RDBMS are great for relationalstorage !<br />
www.xebia.fr / blog.xebia.fr<br />8<br />RDBMS may not befully trivial…<br />…what a pity if youjustwanted<br />a put / ge...
www.xebia.fr / blog.xebia.fr<br />9<br />How to achieve<br />scalability and<br />highavailability<br />with a RDMS ?<br />
www.xebia.fr / blog.xebia.fr<br />10<br />Memcachedcan help to reduce the pressure on RDBMS<br />
www.xebia.fr / blog.xebia.fr<br />11<br />But thiswasn’tenough for some people…<br />
www.xebia.fr / blog.xebia.fr<br />12<br />The birth of Dynamo at Amazon.com…<br />Temporal unavailability is acceptable<br...
www.xebia.fr / blog.xebia.fr<br />13<br />So theystarted to createtheirowndatabasethatwould match theirneeds…<br />
www.xebia.fr / blog.xebia.fr<br />14<br />So theystarted to createtheirowndatabasethatwould match theirneeds…<br />
www.xebia.fr / blog.xebia.fr<br />15<br />Consistent hashingspreadskeysuniformallyacross the partitions<br />
www.xebia.fr / blog.xebia.fr<br />16<br />Shardingbringsscalability, replicationbringshighavailability<br />
www.xebia.fr / blog.xebia.fr<br />17<br />But failuresstill have to behandledefficiently…<br />
www.xebia.fr / blog.xebia.fr<br />18<br />In case of failure of a node, the 2 othernodes serve itsload<br />
www.xebia.fr / blog.xebia.fr<br />19<br />In this configuration, clients know only few nodeswhichact as proxy to othernode...
www.xebia.fr / blog.xebia.fr<br />20<br />Gossipprotocol to let everybody know node B has failed…<br />
www.xebia.fr / blog.xebia.fr<br />21<br />Eventualconsistency…<br />N = Number of replicas<br />R = Number of readresponse...
www.xebia.fr / blog.xebia.fr<br />22<br />The ratio between N, R and W makeseverything…<br />
www.xebia.fr / blog.xebia.fr<br />23<br />The ratio between N, R and W makeseverything…<br />
www.xebia.fr / blog.xebia.fr<br />24<br />The ratio between N, R and W makeseverything…<br />
www.xebia.fr / blog.xebia.fr<br />25<br />
www.xebia.fr / blog.xebia.fr<br />26<br />Key-value stores<br />are simple…<br />
www.xebia.fr / blog.xebia.fr<br />27<br />Several competitors…<br />
www.xebia.fr / blog.xebia.fr<br />28<br />Riak…<br />
www.xebia.fr / blog.xebia.fr<br />29<br />Riak…<br />
www.xebia.fr / blog.xebia.fr<br />30<br />Document orienteddatabases are an evolution of key-value stores<br />
www.xebia.fr / blog.xebia.fr<br />31<br />MongoDBis the leader so far…<br />… 10gen saidthey are the « MySQL of NoSQL »<br />
www.xebia.fr / blog.xebia.fr<br />32<br />MongoDBis the leader so far…<br />
www.xebia.fr / blog.xebia.fr<br />33<br />MongoDBis the leader so far…<br />
www.xebia.fr / blog.xebia.fr<br />34<br />Graph databases are great to store… graphs !<br />
www.xebia.fr / blog.xebia.fr<br />35<br />NeoTechnologyis the leader so far with Neo4j…<br />
www.xebia.fr / blog.xebia.fr<br />36<br />Neo4j…<br />
www.xebia.fr / blog.xebia.fr<br />37<br />Column-orienteddatabases have a veryparticular data model…<br />
www.xebia.fr / blog.xebia.fr<br />38<br />Cassandra<br />Vs<br />HBase !<br />
www.xebia.fr / blog.xebia.fr<br />39<br />Cassandra addsSuperColumns to this model…<br />
www.xebia.fr / blog.xebia.fr<br />40<br />Cassandra wasdeveloppedatFacebook, to store the user messages<br />
www.xebia.fr / blog.xebia.fr<br />41<br />Nowalsoused by Digg, Twitter, Rackspace,…<br />
What a model…<br />www.xebia.fr / blog.xebia.fr<br />42<br />
www.xebia.fr / blog.xebia.fr<br />43<br />An example…<br />
www.xebia.fr / blog.xebia.fr<br />44<br />Cassandra Demo<br />
Upcoming SlideShare
Loading in...5
×

Xebia Knowledge Exchange (may 2010) - NoSQL : Using the right tool for the right job

2,006

Published on

Published in: Technology, News & Politics
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,006
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
26
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Xebia Knowledge Exchange (may 2010) - NoSQL : Using the right tool for the right job

  1. 1. NoSQLUsing the right tool for the right job<br />
  2. 2. www.xebia.fr / blog.xebia.fr<br />2<br />No SQL<br />
  3. 3. www.xebia.fr / blog.xebia.fr<br />3<br />Not<br />Only<br />I<br />/<br />I<br />/<br />No SQL<br />
  4. 4. www.xebia.fr / blog.xebia.fr<br />4<br />Not<br />Only<br />I<br />/<br />I<br />/<br />/<br />/<br />No SQL<br />
  5. 5. www.xebia.fr / blog.xebia.fr<br />5<br />Not<br />Only<br />I<br />/<br />I<br />/<br />/<br />/<br />No SQL<br />Relational<br />
  6. 6. www.xebia.fr / blog.xebia.fr<br />6<br />Need to store<br />some data ?<br />Oracle<br />SQL Server<br />Sybase<br />DB2<br />MySQL<br />PostgreSQL<br />
  7. 7. www.xebia.fr / blog.xebia.fr<br />7<br />RDBMS are great for relationalstorage !<br />
  8. 8. www.xebia.fr / blog.xebia.fr<br />8<br />RDBMS may not befully trivial…<br />…what a pity if youjustwanted<br />a put / get store<br />
  9. 9. www.xebia.fr / blog.xebia.fr<br />9<br />How to achieve<br />scalability and<br />highavailability<br />with a RDMS ?<br />
  10. 10. www.xebia.fr / blog.xebia.fr<br />10<br />Memcachedcan help to reduce the pressure on RDBMS<br />
  11. 11. www.xebia.fr / blog.xebia.fr<br />11<br />But thiswasn’tenough for some people…<br />
  12. 12. www.xebia.fr / blog.xebia.fr<br />12<br />The birth of Dynamo at Amazon.com…<br />Temporal unavailability is acceptable<br />Rich storage is preferred for reporting<br />Write must ALWAYS be available <br />Only key-value is required<br />
  13. 13. www.xebia.fr / blog.xebia.fr<br />13<br />So theystarted to createtheirowndatabasethatwould match theirneeds…<br />
  14. 14. www.xebia.fr / blog.xebia.fr<br />14<br />So theystarted to createtheirowndatabasethatwould match theirneeds…<br />
  15. 15. www.xebia.fr / blog.xebia.fr<br />15<br />Consistent hashingspreadskeysuniformallyacross the partitions<br />
  16. 16. www.xebia.fr / blog.xebia.fr<br />16<br />Shardingbringsscalability, replicationbringshighavailability<br />
  17. 17. www.xebia.fr / blog.xebia.fr<br />17<br />But failuresstill have to behandledefficiently…<br />
  18. 18. www.xebia.fr / blog.xebia.fr<br />18<br />In case of failure of a node, the 2 othernodes serve itsload<br />
  19. 19. www.xebia.fr / blog.xebia.fr<br />19<br />In this configuration, clients know only few nodeswhichact as proxy to othernodes…<br />
  20. 20. www.xebia.fr / blog.xebia.fr<br />20<br />Gossipprotocol to let everybody know node B has failed…<br />
  21. 21. www.xebia.fr / blog.xebia.fr<br />21<br />Eventualconsistency…<br />N = Number of replicas<br />R = Number of readresponses to wait for<br />W = Number of writeaknowledges to wait for<br />
  22. 22. www.xebia.fr / blog.xebia.fr<br />22<br />The ratio between N, R and W makeseverything…<br />
  23. 23. www.xebia.fr / blog.xebia.fr<br />23<br />The ratio between N, R and W makeseverything…<br />
  24. 24. www.xebia.fr / blog.xebia.fr<br />24<br />The ratio between N, R and W makeseverything…<br />
  25. 25. www.xebia.fr / blog.xebia.fr<br />25<br />
  26. 26. www.xebia.fr / blog.xebia.fr<br />26<br />Key-value stores<br />are simple…<br />
  27. 27. www.xebia.fr / blog.xebia.fr<br />27<br />Several competitors…<br />
  28. 28. www.xebia.fr / blog.xebia.fr<br />28<br />Riak…<br />
  29. 29. www.xebia.fr / blog.xebia.fr<br />29<br />Riak…<br />
  30. 30. www.xebia.fr / blog.xebia.fr<br />30<br />Document orienteddatabases are an evolution of key-value stores<br />
  31. 31. www.xebia.fr / blog.xebia.fr<br />31<br />MongoDBis the leader so far…<br />… 10gen saidthey are the « MySQL of NoSQL »<br />
  32. 32. www.xebia.fr / blog.xebia.fr<br />32<br />MongoDBis the leader so far…<br />
  33. 33. www.xebia.fr / blog.xebia.fr<br />33<br />MongoDBis the leader so far…<br />
  34. 34. www.xebia.fr / blog.xebia.fr<br />34<br />Graph databases are great to store… graphs !<br />
  35. 35. www.xebia.fr / blog.xebia.fr<br />35<br />NeoTechnologyis the leader so far with Neo4j…<br />
  36. 36. www.xebia.fr / blog.xebia.fr<br />36<br />Neo4j…<br />
  37. 37. www.xebia.fr / blog.xebia.fr<br />37<br />Column-orienteddatabases have a veryparticular data model…<br />
  38. 38. www.xebia.fr / blog.xebia.fr<br />38<br />Cassandra<br />Vs<br />HBase !<br />
  39. 39. www.xebia.fr / blog.xebia.fr<br />39<br />Cassandra addsSuperColumns to this model…<br />
  40. 40. www.xebia.fr / blog.xebia.fr<br />40<br />Cassandra wasdeveloppedatFacebook, to store the user messages<br />
  41. 41. www.xebia.fr / blog.xebia.fr<br />41<br />Nowalsoused by Digg, Twitter, Rackspace,…<br />
  42. 42. What a model…<br />www.xebia.fr / blog.xebia.fr<br />42<br />
  43. 43. www.xebia.fr / blog.xebia.fr<br />43<br />An example…<br />
  44. 44. www.xebia.fr / blog.xebia.fr<br />44<br />Cassandra Demo<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×