Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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
120
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
32
Let's talk about Git
bradwhittington
0
67
Doing something new in an existing company culture
bradwhittington
0
130
Load Balancing 101
bradwhittington
1
470
Agile-ish is good enough
bradwhittington
1
500
PHP Addiction - or, teach someone about python
bradwhittington
2
620
Quick overview of MongoDB
bradwhittington
0
94
Other Decks in Technology
See All in Technology
Dapr For Java Developers SouJava 25
salaboy
1
130
PostgreSQL Unconference #52 pg_tde
nori_shinoda
1
230
お問い合わせ対応の改善取り組みとその進め方
masartz
1
370
ウェブアクセシビリティとは
lycorptech_jp
PRO
0
280
サーバシステムを無理なくコンテナ移行する際に伝えたい4つのポイント/Container_Happy_Migration_Method
ozawa
1
100
データベースで見る『家族アルバム みてね』の変遷 / The Evolution of Family Album Through the Lens of Databases
kohbis
2
440
数百台のオンプレミスのサーバーをEKSに移行した話
yukiteraoka
0
680
移行できそうでやりきれなかった 10年超えのシステムを葬るための戦略
ryu955
2
490
KCD Brazil '25: Enabling Developers with Dapr & Backstage
salaboy
1
130
LINE Notify互換のボットを作った話
kenichirokimura
0
180
Cloud Native PG 使ってみて気づいたことと最新機能の紹介 - 第52回PostgreSQLアンカンファレンス
seinoyu
2
220
AIエージェント完全に理解した
segavvy
4
270
Featured
See All Featured
A Tale of Four Properties
chriscoyier
158
23k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
177
52k
Six Lessons from altMBA
skipperchong
27
3.7k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
102
18k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
Designing Experiences People Love
moore
141
23k
Producing Creativity
orderedlist
PRO
344
40k
What's in a price? How to price your products and services
michaelherold
245
12k
Become a Pro
speakerdeck
PRO
27
5.2k
Scaling GitHub
holman
459
140k
Speed Design
sergeychernyshev
28
860
Java REST API Framework Comparison - PWX 2021
mraible
29
8.5k
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?