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

MongoDB Replication

MongoDB Replication

Presented at MongoDB Seattle Sept 2012.

Avatar for Sridhar Nanjundeswaran

Sridhar Nanjundeswaran

September 14, 2012
Tweet

More Decks by Sridhar Nanjundeswaran

Other Decks in Programming

Transcript

  1. 2 • Introduction to Replica Sets • Developing with Replica

    Sets • Operational Considerations • Miscellaneous
  2. 5 Node 1 Secondary Node 2 Secondary Node 3 Primary

    Replication Replication Heartbeat
  3. 8 Node 1 Secondary Node 2 Primary Node 3 Secondary

    Replication Heartbeat Replication
  4. 9 • Priorities – Help control election – Secondary only

    • Slave Delay – Purposely delay replication • Hidden – Not seen as part client connection • Tagging
  5. 10 • New in 2.0.0 • Control over where data

    is written to • Each member can have one or more tags e.g. • tags: {dc: "ny"} • tags: {dc: "ny",
 ip: "192.168",
 rack: "row3rk7"} • Replica set defines rules for where data resides • Rules can change without changing app code
  6. 11 { _id : "mySet", members : [ {_id :

    0, host : "A", tags : {"dc": "ny"}}, {_id : 1, host : "B", tags : {"dc": "ny"}}, {_id : 2, host : "C", tags : {"dc": "sf"}}, {_id : 3, host : "D", tags : {"dc": "sf"}}, {_id : 4, host : "E", tags : {"dc": "cloud"}}] settings : { getLastErrorModes : { allDCs : {"dc" : 3}, someDCs : {"dc" : 2}} } } > db.blogs.insert({...}) > db.runCommand({getLastError : 1, w : "allDCs"})
  7. 15 • Fire and forget • Wait for error •

    Wait for journal sync • Wait for replication
  8. 20 • 5 modes – primary (only) - Default –

    primaryPreferred – secondary – secondaryPreferred – nearest
  9. 21 • Custom read preferences • Control where you read

    from – E.g. { "disk": "ssd", "use": "reporting" } • Use in conjunction with standard read preferences – Except primary
  10. 24 • Single datacenter • Single switch & power •

    Points of failure: – Power – Network – Datacenter – Two node failure • Automatic recovery of single node crash Member 1 Member 2 Member 3
  11. 25 • Multi datacenter • DR node for safety •

    Can’t do multi data center durable write safely since only 1 node in distant DC Member 1 Member 2 Member 3 DC 1 DC 2
  12. 26 • Three data centers • Can survive full data

    center loss • Can do w= { dc : 2 } to guarantee write in 2 data centers (with tags) Member 1 Member 2 Member 3 Member 4 DC 2 Member 5 - DR DC 1 DC 3
  13. 28 • Local DB • Oplog – Capped collection –

    Idempotent version of operation stored db.replsettest.update({},{$inc:{set:1}}) { "ts" : …, "h" : …, "op" : "u", "ns" : "mongo_la.replsettest", "o2" : { "_id" : ObjectId("4f177bc768dad821278224d8") }, "o" : { "$set" : { "set" : 2 } } }
  14. 29 • Full read preference support in mongos – Drivers

    too • Improved RS lag logging • rs.syncFrom command • buildIndexes setting • replIndexPrefetch setting
  15. 30 • Use replica sets • Easy to setup even

    on a single machine • Check doc page for RS tutorials – http://docs.mongodb.org/manual/replication/#t utorials
  16. 31 @mongodb © Copyright 2010 10gen Inc. conferences, appearances, and

    meetups http://www.10gen.com/events http://bit.ly/mongofb Facebook | Twitter | LinkedIn http://linkd.in/joinmongo download at mongodb.org We’re Hiring ! [email protected] @snanjund