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
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
240
The Guardian's Content API
philwills
3
570
Other Decks in Technology
See All in Technology
Node-REDのFunctionノードでMCPサーバーの実装を試してみた / Node-RED × MCP 勉強会 vol.1
you
PRO
0
130
タイミーのデータモデリング事例と今後のチャレンジ
ttccddtoki
6
1.9k
生成AI活用の組織格差を解消する 〜ビジネス職のCursor導入が開発効率に与えた好循環〜 / Closing the Organizational Gap in AI Adoption
upamune
6
4.7k
LangChain Interrupt & LangChain Ambassadors meetingレポート
os1ma
2
230
「良さそう」と「とても良い」の間には 「良さそうだがホンマか」がたくさんある / 2025.07.01 LLM品質Night
smiyawaki0820
1
450
ネットワーク保護はどう変わるのか?re:Inforce 2025最新アップデート解説
tokushun
0
150
低レイヤを知りたいPHPerのためのCコンパイラ作成入門 完全版 / Building a C Compiler for PHPers Who Want to Dive into Low-Level Programming - Expanded
tomzoh
4
3.4k
Geminiとv0による高速プロトタイピング
shinya337
0
200
React開発にStorybookとCopilotを導入して、爆速でUIを編集・確認する方法
yu_kod
1
110
本が全く読めなかった過去の自分へ
genshun9
0
730
AWS Organizations 新機能!マルチパーティ承認の紹介
yhana
1
230
250627 関西Ruby会議08 前夜祭 RejectKaigi「DJ on Ruby Ver.0.1」
msykd
PRO
2
390
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
72
4.9k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Raft: Consensus for Rubyists
vanstee
140
7k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
680
How STYLIGHT went responsive
nonsquared
100
5.6k
Building Applications with DynamoDB
mza
95
6.5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
The Cost Of JavaScript in 2023
addyosmani
51
8.5k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Testing 201, or: Great Expectations
jmmastey
42
7.6k
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