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
100
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
21
Let's talk about Git
bradwhittington
0
59
Doing something new in an existing company culture
bradwhittington
0
110
Load Balancing 101
bradwhittington
1
470
Agile-ish is good enough
bradwhittington
1
410
PHP Addiction - or, teach someone about python
bradwhittington
2
610
Quick overview of MongoDB
bradwhittington
0
72
Other Decks in Technology
See All in Technology
社内共通ルールを値オブジェクトにして社内ライブラリとして運用してみた話
leveragestech
2
730
統計的学習理論読み Chapter 1
kmatsui
3
570
AMLD 2024 - Build Your Own GPT
donlelef
1
260
暗黙知を集積するプラットフォーム : 「健常者エミュレータ事例集」の取り組み
sora32127
1
160
「XX試験の環境作ってよ」と言われた時によく使うAWSのソリューションについて
bun913
0
120
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
7
100k
データ化エンジニアとしての1年を振り返る
sansantech
PRO
3
250
バッチ処理のSLOをどう設計するか
rynsuke
7
540
大規模なアジャイル開発の現場と技術負債 / Technical Debt
yoshiitaka
20
4k
Evolutionary Optimization of Model Merging Recipes
fuyu_quant0
3
510
オブジェクト指向CSSが叶えたかったことと、CSSのいま / The aims of Object-oriented CSS and the current state of CSS usage
shinkufencer
11
3.2k
#51 “Empowering Azure Storage with RDMA”
cafenero_777
3
210
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
119
16k
The Mythical Team-Month
searls
214
42k
Reflections from 52 weeks, 52 projects
jeffersonlam
343
19k
The Pragmatic Product Professional
lauravandoore
24
5.7k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
185
15k
How to Ace a Technical Interview
jacobian
272
22k
RailsConf 2023
tenderlove
0
510
What’s in a name? Adding method to the madness
productmarketing
PRO
14
2.6k
Building Adaptive Systems
keathley
29
1.8k
Embracing the Ebb and Flow
colly
78
4.1k
For a Future-Friendly Web
brad_frost
170
8.9k
Creatively Recalculating Your Daily Design Routine
revolveconf
209
11k
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?