Why NoSQL Makes Sense

4,723 views

Published on

Dwight Merriman's keynote on

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

No Downloads
Views
Total views
4,723
On SlideShare
0
From Embeds
0
Number of Embeds
2,176
Actions
Shares
0
Downloads
25
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Why NoSQL Makes Sense

  1. 1. Why NoSQL Makes Senseand when to use something else?<br />Dwight Merriman / 10gen / MongoDB<br />
  2. 2. The Scaling ImperativeIt already was needed but now...<br />
  3. 3. cloud<br />commodity<br />http://www.globalnerdy.com/2007/09/07/multicore-musings/<br />
  4. 4. NoSQL = <br />Non-relational next generation operation data stores and databases<br />no joins +<br />light transactional semantics = <br /> horizontally scalable architectures<br />
  5. 5. Scaling Out<br />distribution & query models<br />Consistent hashing<br />Order preserving range<br /> chunking<br />Scatter gather<br />
  6. 6. Data models<br />no joins +<br />light transactional semantics = <br /> horizontally scalable architectures<br />Important side effect : <br /> new data models = <br /> improved ways to develop apps<br /> (“Agility”)<br />
  7. 7.
  8. 8. { <br />_id : ObjectId("4e2e3f92268cdda473b628f6"),<br />title : “Too Big to Fail”,<br />when : Date(“2011-07-26”),<br />author : “joe”,<br />text : “blah”<br />}<br />
  9. 9. { <br />_id : ObjectId("4e2e3f92268cdda473b628f6"),<br />title : “Too Big to Fail”,<br />when : Date(“2011-07-26”),<br />author : “joe”,<br />text : “blah”,<br />tags : [“business”, “news”, “north america”]<br />}<br />> db.posts.find( { tags : “news” } )<br />
  10. 10. { <br />_id : ObjectId("4e2e3f92268cdda473b628f6"),<br />title : “Too Big to Fail”,<br />when : Date(“2011-07-26”),<br />author : “joe”,<br />text : “blah”,<br />tags : [“business”, “news”, “north america”],<br />votes : 3,<br />voters : [“dmerr”, “sj”, “jane” ]<br />}<br />
  11. 11. { <br />_id : ObjectId("4e2e3f92268cdda473b628f6"),<br />title : “Too Big to Fail”,<br />when : Date(“2011-07-26”),<br />author : “joe”,<br />text : “blah”,<br />tags : [“business”, “news”, “north america”],<br />votes : 3,<br />voters : [“dmerr”, “sj”, “jane” ],<br />comments : [<br />{ by : “tim157”, text : “great story” },<br />{ by : “gora”, text : “i don’t think so” },<br />{ by : “dmerr”, text : “also check out...” }<br />]<br />}<br />
  12. 12. { <br />_id : ObjectId("4e2e3f92268cdda473b628f6"),<br />title : “Too Big to Fail”,<br />when : Date(“2011-07-26”),<br />author : “joe”,<br />text : “blah”,<br />tags : [“business”, “news”, “north america”],<br />votes : 3,<br />voters : [“dmerr”, “sj”, “jane” ],<br />comments : [<br />{ by : “tim157”, text : “great story” },<br />{ by : “gora”, text : “i don’t think so” },<br />{ by : “dmerr”, text : “also check out...” }<br />]<br />}<br />> db.posts.find({title:”Too Big to Fail”})<br />`<br />
  13. 13. { <br />_id : ObjectId("4e2e3f92268cdda473b628f6"),<br />title : “Too Big to Fail”,<br />when : Date(“2011-07-26”),<br />author : “joe”,<br />text : “blah”,<br />tags : [“business”, “news”, “north america”],<br />votes : 3,<br />voters : [“dmerr”, “sj”, “jane” ],<br />comments : [<br />{ by : “tim157”, text : “great story” },<br />{ by : “gora”, text : “i don’t think so” },<br />{ by : “dmerr”, text : “also check out...” }<br />]<br />}<br />> db.posts.find( { “comments.by” : “gora” } )<br />> db.posts.ensureIndex( { “comments.by” : 1 } )<br />
  14. 14. the db space 2000 - 2010<br />+ great for complex transactions<br />+ great for tabular data<br />+ ad hoc queries easy<br />- O<->R mapping hard<br />- speed/scale challenges<br />- not super agile<br />+ ad hoc queries easy<br />+ SQL gives us a standard protocol for the interface between clients and servers<br />+ scales horizontally better than operational dbs. some scale limits at massive scale<br />- schemas are rigid<br />- real time is hard; very good at bulk nightly data loads<br />
  15. 15. the db space 2000 - 2010<br />+ great for complex transactions<br />+ great for tabular data<br />+ ad hoc queries easy<br />- O<->R mapping hard<br />- speed/scale challenges<br />- not super agile<br />+ ad hoc queries easy<br />+ SQL gives us a standard protocol for the interface between clients and servers<br />+ scales horizontally better than operational dbs. some scale limits at massive scale<br />- schemas are rigid<br />- real time is hard; very good at bulk nightly data loads<br />
  16. 16. the db space 2000 - 2010<br />+ great for complex transactions<br />+ great for tabular data<br />+ ad hoc queries easy<br />- O<->R mapping hard<br />- speed/scale challenges<br />- not super agile<br />+ ad hoc queries easy<br />+ SQL gives us a standard protocol for the interface between clients and servers<br />+ scales horizontally better than operational dbs. some scale limits at massive scale<br />- schemas are rigid<br />- real time is hard; very good at bulk nightly data loads<br />
  17. 17. the db space<br />+ fits OO programming well<br />+ agile<br />+ speed/scale<br />- querying a little less add hoc<br />- not super transactional<br />- not sql<br />
  18. 18. Thanks<br />Dwight Merriman<br />CEO 10gen<br />http://blog.mongodb.org/<br />@mongodb<br />me - @dmerr<br />jobs@10gen.com<br />www.mongodb.org<br />www.mongodb.org/display/DOCS/Events<br />

×