Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
MongoDB Replication
Search
Sridhar Nanjundeswaran
September 14, 2012
Programming
130
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
MongoDB Replication
Presented at MongoDB Seattle Sept 2012.
Sridhar Nanjundeswaran
September 14, 2012
More Decks by Sridhar Nanjundeswaran
See All by Sridhar Nanjundeswaran
MongoDB Introduction
sridharnanjundeswaran
2
150
Built to scale – Cloud Computing and NoSQL databases
sridharnanjundeswaran
0
81
Replication and Replica Sets
sridharnanjundeswaran
1
130
MongoDB Roadmap
sridharnanjundeswaran
1
140
MongoDB Replication and Replica Sets
sridharnanjundeswaran
1
64
MongoDB Roadmap
sridharnanjundeswaran
1
59
Building your first MongoDB app
sridharnanjundeswaran
0
79
MongoDB and Windows Azure
sridharnanjundeswaran
0
81
MongoDB 2.2 New Features
sridharnanjundeswaran
2
210
Other Decks in Programming
See All in Programming
Gmail/Google DriveをトリガーにAIエージェントを動かそう! / Run AI agents with Gmail/Google Drive as triggers!
har1101
3
480
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
120
信頼性の目標を誰も求めてない
shubox
0
500
Webプラットフォームで議論されているセキュリティ課題 / Security issues being discussed on Web Platforms
petamoriken
0
310
AI時代に学ぶ 好きなルール 嫌いなルール Linter編
shorty5121
0
890
ハーネス設計入門 〜プロンプト、コンテキストの次〜
kinopeee
55
36k
初心者DevRelとして参加者だった私が、DevRel Talks!#2に登壇するまでにしてきたこと
sokohirai
0
350
「AI時代、配布するPythonコードをどう守るか: 難読化の実験と判断軸」 #PyconJP2026
pkshadeck
PRO
2
180
Seeing Through Serverless: Observability for AWS Lambda with ADOT and CloudWatch Application Signals
seike460
PRO
1
130
GKE アップグレード前に知っておきたい Blue/Green と PDB の関係
stkk
0
160
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
210
AIの中の人になってみる
htkym
0
170
Featured
See All Featured
Ethics towards AI in product and experience design
skipperchong
2
370
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
The Invisible Side of Design
smashingmag
301
52k
A Modern Web Designer's Workflow
chriscoyier
698
190k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
202
76k
For a Future-Friendly Web
brad_frost
183
10k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
520
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Ruling the World: When Life Gets Gamed
codingconduct
0
330
Site-Speed That Sticks
csswizardry
13
1.5k
How to Ace a Technical Interview
jacobian
281
24k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Transcript
1 Sridhar Nanjundeswaran, 10gen
[email protected]
@snanjund
2 • Introduction to Replica Sets • Developing with Replica
Sets • Operational Considerations • Miscellaneous
Introduction to Replica Sets What is it? Configuration Options
4 Node 1 Node 2 Node 3
5 Node 1 Secondary Node 2 Secondary Node 3 Primary
Replication Replication Heartbeat
6 Node 1 Secondary Node 2 Secondary Node 3 Primary
Heartbeat Primary Election
7 Node 1 Secondary Node 2 Primary Node 3 Primary
Heartbeat Replication
8 Node 1 Secondary Node 2 Primary Node 3 Secondary
Replication Heartbeat Replication
9 • Priorities – Help control election – Secondary only
• Slave Delay – Purposely delay replication • Hidden – Not seen as part client connection • Tagging
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
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"})
Developing with Replica Sets Consistency Write Preference Read Preference
13 Primary Secondary Secondary Read Write Driver Client
14 Primary Read Write Driver Read Secondary Secondary Client Application
15 • Fire and forget • Wait for error •
Wait for journal sync • Wait for replication
16 Driver Primary write apply in memory
17 Driver Primary getLastError apply in memory
18 Driver Primary getLastError apply in memory write j:true Write
to journal
19 Driver Primary getLastError apply in memory write w:2 Secondary
replicate
20 • 5 modes – primary (only) - Default –
primaryPreferred – secondary – secondaryPreferred – nearest
21 • Custom read preferences • Control where you read
from – E.g. { "disk": "ssd", "use": "reporting" } • Use in conjunction with standard read preferences – Except primary
Operational Considerations Upgrade/Maintenance Common Deployment Scenarios
23 • No downtime • Rolling upgrade/maintenance – Start with
Secondary – Primary last
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
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
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
Miscellaneous Behind the scenes What’s new in 2.2
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 } } }
29 • Full read preference support in mongos – Drivers
too • Improved RS lag logging • rs.syncFrom command • buildIndexes setting • replIndexPrefetch setting
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
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