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
The things I've seen, living with MongoDB
Search
Bradley Whittington
October 03, 2013
Technology
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
More Decks by Bradley Whittington
See All by Bradley Whittington
Black Friday 2017 talk at Cape Town DevOps meetup
bradwhittington
0
56
Let's talk about Git
bradwhittington
0
110
Doing something new in an existing company culture
bradwhittington
0
150
Load Balancing 101
bradwhittington
1
520
Agile-ish is good enough
bradwhittington
1
590
PHP Addiction - or, teach someone about python
bradwhittington
2
670
Quick overview of MongoDB
bradwhittington
0
130
Other Decks in Technology
See All in Technology
自主式軟體工廠
philipz
0
150
プラットフォームを「作る」、 チームに「入り込む」
sansantech
PRO
0
670
スキルを作る、その前に!複数人で使われるスキルを 作るためのプロセス
junkifurukawa
2
190
20260929_AmazonGuardDutyの検出通知メールにAWS DevOpsAgentの調査結果を追加する
yhana
1
430
形式手法を使って仕様をコーディングしよう
mikanichinose
0
170
1万名の社員が使う認証基盤で どう信頼性を担保するか?
kairim0
0
180
人にやさしく、AIにやさしく、書き手を選ばないIaCのガードレール再考 / Rethinking IaC Guardrails for Humans and AI Alike
kohbis
6
2.1k
AIは爆速なのに、私が詰まっていた話 ― 音声入力と鳴くマスコットでボトルネックを削る
yama3133
0
490
IR Today: Theory, Practice, and Agents
dtunkelang
0
330
『GOエコノミー 』(相乗りサービス) におけるスペック駆動開発
mot_techtalk
1
260
20260930_Gemma4_Hands-on
tsho
0
210
Deep Data Security 機能解説
oracle4engineer
PRO
2
650
Featured
See All Featured
Speed Design
sergeychernyshev
33
2.1k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Navigating Weather and Climate Data
rabernat
0
540
Paper Plane
katiecoart
PRO
4
53k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
340
Side Projects
sachag
456
43k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
290
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
Designing for humans not robots
tammielis
254
26k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
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?