SlideShare a Scribd company logo
MongoDB:
Built For
Speed
Mitch Pirtle
CMSExpo
May 4, 2010
Before we begin


Coffee?
Breakfast?
NERDS!
Are you ready to get your nerd on?
About this presentation

 Databases from a CMS perspective
 How we got to where we are now
 What MongoDB brings to the equation
 Where we are going
About me
About me
Nothing but web since 1995
About me
Nothing but web since 1995
Joomla founder, MongoDB contributor
About me
Nothing but web since 1995
Joomla founder, MongoDB contributor
Budding author
About me
Nothing but web since 1995
Joomla founder, MongoDB contributor
Budding author
  MongoDB for Web Development
About me
Nothing but web since 1995
Joomla founder, MongoDB contributor
Budding author
  MongoDB for Web Development
  Extreme Joomla! Performance
About me
Nothing but web since 1995
Joomla founder, MongoDB contributor
Budding author
  MongoDB for Web Development
  Extreme Joomla! Performance
High-traffic projects (Jetsetter, MTV, Food Networks)
About me
Nothing but web since 1995
Joomla founder, MongoDB contributor
Budding author
  MongoDB for Web Development
  Extreme Joomla! Performance
High-traffic projects (Jetsetter, MTV, Food Networks)
Husband, dad, skate punk, metalcore bassist
How it all started
“I need a website, and want
to be able to manage it on
my own.”
We got that,
we’ll just use a CMS.
Purpose of a CMS

Manage content
Organize navigation
Dynamic search
Self-service management of content
The result?
LAMP
Linux, Apache, MySQL, PHP
Challenges of a CMS


One size fits all
Based on ubiquitous platforms
Lowest common denominator
MongoDB: Built for Speed
Nothing against MySQL,
but...
Nothing against MySQL,
but...
Brittle, inflexible
Nothing against MySQL,
but...
Brittle, inflexible
Difficult for scale
Nothing against MySQL,
but...
Brittle, inflexible
Difficult for scale
Difficult for speed
Nothing against MySQL,
but...
Brittle, inflexible
Difficult for scale
Difficult for speed
Difficult to code with
Nothing against MySQL,
but...
Brittle, inflexible
Difficult for scale
Difficult for speed
Difficult to code with
Lack of relational features pushed relational logic into
applications
Nothing against MySQL,
but...
Brittle, inflexible
Difficult for scale
Difficult for speed
Difficult to code with
Lack of relational features pushed relational logic into
applications
Zero portability as a result
Where that leaves us
Where that leaves us
Everybody ran out and installed without asking
Where that leaves us
Everybody ran out and installed without asking
ISPs happily slashed choice
Where that leaves us
Everybody ran out and installed without asking
ISPs happily slashed choice
End users and developers obsequiously took LAMP for
granted as the Right Tool for the Right Job™
Where that leaves us
Everybody ran out and installed without asking
ISPs happily slashed choice
End users and developers obsequiously took LAMP for
granted as the Right Tool for the Right Job™
Managing content, from a relational database
perspective, SUCKS
Where that leaves us
Everybody ran out and installed without asking
ISPs happily slashed choice
End users and developers obsequiously took LAMP for
granted as the Right Tool for the Right Job™
Managing content, from a relational database
perspective, SUCKS
Building CMS apps is not much better either!
Article with comments &
tags

         Tags          Articles       Comments
   id              id               id
   tag             title            date_created
                   slug             author_id
                   excerpt          parent_id
                   author_id        subject
     ArticleTags   date_created     content
   id              date_published
   article_id      date_modified
   tag_id          content
Then the trouble starts
“Hey, can we add social media to our website?”
Websites aren’t just content
Websites aren’t just content

 Interactivity
Websites aren’t just content

 Interactivity
 Rich media
Websites aren’t just content

 Interactivity
 Rich media
 Social media
Websites aren’t just content

 Interactivity
 Rich media
 Social media
 Web services integration
Websites aren’t just content

 Interactivity
 Rich media
 Social media
 Web services integration
 Crazy, whack-daddy scale
MongoDB: Built for Speed
“How long can this go on?”
Why develop in an
object language, just
to stuff mismatched
chunks of your
objects in a non-
object data store?
Introducing:
What MongoDB can do
What MongoDB can do

Simplifies development
What MongoDB can do

Simplifies development
Stores in binary JSON objects
What MongoDB can do

Simplifies development
Stores in binary JSON objects
Return data directly to browser in JSON
What MongoDB can do

Simplifies development
Stores in binary JSON objects
Return data directly to browser in JSON
Store data, binary objects, whatevah!
CODE.
Examples of MongoDB on the console, baby.
MySQL
MongoDB
MySQL
MongoDB
MySQL
MongoDB
Where that leaves us now
Article with comments, tags,
categories       id
                     Articles

                 title
                 slug
                 excerpt
                 author_id
                 date_created
                 date_published
                 date_modified
                 content
                 comments
                 -- comment1
                 -- comment2
                 -- comment3
                 tags
                 -- tag1
                 -- tag2
                 -- tag3
                 categories
                 -- category1
                 -- category2
                 -- category3
Article with comments, tags,
categories       id
                     Articles

                 title
                 slug
                 excerpt
                 author_id
                 date_created
 Atomic          date_published
                 date_modified
                 content
                 comments
                 -- comment1
                 -- comment2
                 -- comment3
                 tags
                 -- tag1
                 -- tag2
                 -- tag3
                 categories
                 -- category1
                 -- category2
                 -- category3
Article with comments, tags,
categories       id
                     Articles

                 title
                 slug
                 excerpt
                 author_id
                 date_created
 Atomic          date_published
                 date_modified
                 content
 Simple          comments
                 -- comment1
                 -- comment2
                 -- comment3
                 tags
                 -- tag1
                 -- tag2
                 -- tag3
                 categories
                 -- category1
                 -- category2
                 -- category3
Article with comments, tags,
categories       id
                     Articles

                 title
                 slug
                 excerpt
                 author_id
                 date_created
 Atomic          date_published
                 date_modified
                 content
 Simple          comments
                 -- comment1
                 -- comment2
 Fast            -- comment3
                 tags
                 -- tag1
                 -- tag2
                 -- tag3
                 categories
                 -- category1
                 -- category2
                 -- category3
Article with comments, tags,
categories       id
                     Articles

                 title
                 slug
                 excerpt
                 author_id
                 date_created
 Atomic          date_published
                 date_modified
                 content
 Simple          comments
                 -- comment1
                 -- comment2
 Fast            -- comment3
                 tags
                 -- tag1
 Complete        -- tag2
                 -- tag3
                 categories
                 -- category1
                 -- category2
                 -- category3
What I’ve learned
implementing CMS
platforms with MongoDB
under the hood
Lessons learned
Lessons learned

Simplicity of code
Lessons learned

Simplicity of code
Performance
Lessons learned

Simplicity of code
Performance
Simplicity of scale
Lessons learned

Simplicity of code
Performance
Simplicity of scale
Rich media storage
Lessons learned

Simplicity of code
Performance
Simplicity of scale
Rich media storage
Amazing concurrency
Coming to a CMS near you
Drupal for MongoDB
http://drupal.org/project/mongodb

D7: mongodb_cache: Store cache items in mongodb

D7: mongodb_field_storage: Store the fields in mongodb

D7: mongodb_session: Store sessions in mongodb

D6/D7: mongodb_watchdog: Store the watchdog messages in mongodb

D6/D7: mongodb: support library for the other modules

D7: mongodb_block: Store block information in mongodb. Very close to the core
block API

D7: mongodb_queue: DrupalQueueInterface implementation using mongodb

http://sf2010.drupal.org/conference/sessions/mongodb-humongous-drupal
Even MORE Drupal

Work to get listing API into core:
http://drupal.org/node/780154
Experimental goodies to play with:
http://drupalcode.org/viewvc/drupal/contributions/
sandbox/chx/dbtng_mongo_experimental/
Joomla!


MongoDB helper library for Joomla!
(come see me after the talk for access)
Branch of 1.6 development for alternative query builder
Full MongoDB support most likely in 2.0
Not CMS, but still relevant
Ruby & Rails

MongoMapper
http://github.com/jnunemaker/mongomapper/
Brings MongoDB to many RoR platforms
  RadiantCMS
  Typo
  Mephisto
Lithium PHP framework

http://rad-dev.org/lithium/wiki
MongoDB native support
Projects demonstrating MongoDB support:
  http://rad-dev.org/lithium_mongo/source
  http://rad-dev.org/lithium_blog/source
CakePHP framework

MongoDB datasource
http://github.com/ichikaway/mongoDB-Datasource
Example article
http://mark-story.com/posts/view/using-mongodb-
with-cakephp
PHP framework


http://kohanaframework.org/
MangoDB
http://github.com/Wouterrr/MangoDB
MongoDB Language Center
http://www.mongodb.org/display/DOCS/Drivers
Community Resources
http://www.mongodb.org/display/DOCS/
Community
Development Tracker
http://jira.mongodb.org
MongoDB Cookbook
http://cookbook.mongodb.org/
Explore MongoDB @Github
http://github.com/search?q=mongo
Time for my favorite game
Stump the Nerd™
Thanks!
Email: mitch@spacemonkeylabs.com
Skype: mitch.pirtle
Web: http://www.spacemonkeylabs.com
Slides: http://www.slideshare.net/
spacemonkeylabs
Photo credits
 business man 1, by Larissa Kanno    A big goose, by Andrea
 http://www.sxc.hu/photo/877661      Kratzenberg
                                     http://www.sxc.hu/photo/1148702
 Orient Lamp, by Greg Griffin
 http://www.sxc.hu/photo/964807      Steppe eagle, by Gabor Szakacs
                                     http://www.sxc.hu/photo/1044948
 Binary code 1, by Flavio Takemoto
 http://www.sxc.hu/photo/1159613     Blue sportscar, by Jean Scheijen
                                     http://www.sxc.hu/photo/794992
 Cats, by (anonymous)
 http://www.sxc.hu/photo/1273828     EW_PKB, by daniel wildman
                                     http://www.sxc.hu/photo/845589
 Cougar on the prowl, by
 (anonymous)
 http://www.sxc.hu/photo/1253662

More Related Content

Viewers also liked (18)

PPTX
8000 series humidifier
Jerry John
 
PPTX
Busqueda de una empresa y como rastrear la dirección ip.
Claudia Rodriguez
 
PDF
Factura electrónica con SAP
Xavier Terré
 
PPTX
Mi Vida Y Los Videojuegos Video Games Life Time
Oliver Barreto Rodríguez
 
DOCX
QuimicaDAÑOS A LA SALUD Y EL AMBIENTE CAUSADOS POR EL USO INDISCRIMINADO DE D...
Yuleni Glez
 
PDF
Nordpeis Taipei
КПД плюс
 
PDF
Economia y medicina en la transicion demografica
Constanza Contreras
 
PDF
Reelicon felicia 3 bhk apartments at pashan
Milind Jadhav
 
PPT
Mekke yi tanıyalım
guestb8ea82
 
PDF
Web 2.0
iridianamusito
 
PDF
RESUME NYOE 2015
a. christian
 
PPS
Vuelo de gansos
Solar Ecosoluciones LT
 
PDF
Tartamudez
katedrimi
 
PPS
Medio pan y un libro. Lorca
Banc de Temps de Breda
 
DOCX
NIRPOA submission on dealing with the past to Haass
Slugger Consults
 
PDF
proyecto de investigacion 4
FROILAN ALFONSO SARAVIA CAMA
 
DOC
Salud eterna dejando la sal y el azúcar
periodicoelespinito
 
PDF
Pamps, alarmins damps
Andrea Delgado
 
8000 series humidifier
Jerry John
 
Busqueda de una empresa y como rastrear la dirección ip.
Claudia Rodriguez
 
Factura electrónica con SAP
Xavier Terré
 
Mi Vida Y Los Videojuegos Video Games Life Time
Oliver Barreto Rodríguez
 
QuimicaDAÑOS A LA SALUD Y EL AMBIENTE CAUSADOS POR EL USO INDISCRIMINADO DE D...
Yuleni Glez
 
Nordpeis Taipei
КПД плюс
 
Economia y medicina en la transicion demografica
Constanza Contreras
 
Reelicon felicia 3 bhk apartments at pashan
Milind Jadhav
 
Mekke yi tanıyalım
guestb8ea82
 
RESUME NYOE 2015
a. christian
 
Vuelo de gansos
Solar Ecosoluciones LT
 
Tartamudez
katedrimi
 
Medio pan y un libro. Lorca
Banc de Temps de Breda
 
NIRPOA submission on dealing with the past to Haass
Slugger Consults
 
proyecto de investigacion 4
FROILAN ALFONSO SARAVIA CAMA
 
Salud eterna dejando la sal y el azúcar
periodicoelespinito
 
Pamps, alarmins damps
Andrea Delgado
 

Similar to MongoDB: Built for Speed (20)

KEY
Content Mangement Systems and MongoDB
Mitch Pirtle
 
KEY
Schema Design by Example ~ MongoSF 2012
hungarianhc
 
KEY
MongoDB for Genealogy
Steven Francia
 
KEY
OSCON 2012 MongoDB Tutorial
Steven Francia
 
PDF
Blog Comments Organizer
Sweta Vajjhala
 
PPTX
Webinar: MongoDB for Content Management
MongoDB
 
PPTX
Html goodies
Ali Hasan
 
PPTX
What’s the big deal about semantic HTML?
Jono Alderson
 
KEY
WordPress as a CMS (short version)
Stephanie Leary
 
PDF
MongoDB NoSQL and all of its awesomeness
Troy Grosfield
 
PDF
Practical AtomPub Servers @ YAPC::Asia 2008
Takeru INOUE
 
PPT
Wt-UNNIT-1 (1).ppt
GReshma10
 
PPTX
Lesson 3
hstryk
 
KEY
Introduction to MongoDB
Neil Henegan
 
PDF
XML en NoSQL
Erik Duval
 
PPT
Newspapers with WordPress
Christopher Ross
 
PDF
Fluidinfo 101
Eric Seidel
 
PDF
Html5 reference-poster
Julio Pari
 
PPTX
Documentation 2.0: DIY Content Delivery and Feedback in Real-time
lykhinin
 
Content Mangement Systems and MongoDB
Mitch Pirtle
 
Schema Design by Example ~ MongoSF 2012
hungarianhc
 
MongoDB for Genealogy
Steven Francia
 
OSCON 2012 MongoDB Tutorial
Steven Francia
 
Blog Comments Organizer
Sweta Vajjhala
 
Webinar: MongoDB for Content Management
MongoDB
 
Html goodies
Ali Hasan
 
What’s the big deal about semantic HTML?
Jono Alderson
 
WordPress as a CMS (short version)
Stephanie Leary
 
MongoDB NoSQL and all of its awesomeness
Troy Grosfield
 
Practical AtomPub Servers @ YAPC::Asia 2008
Takeru INOUE
 
Wt-UNNIT-1 (1).ppt
GReshma10
 
Lesson 3
hstryk
 
Introduction to MongoDB
Neil Henegan
 
XML en NoSQL
Erik Duval
 
Newspapers with WordPress
Christopher Ross
 
Fluidinfo 101
Eric Seidel
 
Html5 reference-poster
Julio Pari
 
Documentation 2.0: DIY Content Delivery and Feedback in Real-time
lykhinin
 
Ad

More from Mitch Pirtle (20)

PDF
Cloudy with a chance of scale
Mitch Pirtle
 
PDF
My life with MongoDB
Mitch Pirtle
 
PDF
PHP Cloud Deployment Toolkits
Mitch Pirtle
 
PDF
MongoDB, Node.js, and You: PART III
Mitch Pirtle
 
PDF
MongoDB, Node.js And You: PART II
Mitch Pirtle
 
PDF
Mongodb, Node.js and You: PART I
Mitch Pirtle
 
PDF
MongoDB, Development and You
Mitch Pirtle
 
PDF
MongoTorino 2013 Opening Keynote
Mitch Pirtle
 
PDF
Data as Documents: Overview and intro to MongoDB
Mitch Pirtle
 
PDF
Cloud conference - mongodb
Mitch Pirtle
 
KEY
Unified Content Model and Joomla!
Mitch Pirtle
 
KEY
Gridfs and MongoDB
Mitch Pirtle
 
KEY
Joomla - an Overview
Mitch Pirtle
 
KEY
Operational MongoDB
Mitch Pirtle
 
KEY
Joomla Extreme Performance
Mitch Pirtle
 
PDF
Mongodb and Totsy: An e-commerce case study
Mitch Pirtle
 
KEY
Mongodb and Totsy - E-commerce Case Study
Mitch Pirtle
 
KEY
PHP, Lithium and MongoDB
Mitch Pirtle
 
KEY
Joomla For Entrepreneurs
Mitch Pirtle
 
KEY
Thin Server Architecture
Mitch Pirtle
 
Cloudy with a chance of scale
Mitch Pirtle
 
My life with MongoDB
Mitch Pirtle
 
PHP Cloud Deployment Toolkits
Mitch Pirtle
 
MongoDB, Node.js, and You: PART III
Mitch Pirtle
 
MongoDB, Node.js And You: PART II
Mitch Pirtle
 
Mongodb, Node.js and You: PART I
Mitch Pirtle
 
MongoDB, Development and You
Mitch Pirtle
 
MongoTorino 2013 Opening Keynote
Mitch Pirtle
 
Data as Documents: Overview and intro to MongoDB
Mitch Pirtle
 
Cloud conference - mongodb
Mitch Pirtle
 
Unified Content Model and Joomla!
Mitch Pirtle
 
Gridfs and MongoDB
Mitch Pirtle
 
Joomla - an Overview
Mitch Pirtle
 
Operational MongoDB
Mitch Pirtle
 
Joomla Extreme Performance
Mitch Pirtle
 
Mongodb and Totsy: An e-commerce case study
Mitch Pirtle
 
Mongodb and Totsy - E-commerce Case Study
Mitch Pirtle
 
PHP, Lithium and MongoDB
Mitch Pirtle
 
Joomla For Entrepreneurs
Mitch Pirtle
 
Thin Server Architecture
Mitch Pirtle
 
Ad

Recently uploaded (20)

PDF
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PPTX
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Alexandra N. Martinez
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PDF
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
PDF
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
PPTX
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
PDF
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
PDF
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Alexandra N. Martinez
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 

MongoDB: Built for Speed