Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MongoDB born in the cloud

rozza
June 28, 2012
98

MongoDB born in the cloud

Intro to mongoDB for Cloudeast

rozza

June 28, 2012
Tweet

Transcript

  1. 10gen Dwight Merriman and Eliot Horowitz Double Click & Shopwiki

    -30 billion ads a day -Built multiple database caching layers
  2. 2007 10gen formed Originally to create a PAAS service Open

    sourced MongoDB in 2009 0.8 February 2009 First standalone release 1.0 August 2009 Simple, but used in production 1.2 December 2009 map/reduce, external sort index building 1.4 March 2010 Background indexing, geo 1.6 August 2010 Sharding, replica sets 1.8 March 2011 Journalling, sparse/covered indexes 2.0 September 2012 Compact, concurrency 2.2 July 2012 Concurrency, aggregation framework
  3. JSON Documents Rich data models Seamlessly map to native programming

    language Flexible for dynamic data Better data locality
  4. Json document { _id : ObjectId("4c4ba5c0672c685e5e8aabf3"), author : "Ross", title

    : "mongoDB Born in the cloud", body : "All about mongoDB...", date : ISODate("2012-06-28T11:30:27.442Z"), tags : [ "tech", "databases" ], comments : [{ author : "Fred", date : ISODate("2012-06-28T11:40:27.442Z"), body : "mongoDB looks great" }] }
  5. Examples // find posts matching a regular expression > db.posts.find({author:

    /^ro*/i }) // find inside sub documents > db.posts.find({comments.author: "Ross" }}) // Add a comment to the post > db.posts.update({ _id: "..." }, {"$push": {comments: new_comment}, "$inc": {comments_count: 1}});
  6. High availability Single master system - Primary always consistent Automatic

    failover if a Primary fails Automatic recovery when a node joins the set Full control over writes using write concerns Easy to administer and manage
  7. S S negotiate new master DOWN PRIMARY may fail Automatic

    election of new PRIMARY if majority exists
  8. Advanced features Durability via write concerns - On a connection,

    database, collection and query level - Tag nodes and direct writes to specific nodes / data centres Prioritisation - Prefer specific nodes to be primary - Ensure certain nodes are never primary Scaling reads - Not applicable for all applications - Secondaries can be used for backups, analytics, data processing
  9. EU LOCAL p:10 p:10 Backups / Analytics Server Primary Data

    Centre Example Cloud Setup USA p:5 p:0 p:1
  10. Primary shard1 Horizontal scale out write read MongoD shard2 MongoD

    MongoD MongoD shard3 MongoD MongoD MongoD Secondary Secondary
  11. Sharding in the cloud <Shard 1> priority: 10 <Shard 2>

    priority: 5 <Shard 3> priority: 5 AZ-1 config server <Shard 1> priority: 5 <Shard 2> priority: 10 <Shard 3> priority: 5 AZ-2 config server <Shard 1> priority: 5 <Shard 2> priority: 5 <Shard 3> priority: 10 AZ-3 config server
  12. @mongodb conferences, appearances, and meetups http://www.10gen.com/events http://bit.ly/mongofb Facebook | Twitter

    | LinkedIn http://linkd.in/joinmongo download at mongodb.org support, training, and this talk brought to you by