Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
The things I've seen, living with MongoDB
Search
Bradley Whittington
October 03, 2013
Technology
0
130
The things I've seen, living with MongoDB
A short talk through some of the lessons learned about MongoDB at Motribe and Mxit
Bradley Whittington
October 03, 2013
Tweet
Share
More Decks by Bradley Whittington
See All by Bradley Whittington
Black Friday 2017 talk at Cape Town DevOps meetup
bradwhittington
0
33
Let's talk about Git
bradwhittington
0
75
Doing something new in an existing company culture
bradwhittington
0
130
Load Balancing 101
bradwhittington
1
480
Agile-ish is good enough
bradwhittington
1
550
PHP Addiction - or, teach someone about python
bradwhittington
2
630
Quick overview of MongoDB
bradwhittington
0
110
Other Decks in Technology
See All in Technology
adk-samples に学ぶデータ分析 LLM エージェント開発
na0
3
970
Digital omtanke på Internetdagarna 2025
axbom
PRO
0
140
段階的に進める、 挫折しない自宅サーバ入門
yu_kod
5
2k
私も懇親会は苦手でした ~苦手だからこそ懇親会を楽しむ方法~ / 20251127 Masaki Okuda
shift_evolve
PRO
4
380
日経電子版の BCP への取り組みについて/mediajaws1121
nikkei_engineer_recruiting
0
110
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3.2k
Modern Data Stack大好きマンが語るSnowflakeの魅力
sagara
0
130
Codeer.LowCode.Blazor 紹介と成長録
wadawada
0
110
mablでリグレッションテストをデイリー実行するまで #mablExperience
bengo4com
0
440
都市スケールAR制作で気をつけること
segur
0
210
type-challenges を全問解いたのでエッセンスと推し問題を紹介してみる
kworkdev
PRO
0
140
2025 DORA Reportから読み解く!AIが映し出す、成果を出し続ける組織の共通点 #開発生産性_findy
takabow
2
750
Featured
See All Featured
Designing for Performance
lara
610
69k
Optimizing for Happiness
mojombo
379
70k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
Statistics for Hackers
jakevdp
799
230k
4 Signs Your Business is Dying
shpigford
186
22k
Music & Morning Musume
bryan
46
7k
GitHub's CSS Performance
jonrohan
1032
470k
Writing Fast Ruby
sferik
630
62k
How GitHub (no longer) Works
holman
316
140k
Unsuck your backbone
ammeep
671
58k
KATA
mclloyd
PRO
32
15k
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
Transcript
The things I’ve seen, living with MongoDB Brad Whittington VP
web products - Mxit
What we use MongoDB for Primary data store for a
few consumer products. Motribe mobile social network - JudgeME & MxPix Mxit Launch
JudgeMe
None
Polytechnical university of hardknocks 1 week into my new job…
Zero MongoDB experience Massive crashes and timeouts on our cluster Hundreds of requests per minute
MongoDB docs == MongoDB + EC2 =
db.serverStatus() rs.add(...) MMS
MongoSQL? Mongo is *not* a relational database This is bad:
{ _id:... friend_id:... user_id:... }
The Data is Hot If you can’t fit all your
data in RAM, make sure you are kind to your (network connected) hard drives. Reads from (networked) disks are (incredibly) slow.
sort by rand() limit 1 MongoDB is all… One Solution!
(see the help pages for more) Add random geospatial positions Geospatial indexing Query for objects near [x,y] Disks are all like
I wish we had Capped Arrays*... Database with Capped Collections.Totally
okay. For the first n00 000 collections. Then it’s a bad idea. A very bad idea. * Available in MongoDB 2.4
A fresh start. Mxit Launch Platform for app creation Aim
for ±single document per request Cache cleverly, aggressively Database per app 300 authors 9M pageviews/month 2M unique users 4 m1.small 1 amazon core, 1.7GB ram
A fresh lesson Doing ensureIndex(..., {background:true}) inline in the request
is sub-optimal. 60 indexing processes 3M document collection (not fully in RAM) Not ideal.
db.currentOp() db.killOp() db.repair() db.currentOp().inprog.forEach( function(d){ if(d.waitingForLock && d.lockType != "read")
printjson(d) })
MongoDB Love • Mongo terminal is JS • Recovery is
quick, easy • Sharding is easy • Indexes are lovely • Be careful in your architecture / queries. Pure index queries are ++ • MongoDB is not a Relational DB
Read http://aphyr.com/tags/jepsen Aphyr / Jepsen / Call me maybe
@darb github.com/bradwhittington speakerdeck.com/u/bradwhittington/ Questions?