Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

MongoDB: How it Works

17,269 views

Published on

A short deck used as talking points for 10gen's Internals webinar.

Published in: Technology

MongoDB: How it Works

  1. 1. @mongodb @mdirolf http://www.mongodb.org/
  2. 2. How it Works http://www.flickr.com/photos/tmh9/677919415/
  3. 3. BSON {“hello”: “bson”} x15 x00 x00 x00 x02 h e l l o x00 x05 x00 x00 x00 b s o n x00 x00 http://bsonspec.org
  4. 4. Messages • TCP/IP Wire Protocol • Separate messages for insert, update, query, get_more, delete, etc. http://www.mongodb.org/display/DOCS/Mongo+Wire+Protocol
  5. 5. Anatomy of an insert use foo; db.test.insert({“hello”: “bson”}); message length request id response id op code (insert) x67x00x00x0 xXXxXXxXX x00x00x00x xd2x07x00x00 0 xXX 00 reserved collection name document(s) x00x00x00x00 f o o . t e s t x00 BSON({“hello”: “bson”}) http://www.mongodb.org/display/DOCS/Mongo+Wire+Protocol
  6. 6. Memory mapped storage engine
  7. 7. Commands db.foo.drop(); = db.foo.runCommand({drop: "foo"}); = db.$cmd.findOne({drop: "foo"}); = db.$cmd.find({drop: "foo"}).limit(-1);
  8. 8. Query optimizer find({x: 10, y: “foo”}) scan terminate index on x index on y remember
  9. 9. Geohashing (20, 10) (0001 0100, 0000 1010) 0000 0010 0110 0100 (21, 9) 0000 0010 0110 0011 Problem: bit-flips (127 vs 128)
  10. 10. Replication Replica sets Master - slave master slave master master slave slave slave slave master master slave slave master
  11. 11. Replication • oplog - capped collection • idempotent ($inc -> $set)
  12. 12. Auto-sharding Shards mongod mongod mongod ... Config mongod mongod mongod Servers mongod mongod mongod mongos mongos ... client

×