SlideShare a Scribd company logo
MongoDB UK 2012
MongoDB for Online Advertising @ AOL
Jon Reed
jon.reed@teamaol.com
@jon_reed
An Apology
MongoDB UK 2012
Page 3
Until Yesterday I was here
MongoDB UK 2012
Page 4
Bear with me…
Previously…
MongoDB UK 2012
Page 6
100,000 hours of free Internet – I’m set for life
http://www.reddit.com/user/Austinja
Now…
MongoDB For Online Advertising at AOL
MongoDB UK 2012
Page 9
UK Software Engineering @ AOL
• Jonathan Reed
• jon.reed@teamaol.com
• @jon_reed
• Fantastic UK Scrum & Product Team
We use MongoDB a lot…
Page 11
MongoDB UK 2012
Page 12
A Scenario
Advertising Requirement
MongoDB UK 2012
Page 14
• BrianAir *
• Retarget people who visited their site
• But did NOT purchase flights
* Stolen from the amazing Rhod Gilbert
Understanding a User
MongoDB UK 2012
Page 15
• Tracking Pixel
• Product Page – what a user has looked at
• Conversion Pixel
• Confirmation Page – what a user has purchased
A Simple Story…
MongoDB UK 2012
Page 16
• User 123
• Searches to travel to Copenhagen
• Does not purchase
• “?product_id=CPH”
A User Profile
MongoDB UK 2012
Page 17
{
…
“_id” : “123”,
“products” : [“CPH”],
…
}
User 123 Browses the web
MongoDB UK 2012
Page 18
MongoDB UK 2012
Page 19
Building an example Ad
{
“from” : “LHR”,
“to” : “CPH”,
“price” : “£39.99”
…
}
Geolocation
$loc = array(40.739037, 73.992964); // lat, long from IP
$airports->find(array(“loc” => array( “$near” => $loc)));
MongoDB UK 2012
Page 20
5ms
Internal Component SLA
MongoDB UK 2012
Page 21
12,000 transactions / second
~ billions / month
Scaled To Total of…
Our Platform
Our MongoDB Platform
• Multiple data centres
• Replication across our own Tier 1 Carrier
• 8 Shards
• 3 Machines in each replica set
• Mixture of languages
• C++
• Erlang
• Java
• PHP
MongoDB UK 2012
Page 23
MongoDB Hardware
MongoDB UK 2012
Page 24
• 16 Core 2.4Ghz
• 192Gb RAM
• RAID 10
• 8 Bonded 1Gb NIC
• CentOS 6
• XFS
• noatime, nodiratime, nouuid
• TCP stack tuning
Why MongoDB?
Online Adverting Use Case
• 90% Write, 10% Read
• Non-Relational Data
• Dynamic Document Size
• Horizontal Scale is Required
MongoDB UK 2012
Page 26
Team: Why we use MongoDB
• Easy
• Installation, Management
• Performance
• Linear growth
• Flexible
• 101 use cases, native drivers
• Scalable
• Sharding, Replication
• Support
• Community, Documentation, 10gen contract
MongoDB UK 2012
Page 27
Lessons Learned
Lessons Learned
• Pre-chunked high-volume collections
• Basic Data Centre Awareness
MongoDB UK 2012
Page 29
Things we’re looking
forward to
MongoDB UK 2012
Page 31
• MongoDB as storage for Hadoop
• Lower level locking
• Map/Reduce Enhancements
• V8
MongoDB UK 2012
Page 32
MongoDC 2012
• “Operationalizing MongoDB at AOL”
• Michael DelNegro
MongoDB UK 2012
Page 33
We are hiring!
• corp.aol.com/careers
• C++ Engineers
• JavaScript Engineers
• QA Engineers
Thanks!
Q&A?
Jon Reed
jon.reed@teamaol.com
@jon_reed

More Related Content

PPT
MongoDB native to web development - London Framework
PDF
Introduction to Web Designing
DOC
OAF Syllabus
PPTX
.NET Fest 2017. Константин Проскурдин. Marten как хранилище документов для .N...
PDF
Universal CSS - Betsy Granger - ebookcraft 2018
PDF
MongoDB World 2019: Polyglot Persistence with MongoDB: What You Need to Know ...
PPTX
MongoDB.local Dallas 2019: Building Your First MongoDB App Using Atlas & Stitch
PPSX
Session 04 - Object Repository Contd.
MongoDB native to web development - London Framework
Introduction to Web Designing
OAF Syllabus
.NET Fest 2017. Константин Проскурдин. Marten как хранилище документов для .N...
Universal CSS - Betsy Granger - ebookcraft 2018
MongoDB World 2019: Polyglot Persistence with MongoDB: What You Need to Know ...
MongoDB.local Dallas 2019: Building Your First MongoDB App Using Atlas & Stitch
Session 04 - Object Repository Contd.

Viewers also liked (20)

PDF
MongoDB Tokyo - Monitoring and Queueing
PDF
Aggregation Framework MongoDB Days Munich
PPTX
Prepare for Peak Holiday Season with MongoDB
PPTX
Indexing Strategies to Help You Scale
PPTX
Redis Use Patterns (DevconTLV June 2014)
PDF
Microservices for a Streaming World
PPTX
MongoDB for Time Series Data Part 3: Sharding
PPTX
MongoDB for Time Series Data: Schema Design
PPTX
MongoDB for Time Series Data Part 2: Analyzing Time Series Data Using the Agg...
PPT
BuzzFeed Pitch Deck
PDF
Contently Pitch Deck
PDF
Pendo Series B Investor Deck External
PDF
Tinder Pitch Deck
PDF
Airbnb Pitch Deck From 2008
PDF
Intercom's first pitch deck!
PDF
Front series A deck
PDF
Mattermark 2nd (Final) Series A Deck
PDF
The investor presentation we used to raise 2 million dollars
PPTX
Foursquare's 1st Pitch Deck
PDF
Linkedin Series B Pitch Deck
MongoDB Tokyo - Monitoring and Queueing
Aggregation Framework MongoDB Days Munich
Prepare for Peak Holiday Season with MongoDB
Indexing Strategies to Help You Scale
Redis Use Patterns (DevconTLV June 2014)
Microservices for a Streaming World
MongoDB for Time Series Data Part 3: Sharding
MongoDB for Time Series Data: Schema Design
MongoDB for Time Series Data Part 2: Analyzing Time Series Data Using the Agg...
BuzzFeed Pitch Deck
Contently Pitch Deck
Pendo Series B Investor Deck External
Tinder Pitch Deck
Airbnb Pitch Deck From 2008
Intercom's first pitch deck!
Front series A deck
Mattermark 2nd (Final) Series A Deck
The investor presentation we used to raise 2 million dollars
Foursquare's 1st Pitch Deck
Linkedin Series B Pitch Deck
Ad

Similar to MongoDB For Online Advertising at AOL (20)

PDF
MongoDB Basics
PPTX
Webinar: General Technical Overview of MongoDB for Ops Teams
PDF
NoSQL solutions
PPTX
PPTX
MongoDB
KEY
Mongo db admin_20110329
PPTX
Intro to mongodb mongouk jun2010
KEY
MongoDB Administration 20110922
PDF
Enabling Telco to Build and Run Modern Applications
PPTX
MongoDB
PPTX
MongoDB
DOCX
MongoDB DOC v1.5
PPTX
MongoDB Workshop Universidad de Huelva
PPTX
Mongo db intro.pptx
PDF
MongoDB
PPTX
Basics of MongoDB
KEY
MongoDB at RuPy
PDF
Neotys conference
PDF
Mongo bbmw
MongoDB Basics
Webinar: General Technical Overview of MongoDB for Ops Teams
NoSQL solutions
MongoDB
Mongo db admin_20110329
Intro to mongodb mongouk jun2010
MongoDB Administration 20110922
Enabling Telco to Build and Run Modern Applications
MongoDB
MongoDB
MongoDB DOC v1.5
MongoDB Workshop Universidad de Huelva
Mongo db intro.pptx
MongoDB
Basics of MongoDB
MongoDB at RuPy
Neotys conference
Mongo bbmw
Ad

Recently uploaded (20)

PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
Tartificialntelligence_presentation.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Big Data Technologies - Introduction.pptx
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Encapsulation theory and applications.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
cuic standard and advanced reporting.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Spectroscopy.pptx food analysis technology
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Group 1 Presentation -Planning and Decision Making .pptx
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Programs and apps: productivity, graphics, security and other tools
Tartificialntelligence_presentation.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
SOPHOS-XG Firewall Administrator PPT.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
Big Data Technologies - Introduction.pptx
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Encapsulation theory and applications.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
cuic standard and advanced reporting.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Spectroscopy.pptx food analysis technology
MIND Revenue Release Quarter 2 2025 Press Release
Build a system with the filesystem maintained by OSTree @ COSCUP 2025

MongoDB For Online Advertising at AOL

Editor's Notes

  • #4: Until yesterday, I was in New York, discussing how we’re going to be using MongoDB moving forward
  • #15: Given an advertiser, a well known budget airlinewhich for legal reasons I cant name… lets call them… BrianAirWho want to retarget – or advertise to – the subset of people who have visited their siteSearched for a particular flight on itBut did not buy
  • #16: First steps, is that we need a way of recording the information handed to us by BrianAirWe have an Event server, written in Erlang, which records the dynamic information from tracking pixels, and stores them in MongoDBThe same applies to the conversion pixels.So that we know, for each visitor, what they looked at, and whether they converted for that productThis is all great – its just means that all your advertisers traffic = all of your trafficHigh number of inserts, again making MongoDB a great choice
  • #17: User 123 (a v4 UUID generated, and stored in the cookie)Searches the BrianAir site, to travel to CopenhagenBut does not purchaseWhich means, that in the tracking pixel call, we’ll see something (more complicated than this) but containing the product IDWe map this to the ID in the cookie
  • #18: This allows us to build a profile of each userAgain, you can easily see how the document model from mongoDB works perfectly – allows completely flexible user profile shapes & sizes
  • #19: When User 123 is browsing the web a day later, she gets an ad from the AOL networkWe need to build that ad for user 123
  • #20: Not all ads will be like this – some simpler, some more complicated, but…Once the creative has been chosen:3 main components of a dynamic adUser Info – ie. User 123 searched for product CPHProduct Info – all the products & prices from the BrianAir siteGeolocation – we need to know which local airport user 123 is most likely to want to fly fromGeopIP LookupSpatial indexes query from MongoDB
  • #21: Internal target of 5ms, to supply other systems with the dynamic information needed for an ad
  • #22: Total transactions per second – events, ad impressions, select queriesSo, what kind of platform do we need to do this?
  • #24: For advertising:Couple of DCs in the USOne in EuropeWith the data being replicated between them using our own Tier 1 Carrier (10gb/s)Currently running 8 shards, with 3 machines in each replica setWe’re using a 4 different divers for this project – again something which makes MongoDB so nice to work withSo server hardware…
  • #25: We use pretty high spec machines – but theyre still available off the shelf(well to order anyway!)Key points of the spec are:A lot of network capacity – we hit network capacity before disk capacity beforeXFS (with noatime) – this can save a matter of seconds when MongoDBSo, why did we choose MongoDB…
  • #27: So, to summarise the use case case for Online AdvertisingThe advertiser traffic == our trafficAs a summary…
  • #28: The benefits really are clear when compared to other possible solutionsI don’t have a large team that can support a big hadoopcliuster, for eg.We’re a small team, that really needs to maximise the use of the time availableMongoDB is first & foremost easy to setup & learnDownload & Run – that’s itPerformance is greatWe keep a huge amount of data in RAMIt’s the best way of guaranteeing the performance we needScaling is really easyOps can add a new shard at the appropriate timeWith no downtimeThe community support is unparalleledOnline docs, forums, groupsInternal forumsShould you want it, there are support contracts available
  • #30: During sharding events, global write-lock was too lowWe werent able to sustain the write performance we neededWe needed local writes, because of the transatlantic performance hit of writing remotelyWhen we pre-chunked, we prefixed the shard key with the datacentre name, so that the front end machines would only write locally