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
MongoDB at the Guardian
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
philwills
October 12, 2011
Technology
2
1.4k
MongoDB at the Guardian
A quick overview of our experience with MongoDB at the Guardian.
philwills
October 12, 2011
Tweet
Share
More Decks by philwills
See All by philwills
Cracking the Monolith
philwills
1
250
The Guardian's Content API
philwills
3
570
Other Decks in Technology
See All in Technology
私たち準委任PdEは2つのプロダクトに挑戦する ~ソフトウェア、開発支援という”二重”のプロダクトエンジニアリングの実践~ / 20260212 Naoki Takahashi
shift_evolve
PRO
2
210
Cosmos World Foundation Model Platform for Physical AI
takmin
0
980
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
1
2.1k
AI駆動開発を事業のコアに置く
tasukuonizawa
1
390
生成AIと余白 〜開発スピードが向上した今、何に向き合う?〜
kakehashi
PRO
0
160
Webhook best practices for rock solid and resilient deployments
glaforge
2
310
コスト削減から「セキュリティと利便性」を担うプラットフォームへ
sansantech
PRO
3
1.6k
会社紹介資料 / Sansan Company Profile
sansan33
PRO
15
400k
Codex 5.3 と Opus 4.6 にコーポレートサイトを作らせてみた / Codex 5.3 vs Opus 4.6
ama_ch
0
210
pool.ntp.orgに ⾃宅サーバーで 参加してみたら...
tanyorg
0
1.2k
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
210
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.6k
Featured
See All Featured
HDC tutorial
michielstock
1
390
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
350
WCS-LA-2024
lcolladotor
0
450
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
440
The World Runs on Bad Software
bkeepers
PRO
72
12k
Building the Perfect Custom Keyboard
takai
2
690
Designing for Performance
lara
610
70k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
750
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
50k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7k
Fireside Chat
paigeccino
41
3.8k
The Curse of the Amulet
leimatthew05
1
8.7k
Transcript
MongoDB at the Guardian @philwills Tuesday, 11 October 2011
Tuesday, 11 October 2011
Tuesday, 11 October 2011
Tuesday, 11 October 2011
Why use mongo? • Flexible documents fit our domain well
• Query flexibility important Tuesday, 11 October 2011
Guardian MongoDB usage • Development for over a year •
Three projects in production • Internal and cloud deployments • Most common choice for new projects • At present, used for a minority of pages Tuesday, 11 October 2011
Tuesday, 11 October 2011
• “Schema” design • Performance • Operations • Overall Impressions
Tuesday, 11 October 2011
Schema Design • More thought required • Importance of Aggregates
• Flexibility vs. Consistency • Traps Tuesday, 11 October 2011
More thought required • Much less prior art • Can’t
just plump for 3NF Tuesday, 11 October 2011
Aggregates • Domain Driven Design • Atomicity of transactions •
Distribution Boundaries http://www.flickr.com/photos/cdeimages/3584213567/ Tuesday, 11 October 2011
Flexibility vs. Consistency • Application has to match flexibility of
documents • Design on the basis that flexibility has a cost • Lack of datastore enforced schema means loss of documentation Tuesday, 11 October 2011
Traps • So fast you don’t notice problems • DBRefs
look a bit like a foreign key... • ...but just add complexity Tuesday, 11 October 2011
Performance Tuesday, 11 October 2011
Something old... • Indexes, indexes, indexes • “Select *” considered
harmful • Structure of data storage is crucial Tuesday, 11 October 2011
...something new • mongostat • db.currentOp() • db.system.profile.find() Tuesday, 11
October 2011
• It’s easy when all your data is in memory
• Determining what’s really your working set not always trivial Tuesday, 11 October 2011
Reading from secondary • In general eventual consistency is fine
• db.requestStart() • db.requestDone() Tuesday, 11 October 2011
Operations Tuesday, 11 October 2011
Replica sets work • Hardware upgrade with no downtime •
Compaction with no downtime • Spite Thor! Tuesday, 11 October 2011
32-bit OS = :o( • Rules out small EC2 boxes
Tuesday, 11 October 2011
Zoom, zoom • New features coming in fast. Yay! •
Lots of time can be wasted on scripts that rapidly become redundant • Roadmap not always as visible as it might be Tuesday, 11 October 2011
Security • Granularity of access is coarse • No connection
encryption without tunnelling • Auditing could be easier Tuesday, 11 October 2011
One global lock • Scary... • ...but not yet seen
a real problem Tuesday, 11 October 2011
Manual Updates • Not ideal, but always necessary • db.collection.update()
is a banana skin • Representation in query results may not distinguish non-JS types Tuesday, 11 October 2011
• Still maturing • More thought required • Not a
golden hammer Overall Impressions Tuesday, 11 October 2011
• Fast • Manageable • Suits our data • Still
our first choice Overall Impressions Tuesday, 11 October 2011
Questions? Tuesday, 11 October 2011