SlideShare a Scribd company logo
1 of 21
Download to read offline
MongoDB Versatility
Scaling the MapMyFitness Platform

          Sept 14, 2012
Introduction

l
     MapMyFitness	
  founded	
  in	
  2007
l
     Offices	
  in	
  Denver,	
  CO	
  &	
  AusRn,	
  T X
     (w/	
  associates	
  in	
  S F,	
  Boston,	
  New	
  York,	
  L A,	
  and	
  Chicago)
l
     Over	
  11	
  million	
  registered	
  users
l
     ~60	
  million	
  geo-­‐data	
  routes	
  
     (runs,	
  rides,	
  walks,	
  hikes,	
  etc)
l
     Core	
  sites,	
  mobile	
  apps,	
  A PI,	
  white-­‐label
     (MapMyRun,	
  MapMyRide,	
  MapMyWalk,	
  MapMyTri,	
  MapMyHike,	
  
     MapMyFitness,	
  MapMyRace)
Platform Overview and Background


•      Origins	
  in	
  the	
  L AMP	
  stack
       (Linux-­‐Apache-­‐MySQL-­‐PHP)
•      Scaled	
  well	
  to	
  ~2	
  million	
  users
•      Redesigned	
  in	
  Python/Django
•      MySQL	
  backend	
  not	
  sufficient

“How	
  to	
  scale	
  from	
  2.5	
  to	
  6	
  million	
  users?”
Functional Scaling


•   IdenRfy	
  high-­‐growth	
  /	
  large-­‐data	
  collecRons
•   Must	
  be	
  able	
  to	
  live	
  outside	
  the	
  exisRng	
  
    relaRonal	
  schema
•   Integrate	
  via	
  remote	
  resource	
  mapping	
  tables	
  
    in	
  the	
  R DBMS
•   FuncRonal	
  Scaling	
  can	
  facilitate	
  movement	
  
    towards	
  a	
  Service	
  Oriented	
  Architecture
Use Case 1: Route Data Store


•   Geo-­‐locaRon	
  data	
  stored	
  in	
  json	
  blocks
•   MySQL	
  →	
  S3	
  →	
  File	
  Server	
  →	
  MongoDB
•   IniRal	
  size	
  of	
  ~500GB,	
  ~18	
  million	
  objects
•   3	
  member	
  replica	
  set
•   Dedicated	
  iron	
  servers	
  with	
  24GB	
  R AM
Route presentation example (Lost in Seattle)
Route Data Example

{
    id:
          "e4da3b7fbbce2345d7772b06
          74a318d5",
    updated_date: "2005-07-23
       15:47:31",
    city: "San Diego",
    user_id: "4",
    created_date: "2005-07-23
       15:47:31",
    route_name: "balboa park",
    state: "CA",
Solution Summary

MigraRon	
  PaSern:

•   RESTful	
  A PI	
  modified	
  to	
  use	
  Mongo	
  P HP	
  driver	
  
•   Implemented	
  a	
  'pass	
  thru'	
  migraRon	
  funcRon
•   Batch	
  'backfill'	
  migraRons	
  via	
  pass-­‐thru
•   Data	
  transform	
  handled	
  in	
  P HP	
  code
SAN storage and MongoDB


l
     Needed	
  to	
  quickly	
  expand	
  available	
  disk
l
     Implemented	
  high-­‐end	
  SAN	
  subsystem
l
     Impressive	
  i/o	
  performance	
  with	
  MongoDB
l
     MigraRon	
  to	
  SAN	
  painless	
  thanks	
  to	
  OpLog
l
     Easily	
  expandable	
  due	
  to	
  the	
  use	
  of	
  X FS
l
     Over	
  100	
  million	
  objects,	
  ~7TB	
  of	
  data	
  
“Gotchas”
            a.k.a. Lessons Learned


•   Pay	
  aSenRon	
  to	
  potenRal	
  document	
  size
    (URlize	
  GridFS	
  for	
  larger	
  objects)
•   Allocate	
  enough	
  R AM	
  for	
  indexes!	
  
    (Especially	
  important	
  for	
  Large	
  data	
  
    collecRons)
•   File	
  dump	
  backups	
  may	
  not	
  scale	
  for	
  T B+	
  
    size	
  datasets.
    (URlize	
  delayed	
  and	
  'hidden'	
  member	
  for	
  
    DR)
•   Evaluate	
  filesystem	
  choice	
  carefully	
  
    (hint:	
  xfs)
Use Case 2: Django Session Store



• Django	
  sessions	
  not	
  scaling	
  in	
  MySQL
• Modified	
  core	
  methods	
  to	
  use	
  MongoDB
• Cutover	
  of	
  new	
  data	
  
   (Test	
  for	
  Mongo	
  data,	
  fallback	
  to	
  MySQL)
• MigraRon	
  of	
  data	
  via	
  export/import
   (Simple	
  python	
  transform	
  script	
  using	
  pymongo)
Use Case 3: Athletic Live Tracking


• Beta	
  feature	
  uRlized	
  T T	
  +	
  MySQL
   (did	
  not	
  scale	
  for	
  large	
  events)
• Required	
  to	
  be	
  “burstable”	
  for	
  Live	
  Events
   (deployable	
  in	
  'The	
  Cloud')
• Data	
  size	
  relaRvely	
  small	
  
   (compared	
  to	
  Routes	
  D B)
• “Live”	
  data,	
  no	
  archiving	
  required	
  
Use Case 3: Athletic Live Tracking


•   RS	
  Cloud,	
  3+n	
  MongoDB	
  replica	
  set	
  
•   Quickly	
  scalable	
  via	
  MongoDB	
  replicaRon
•   Highly	
  opRmized,	
  indexes	
  for	
  every	
  query
•   Low	
  administraRon	
  overhead	
  (vs	
  MySQL)
    “Gotchas”
    l
         Know	
  your	
  applicaRon	
  
         (tune	
  indexes	
  and	
  'find()'	
  ops	
  accordingly)
    l
         Know	
  your	
  driver
         (python	
  pooling	
  driver	
  defaults	
  way	
  too	
  
As a DBA: Ease of Administration

•     ReplicaRon	
  made	
  elegant
      (as	
  compared	
  with	
  MySQL)
•     Ridiculously	
  simple	
  to	
  add	
  add'l	
  members
•     Be	
  sure	
  to	
  run	
  IniRalSync	
  from	
  a	
  secondary
      rs.add(	
  “host”	
  :	
  “livetrack_db09”,	
  “iniRalSync”	
  :	
  
      {	
  “state”	
  :	
  2	
  }	
  )
Use Case 4: Micro-Messaging Framework

  •   IniRal	
  use	
  case	
  providing	
  'micro-­‐goals'	
  
      (user-­‐defined	
  stats	
  aggregaRon)
  •   MongoDB	
  for	
  persistence	
  of	
  aggregates
  •   Python	
  server	
  +	
  RabbitMQ	
  (AMQP)
  •   Implemented	
  between	
  Django	
  and	
  MySQL
      (service	
  subscribes	
  to	
  'interesRng'	
  stats)
  •   Horizontally	
  scalable	
  into	
  the	
  cloud,	
  with	
  base	
  
      capacity	
  on	
  dedicated	
  iron
  •   Messaging	
  system	
  expanded	
  to	
  handle	
  real-­‐Rme	
  
      course	
  analysis	
  and	
  push	
  noRficaRons	
  
Indexing Patterns or “Know Your App”

•   Proper	
  indexing	
  criRcal	
  to	
  performance	
  at	
  scale
•   MongoDB	
  is	
  ulRmately	
  flexible,	
  being	
  schemaless
    (mongo	
  gives	
  you	
  enough	
  rope	
  to	
  hang	
  yourself)
•   Avoid	
  un-­‐indexed	
  queries	
  at	
  all	
  costs
    (no.	
  	
  really.	
  	
  quickest	
  way	
  to	
  crater	
  your	
  app)
•   Onus	
  on	
  DevOps	
  to	
  match	
  applicaRon	
  to	
  indexes
    (know	
  your	
  query	
  profile,	
  never	
  assume)
•   Shoot	
  for	
  'covered	
  queries'	
  wherever	
  possible
    (answer	
  can	
  be	
  obtained	
  from	
  indexes	
  only)
Use Case 5: API Logging DB


•   MongoDB	
  is	
  great	
  for	
  logging	
  
    (especially	
  if	
  you	
  log	
  in	
  json	
  format!)
•   Good	
  applicaRon	
  for	
  capped	
  collecRons
    (cap	
  by	
  data	
  size,	
  or	
  T TL)
•   Running	
  with	
  'safe	
  mode'	
  off	
  for	
  speed
    (fire-­‐n-­‐forget	
  logging	
  can	
  reduce	
  latency)
•   Cloud	
  servers	
  are	
  a	
  good	
  fit	
  for	
  logging	
  apps
Capped Collections


• Used	
  for	
  retaining	
  a	
  fixed	
  amount	
  of	
  data
  (based	
  on	
  data	
  size,	
  not	
  number	
  of	
  rows)
• URlizes	
  F IFO	
  method	
  for	
  pruning	
  collecRon
  (Especially	
  useful	
  for	
  data	
  that	
  devalues	
  with	
  age)
• TTL	
  CollecRons	
  (2.2)	
  age	
  out	
  data	
  based	
  on	
  a	
  
  retenRon	
  date	
  limit	
  (useful	
  for	
  a	
  variety	
  of	
  data	
  
  types)
Gotcha!
   Explicitly	
  create	
  the	
  capped	
  collecRon
   before	
  any	
  data	
  is	
  put	
  into	
  the	
  system	
  
   to	
  avoid	
  auto-­‐creaRon	
  of	
  collecRon
Monitoring MongoDB at MMF

•   Monitor	
  for	
  real-­‐Rme	
  system	
  events
    (Faster	
  response	
  Rme	
  =	
  less	
  impact)
•   Track	
  historical	
  performance	
  data	
  trends
    (Useful	
  for	
  predicRve	
  failure	
  analysis	
  and	
  scaling	
  need	
  
    projecRons)
•   MMS	
  –	
  MongoDB	
  Monitoring	
  Service	
  
    	
  (Now	
  our	
  default	
  visual	
  metrics	
  system)
•   Zabbix	
  open	
  source	
  monitoring	
  
•   Makoomi	
  Zabbix	
  plugins	
  for	
  MongoDB
•   Mongostat	
  –	
  realRme	
  troubleshooRng	
  godsend	
  
Conclusion

•   MongoDB	
  is	
  extremely	
  versaRle,	
  and	
  can	
  help	
  
    your	
  applicaRon	
  scale,	
  even	
  if	
  you	
  don't	
  design	
  
    your	
  app	
  with	
  MongoDB	
  from	
  the	
  start.
•   MongoDB	
  fits	
  well	
  into	
  both	
  dedicated	
  and	
  virtual	
  
    architecture	
  environments.
•   Low	
  maintenance	
  overhead	
  compared	
  to	
  
    tradiRonal	
  R DMBS.
•   Provides	
  the	
  horizontal	
  scaling	
  path	
  required	
  for	
  
    Internet	
  Sized	
  applicaRons.
We're	
  Hiring!
hSp://www.mapmyfitness.com/careers

  mongo-­‐sea4le@mapmyfitness.com

More Related Content

What's hot

Meetup#2: Building responsive Symbology & Suggest WebService
Meetup#2: Building responsive Symbology & Suggest WebServiceMeetup#2: Building responsive Symbology & Suggest WebService
Meetup#2: Building responsive Symbology & Suggest WebServiceMinsk MongoDB User Group
 
Presto Summit 2018 - 10 - Qubole
Presto Summit 2018  - 10 - QubolePresto Summit 2018  - 10 - Qubole
Presto Summit 2018 - 10 - Qubolekbajda
 
Data Infrastructure for a World of Music
Data Infrastructure for a World of MusicData Infrastructure for a World of Music
Data Infrastructure for a World of MusicLars Albertsson
 
HBaseCon 2015: HBase as an IoT Stream Analytics Platform for Parkinson's Dise...
HBaseCon 2015: HBase as an IoT Stream Analytics Platform for Parkinson's Dise...HBaseCon 2015: HBase as an IoT Stream Analytics Platform for Parkinson's Dise...
HBaseCon 2015: HBase as an IoT Stream Analytics Platform for Parkinson's Dise...HBaseCon
 
Game Analytics at London Apache Druid Meetup
Game Analytics at London Apache Druid MeetupGame Analytics at London Apache Druid Meetup
Game Analytics at London Apache Druid MeetupJelena Zanko
 
Presto talk @ Global AI conference 2018 Boston
Presto talk @ Global AI conference 2018 BostonPresto talk @ Global AI conference 2018 Boston
Presto talk @ Global AI conference 2018 Bostonkbajda
 
Imply at Apache Druid Meetup in London 1-15-20
Imply at Apache Druid Meetup in London 1-15-20Imply at Apache Druid Meetup in London 1-15-20
Imply at Apache Druid Meetup in London 1-15-20Jelena Zanko
 
MongoDB as a Data Warehouse: Time Series and Device History Data (Medtronic)
MongoDB as a Data Warehouse: Time Series and Device History Data (Medtronic)MongoDB as a Data Warehouse: Time Series and Device History Data (Medtronic)
MongoDB as a Data Warehouse: Time Series and Device History Data (Medtronic)MongoDB
 
MongoDB World 2018: Breaking the Mold - Redesigning Dell's E-Commerce Platform
MongoDB World 2018: Breaking the Mold - Redesigning Dell's E-Commerce PlatformMongoDB World 2018: Breaking the Mold - Redesigning Dell's E-Commerce Platform
MongoDB World 2018: Breaking the Mold - Redesigning Dell's E-Commerce PlatformMongoDB
 
Functional architectural patterns
Functional architectural patternsFunctional architectural patterns
Functional architectural patternsLars Albertsson
 
Clickhouse MeetUp@ContentSquare - ContentSquare's Experience Sharing
Clickhouse MeetUp@ContentSquare - ContentSquare's Experience SharingClickhouse MeetUp@ContentSquare - ContentSquare's Experience Sharing
Clickhouse MeetUp@ContentSquare - ContentSquare's Experience SharingVianney FOUCAULT
 
Using MongoDB + Hadoop Together
Using MongoDB + Hadoop TogetherUsing MongoDB + Hadoop Together
Using MongoDB + Hadoop TogetherMongoDB
 
Social Data and Log Analysis Using MongoDB
Social Data and Log Analysis Using MongoDBSocial Data and Log Analysis Using MongoDB
Social Data and Log Analysis Using MongoDBTakahiro Inoue
 
POLARDB: A database architecture for the cloud
POLARDB: A database architecture for the cloudPOLARDB: A database architecture for the cloud
POLARDB: A database architecture for the cloudoysteing
 
Real-time Analytics with Apache Flink and Druid
Real-time Analytics with Apache Flink and DruidReal-time Analytics with Apache Flink and Druid
Real-time Analytics with Apache Flink and DruidJan Graßegger
 
Event Driven Microservices
Event Driven MicroservicesEvent Driven Microservices
Event Driven MicroservicesFabrizio Fortino
 
Netflix running Presto in the AWS Cloud
Netflix running Presto in the AWS CloudNetflix running Presto in the AWS Cloud
Netflix running Presto in the AWS CloudZhenxiao Luo
 
When to Use MongoDB
When to Use MongoDBWhen to Use MongoDB
When to Use MongoDBMongoDB
 

What's hot (20)

Meetup#2: Building responsive Symbology & Suggest WebService
Meetup#2: Building responsive Symbology & Suggest WebServiceMeetup#2: Building responsive Symbology & Suggest WebService
Meetup#2: Building responsive Symbology & Suggest WebService
 
Presto Summit 2018 - 10 - Qubole
Presto Summit 2018  - 10 - QubolePresto Summit 2018  - 10 - Qubole
Presto Summit 2018 - 10 - Qubole
 
Data Infrastructure for a World of Music
Data Infrastructure for a World of MusicData Infrastructure for a World of Music
Data Infrastructure for a World of Music
 
Data Infrastructure in Kumparan
Data Infrastructure in KumparanData Infrastructure in Kumparan
Data Infrastructure in Kumparan
 
HBaseCon 2015: HBase as an IoT Stream Analytics Platform for Parkinson's Dise...
HBaseCon 2015: HBase as an IoT Stream Analytics Platform for Parkinson's Dise...HBaseCon 2015: HBase as an IoT Stream Analytics Platform for Parkinson's Dise...
HBaseCon 2015: HBase as an IoT Stream Analytics Platform for Parkinson's Dise...
 
Game Analytics at London Apache Druid Meetup
Game Analytics at London Apache Druid MeetupGame Analytics at London Apache Druid Meetup
Game Analytics at London Apache Druid Meetup
 
Bigdata : Big picture
Bigdata : Big pictureBigdata : Big picture
Bigdata : Big picture
 
Presto talk @ Global AI conference 2018 Boston
Presto talk @ Global AI conference 2018 BostonPresto talk @ Global AI conference 2018 Boston
Presto talk @ Global AI conference 2018 Boston
 
Imply at Apache Druid Meetup in London 1-15-20
Imply at Apache Druid Meetup in London 1-15-20Imply at Apache Druid Meetup in London 1-15-20
Imply at Apache Druid Meetup in London 1-15-20
 
MongoDB as a Data Warehouse: Time Series and Device History Data (Medtronic)
MongoDB as a Data Warehouse: Time Series and Device History Data (Medtronic)MongoDB as a Data Warehouse: Time Series and Device History Data (Medtronic)
MongoDB as a Data Warehouse: Time Series and Device History Data (Medtronic)
 
MongoDB World 2018: Breaking the Mold - Redesigning Dell's E-Commerce Platform
MongoDB World 2018: Breaking the Mold - Redesigning Dell's E-Commerce PlatformMongoDB World 2018: Breaking the Mold - Redesigning Dell's E-Commerce Platform
MongoDB World 2018: Breaking the Mold - Redesigning Dell's E-Commerce Platform
 
Functional architectural patterns
Functional architectural patternsFunctional architectural patterns
Functional architectural patterns
 
Clickhouse MeetUp@ContentSquare - ContentSquare's Experience Sharing
Clickhouse MeetUp@ContentSquare - ContentSquare's Experience SharingClickhouse MeetUp@ContentSquare - ContentSquare's Experience Sharing
Clickhouse MeetUp@ContentSquare - ContentSquare's Experience Sharing
 
Using MongoDB + Hadoop Together
Using MongoDB + Hadoop TogetherUsing MongoDB + Hadoop Together
Using MongoDB + Hadoop Together
 
Social Data and Log Analysis Using MongoDB
Social Data and Log Analysis Using MongoDBSocial Data and Log Analysis Using MongoDB
Social Data and Log Analysis Using MongoDB
 
POLARDB: A database architecture for the cloud
POLARDB: A database architecture for the cloudPOLARDB: A database architecture for the cloud
POLARDB: A database architecture for the cloud
 
Real-time Analytics with Apache Flink and Druid
Real-time Analytics with Apache Flink and DruidReal-time Analytics with Apache Flink and Druid
Real-time Analytics with Apache Flink and Druid
 
Event Driven Microservices
Event Driven MicroservicesEvent Driven Microservices
Event Driven Microservices
 
Netflix running Presto in the AWS Cloud
Netflix running Presto in the AWS CloudNetflix running Presto in the AWS Cloud
Netflix running Presto in the AWS Cloud
 
When to Use MongoDB
When to Use MongoDBWhen to Use MongoDB
When to Use MongoDB
 

Similar to MongoDB Versatility: Scaling the MapMyFitness Platform

MongoDB at MapMyFitness from a DevOps Perspective
MongoDB at MapMyFitness from a DevOps PerspectiveMongoDB at MapMyFitness from a DevOps Perspective
MongoDB at MapMyFitness from a DevOps PerspectiveMongoDB
 
Agility and Scalability with MongoDB
Agility and Scalability with MongoDBAgility and Scalability with MongoDB
Agility and Scalability with MongoDBMongoDB
 
MongoDB Internals
MongoDB InternalsMongoDB Internals
MongoDB InternalsSiraj Memon
 
Augmenting Mongo DB with Treasure Data
Augmenting Mongo DB with Treasure DataAugmenting Mongo DB with Treasure Data
Augmenting Mongo DB with Treasure DataTreasure Data, Inc.
 
Augmenting Mongo DB with treasure data
Augmenting Mongo DB with treasure dataAugmenting Mongo DB with treasure data
Augmenting Mongo DB with treasure dataTreasure Data, Inc.
 
MongoDB at MapMyFitness
MongoDB at MapMyFitnessMongoDB at MapMyFitness
MongoDB at MapMyFitnessMapMyFitness
 
Running MongoDB on AWS
Running MongoDB on AWSRunning MongoDB on AWS
Running MongoDB on AWSMongoDB
 
Mongo db transcript
Mongo db transcriptMongo db transcript
Mongo db transcriptfoliba
 
Conceptos básicos. Seminario web 6: Despliegue de producción
Conceptos básicos. Seminario web 6: Despliegue de producciónConceptos básicos. Seminario web 6: Despliegue de producción
Conceptos básicos. Seminario web 6: Despliegue de producciónMongoDB
 
Azure DocumentDB Overview
Azure DocumentDB OverviewAzure DocumentDB Overview
Azure DocumentDB OverviewAndrew Liu
 
L'architettura di classe enterprise di nuova generazione - Massimo Brignoli
L'architettura di classe enterprise di nuova generazione - Massimo BrignoliL'architettura di classe enterprise di nuova generazione - Massimo Brignoli
L'architettura di classe enterprise di nuova generazione - Massimo BrignoliData Driven Innovation
 
AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...
AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...
AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...Amazon Web Services
 
MongoDB Knowledge Shareing
MongoDB Knowledge ShareingMongoDB Knowledge Shareing
MongoDB Knowledge ShareingPhilip Zhong
 
Ops Jumpstart: MongoDB Administration 101
Ops Jumpstart: MongoDB Administration 101Ops Jumpstart: MongoDB Administration 101
Ops Jumpstart: MongoDB Administration 101MongoDB
 
MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...
MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...
MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...MongoDB
 
MongoDB: What, why, when
MongoDB: What, why, whenMongoDB: What, why, when
MongoDB: What, why, whenEugenio Minardi
 
MongoDB Tick Data Presentation
MongoDB Tick Data PresentationMongoDB Tick Data Presentation
MongoDB Tick Data PresentationMongoDB
 
ElasticSearch as (only) datastore
ElasticSearch as (only) datastoreElasticSearch as (only) datastore
ElasticSearch as (only) datastoreTomas Sirny
 

Similar to MongoDB Versatility: Scaling the MapMyFitness Platform (20)

MongoDB at MapMyFitness from a DevOps Perspective
MongoDB at MapMyFitness from a DevOps PerspectiveMongoDB at MapMyFitness from a DevOps Perspective
MongoDB at MapMyFitness from a DevOps Perspective
 
Agility and Scalability with MongoDB
Agility and Scalability with MongoDBAgility and Scalability with MongoDB
Agility and Scalability with MongoDB
 
MongoDB Internals
MongoDB InternalsMongoDB Internals
MongoDB Internals
 
mongodb tutorial
mongodb tutorialmongodb tutorial
mongodb tutorial
 
Augmenting Mongo DB with Treasure Data
Augmenting Mongo DB with Treasure DataAugmenting Mongo DB with Treasure Data
Augmenting Mongo DB with Treasure Data
 
Augmenting Mongo DB with treasure data
Augmenting Mongo DB with treasure dataAugmenting Mongo DB with treasure data
Augmenting Mongo DB with treasure data
 
MongoDB at MapMyFitness
MongoDB at MapMyFitnessMongoDB at MapMyFitness
MongoDB at MapMyFitness
 
Running MongoDB on AWS
Running MongoDB on AWSRunning MongoDB on AWS
Running MongoDB on AWS
 
Mongo db transcript
Mongo db transcriptMongo db transcript
Mongo db transcript
 
Conceptos básicos. Seminario web 6: Despliegue de producción
Conceptos básicos. Seminario web 6: Despliegue de producciónConceptos básicos. Seminario web 6: Despliegue de producción
Conceptos básicos. Seminario web 6: Despliegue de producción
 
Azure DocumentDB Overview
Azure DocumentDB OverviewAzure DocumentDB Overview
Azure DocumentDB Overview
 
L'architettura di classe enterprise di nuova generazione - Massimo Brignoli
L'architettura di classe enterprise di nuova generazione - Massimo BrignoliL'architettura di classe enterprise di nuova generazione - Massimo Brignoli
L'architettura di classe enterprise di nuova generazione - Massimo Brignoli
 
Mongo db intro.pptx
Mongo db intro.pptxMongo db intro.pptx
Mongo db intro.pptx
 
AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...
AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...
AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...
 
MongoDB Knowledge Shareing
MongoDB Knowledge ShareingMongoDB Knowledge Shareing
MongoDB Knowledge Shareing
 
Ops Jumpstart: MongoDB Administration 101
Ops Jumpstart: MongoDB Administration 101Ops Jumpstart: MongoDB Administration 101
Ops Jumpstart: MongoDB Administration 101
 
MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...
MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...
MongoDB .local Houston 2019: Building an IoT Streaming Analytics Platform to ...
 
MongoDB: What, why, when
MongoDB: What, why, whenMongoDB: What, why, when
MongoDB: What, why, when
 
MongoDB Tick Data Presentation
MongoDB Tick Data PresentationMongoDB Tick Data Presentation
MongoDB Tick Data Presentation
 
ElasticSearch as (only) datastore
ElasticSearch as (only) datastoreElasticSearch as (only) datastore
ElasticSearch as (only) datastore
 

More from MongoDB

MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump StartMongoDB
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB
 

More from MongoDB (20)

MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
 

Recently uploaded

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 

Recently uploaded (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 

MongoDB Versatility: Scaling the MapMyFitness Platform

  • 1. MongoDB Versatility Scaling the MapMyFitness Platform Sept 14, 2012
  • 2. Introduction l MapMyFitness  founded  in  2007 l Offices  in  Denver,  CO  &  AusRn,  T X (w/  associates  in  S F,  Boston,  New  York,  L A,  and  Chicago) l Over  11  million  registered  users l ~60  million  geo-­‐data  routes   (runs,  rides,  walks,  hikes,  etc) l Core  sites,  mobile  apps,  A PI,  white-­‐label (MapMyRun,  MapMyRide,  MapMyWalk,  MapMyTri,  MapMyHike,   MapMyFitness,  MapMyRace)
  • 3. Platform Overview and Background • Origins  in  the  L AMP  stack (Linux-­‐Apache-­‐MySQL-­‐PHP) • Scaled  well  to  ~2  million  users • Redesigned  in  Python/Django • MySQL  backend  not  sufficient “How  to  scale  from  2.5  to  6  million  users?”
  • 4. Functional Scaling • IdenRfy  high-­‐growth  /  large-­‐data  collecRons • Must  be  able  to  live  outside  the  exisRng   relaRonal  schema • Integrate  via  remote  resource  mapping  tables   in  the  R DBMS • FuncRonal  Scaling  can  facilitate  movement   towards  a  Service  Oriented  Architecture
  • 5. Use Case 1: Route Data Store • Geo-­‐locaRon  data  stored  in  json  blocks • MySQL  →  S3  →  File  Server  →  MongoDB • IniRal  size  of  ~500GB,  ~18  million  objects • 3  member  replica  set • Dedicated  iron  servers  with  24GB  R AM
  • 6. Route presentation example (Lost in Seattle)
  • 7. Route Data Example { id: "e4da3b7fbbce2345d7772b06 74a318d5", updated_date: "2005-07-23 15:47:31", city: "San Diego", user_id: "4", created_date: "2005-07-23 15:47:31", route_name: "balboa park", state: "CA",
  • 8. Solution Summary MigraRon  PaSern: • RESTful  A PI  modified  to  use  Mongo  P HP  driver   • Implemented  a  'pass  thru'  migraRon  funcRon • Batch  'backfill'  migraRons  via  pass-­‐thru • Data  transform  handled  in  P HP  code
  • 9. SAN storage and MongoDB l Needed  to  quickly  expand  available  disk l Implemented  high-­‐end  SAN  subsystem l Impressive  i/o  performance  with  MongoDB l MigraRon  to  SAN  painless  thanks  to  OpLog l Easily  expandable  due  to  the  use  of  X FS l Over  100  million  objects,  ~7TB  of  data  
  • 10. “Gotchas” a.k.a. Lessons Learned • Pay  aSenRon  to  potenRal  document  size (URlize  GridFS  for  larger  objects) • Allocate  enough  R AM  for  indexes!   (Especially  important  for  Large  data   collecRons) • File  dump  backups  may  not  scale  for  T B+   size  datasets. (URlize  delayed  and  'hidden'  member  for   DR) • Evaluate  filesystem  choice  carefully   (hint:  xfs)
  • 11. Use Case 2: Django Session Store • Django  sessions  not  scaling  in  MySQL • Modified  core  methods  to  use  MongoDB • Cutover  of  new  data   (Test  for  Mongo  data,  fallback  to  MySQL) • MigraRon  of  data  via  export/import (Simple  python  transform  script  using  pymongo)
  • 12. Use Case 3: Athletic Live Tracking • Beta  feature  uRlized  T T  +  MySQL (did  not  scale  for  large  events) • Required  to  be  “burstable”  for  Live  Events (deployable  in  'The  Cloud') • Data  size  relaRvely  small   (compared  to  Routes  D B) • “Live”  data,  no  archiving  required  
  • 13. Use Case 3: Athletic Live Tracking • RS  Cloud,  3+n  MongoDB  replica  set   • Quickly  scalable  via  MongoDB  replicaRon • Highly  opRmized,  indexes  for  every  query • Low  administraRon  overhead  (vs  MySQL) “Gotchas” l Know  your  applicaRon   (tune  indexes  and  'find()'  ops  accordingly) l Know  your  driver (python  pooling  driver  defaults  way  too  
  • 14. As a DBA: Ease of Administration • ReplicaRon  made  elegant (as  compared  with  MySQL) • Ridiculously  simple  to  add  add'l  members • Be  sure  to  run  IniRalSync  from  a  secondary rs.add(  “host”  :  “livetrack_db09”,  “iniRalSync”  :   {  “state”  :  2  }  )
  • 15. Use Case 4: Micro-Messaging Framework • IniRal  use  case  providing  'micro-­‐goals'   (user-­‐defined  stats  aggregaRon) • MongoDB  for  persistence  of  aggregates • Python  server  +  RabbitMQ  (AMQP) • Implemented  between  Django  and  MySQL (service  subscribes  to  'interesRng'  stats) • Horizontally  scalable  into  the  cloud,  with  base   capacity  on  dedicated  iron • Messaging  system  expanded  to  handle  real-­‐Rme   course  analysis  and  push  noRficaRons  
  • 16. Indexing Patterns or “Know Your App” • Proper  indexing  criRcal  to  performance  at  scale • MongoDB  is  ulRmately  flexible,  being  schemaless (mongo  gives  you  enough  rope  to  hang  yourself) • Avoid  un-­‐indexed  queries  at  all  costs (no.    really.    quickest  way  to  crater  your  app) • Onus  on  DevOps  to  match  applicaRon  to  indexes (know  your  query  profile,  never  assume) • Shoot  for  'covered  queries'  wherever  possible (answer  can  be  obtained  from  indexes  only)
  • 17. Use Case 5: API Logging DB • MongoDB  is  great  for  logging   (especially  if  you  log  in  json  format!) • Good  applicaRon  for  capped  collecRons (cap  by  data  size,  or  T TL) • Running  with  'safe  mode'  off  for  speed (fire-­‐n-­‐forget  logging  can  reduce  latency) • Cloud  servers  are  a  good  fit  for  logging  apps
  • 18. Capped Collections • Used  for  retaining  a  fixed  amount  of  data (based  on  data  size,  not  number  of  rows) • URlizes  F IFO  method  for  pruning  collecRon (Especially  useful  for  data  that  devalues  with  age) • TTL  CollecRons  (2.2)  age  out  data  based  on  a   retenRon  date  limit  (useful  for  a  variety  of  data   types) Gotcha! Explicitly  create  the  capped  collecRon before  any  data  is  put  into  the  system   to  avoid  auto-­‐creaRon  of  collecRon
  • 19. Monitoring MongoDB at MMF • Monitor  for  real-­‐Rme  system  events (Faster  response  Rme  =  less  impact) • Track  historical  performance  data  trends (Useful  for  predicRve  failure  analysis  and  scaling  need   projecRons) • MMS  –  MongoDB  Monitoring  Service    (Now  our  default  visual  metrics  system) • Zabbix  open  source  monitoring   • Makoomi  Zabbix  plugins  for  MongoDB • Mongostat  –  realRme  troubleshooRng  godsend  
  • 20. Conclusion • MongoDB  is  extremely  versaRle,  and  can  help   your  applicaRon  scale,  even  if  you  don't  design   your  app  with  MongoDB  from  the  start. • MongoDB  fits  well  into  both  dedicated  and  virtual   architecture  environments. • Low  maintenance  overhead  compared  to   tradiRonal  R DMBS. • Provides  the  horizontal  scaling  path  required  for   Internet  Sized  applicaRons.
  • 21. We're  Hiring! hSp://www.mapmyfitness.com/careers mongo-­‐sea4le@mapmyfitness.com