SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
Use Cases and Roadmap

                                 Norberto Leite

                         Senior Solutions Architect, EMEA
                              norberto@10gen.com
                                      @nleite




Sunday, 21 October 12
Agenda

       •Use Cases
       •Roadmap
       •Future




Sunday, 21 October 12
Use Cases




Sunday, 21 October 12
Big Data = MongoDB = Solved

        Content Management    Operational Intelligence   E-Commerce




     User Data Management    High Volume Data Feeds        Mobile




Sunday, 21 October 12
Location Based Service

       •Problem:
                •Location based social networking service needs to scale to
                high number of users and check-ins

       •Solution:
                •Used MongoDB deployed on EC2
                •8 clusters, 40 machines, 15k QPS, 2.3 billion records
                •Auto-sharding and geo-spatial indexing are key

       •Results:
                •To date have scaled to 9m users, 3m check-ins per day,
                750m total check-ins, 20m places, 400k merchants



Sunday, 21 October 12
•Problem:
                •Business needed modern data store for rapid
                development and scale

       •Solution:
                •Used PHP and MongoDB

       •Results:
                •RealTime estatistics
                •All data, images etc store together
                •No need for complex migrations
                •Enable very rapid development and growth


Sunday, 21 October 12
•Problem:
                •Deal with massive data volume across all customers

       •Solution:
                •Use MongoDB to replace Google Analytics / Omniture

       •Results:
                •Less than one week to build prototype and POC
                •Rapid deployment of new features




Sunday, 21 October 12
•Problem:
                •Lots of friction with RDMS for archiving storage
                •Needed to more scalable archive storage database

       •Solution:
                •Keep MySQL for active data ( 100 Million )
                •MongoDB for archive ( 2 Billion )

       •Results:
                •No more alter tables statements taking over 2 months
                •Sharding fixed vertical scale problem
                •Very happily looking for other ways to use MongoDB


Sunday, 21 October 12
How Telefónica uses MongoDB

       •London:
                •O2 UK: Priority Moments location based offers
                service
                •O2 UK: eCommerce Product Catalog
       •Madrid:
                •M2M (machine to machine) event acquisition
                platform
                •Personalization Server (Oracle migration)



Sunday, 21 October 12
How Telefónica uses MongoDB
                                                                Apps
        M2M Event Acquisition


                        Event notification


                                                          Event Notifier              Portal

                                                                                       API



                                             Event                          Mng
                          Core                                            Storage      Mng      Mng
                                            Storage
                                                                                     Platform




                                                Event Gateway
                                                                                     BOSS
                        Event acquisition


                                                                 Operator Network


                            MNO1
                                                                MNO2
                                                                                    MNOn




Sunday, 21 October 12
How Telefónica uses MongoDB
        Product Catalog




Sunday, 21 October 12
And many others ...




Sunday, 21 October 12
Roadmap




Sunday, 21 October 12
The Evolution of MongoDB

           1.8                2.0               2.2                2.4
         March ‘11          Sept ‘11           Aug ‘12          winter ‘12

      Journaling        Index enhancements    Aggregation
      Sharding and      to improve size and   Framework
      Replica set       performance           Multi-Data Center
      enhancements      Authentication with   Deployments
      Spherical geo     sharded clusters      Improved
      search            Replica Set           Performance and
                        Enhancements          Concurrency
                        Concurrency
                        improvements

Sunday, 21 October 12
2.2 Release August 2012

       • Concurrency: yielding + db level locking
       • New aggregation framework
       • TTL Collections
       • Improved free list implementation
       • Tag aware sharding
       • Read Preferences

       • http://docs.mongodb.org/manual/release-notes/2.2/




Sunday, 21 October 12
Yielding + DB Locking

       • improved yielding on page fault
       • breaking down the global level lock
           • Lock per Database in 2.2
           • Lock per Collection post 2.2




Sunday, 21 October 12
Aggregation Framework
       • pipeline model (a bit like unix pipes)
       • like a "group by"
             – Operators
                – $project, $group, $match, $limit, $skip, $unwind, $sort
             – Expressions
                – Logical Expressions: $and, $not, $or, $cmp ...
                – Math Expressions: $add, $divide, $mod ...
                – String Expressions: $strcasecmp, $substr, $toLower ...
                – Date/Time Expressions: $dayOfMonth, $hour...
                – Multi-Expressions: $ifNull, $cond

       • Use Cases: Real-time / inline analytics



Sunday, 21 October 12
Example - For each "tag", list
       the authors
       {
           title : "my tech blog" ,
           author : "bob" ,
           tags : [ "fun" , "good" , "tech" ] ,
       }

       {
           title : "cool tech" ,
           author : "jim" ,
           tags : [ "awesome" , "tech" ] ,
       }




Sunday, 21 October 12
Aggregate Command

       db.blogs.aggregate(
          { $project : { author : 1, tags : 1 } },
          { $unwind : "$tags" },
          { $group : {
             _id : { tags : "$tags" },
             authors : { $addToSet : "$author" }
          } }
       );




Sunday, 21 October 12
Time To Live (TTL)
       Collections
       • auto expire data out of a collection
       • must be on a date datatype
       • single value is evaluated
       • Use Cases: data retention, cache expiration
       db.events.ensureIndex(
         { "timestamp": 1 },
         { expireAfterSeconds: 3600 } )




Sunday, 21 October 12
Tag aware sharding

       • Distribute data based on a Tag
       • Use Cases: Locality for Data by Data Center
       sh.addShardTag("shard0000", "dc-emea")

       sh.addTagRange("mydb.users",
                      { country: "uk"}, { country: "ul"},
                      "dc-emea"
       );

       sh.addTagRange("mydb.users",
                      { country: "by"},{ country: "bz"},
                      "dc-emea"
       );



Sunday, 21 October 12
Read Preferences

       • Mode
           • PRIMARY, PRIMARY_PREFERRED
           • SECONDARY, SECONDARY_PREFERRED
           • NEAREST
       • Tag Sets
           • Uses Replica Set tags
           • Passed Tag is used to find matching members




Sunday, 21 October 12
2.4 Roadmap

       Must
       • Kerberos integration
       • LDAP/AD integration
       Nice To Have
       • Hash Shard Key
       • Background Index Build on Secondaries
       • V8 for Map/Reduce (replaces Spider Monkey)
       • Geo: intersecting polygons, Geo shard key
       • Agg: $out, more functions, speed improvements



Sunday, 21 October 12
And beyond

       • Full Text Search
       • Collection / Extent level locking
       • Field level security
       • Audit




Sunday, 21 October 12
Future of NoSQL?




Sunday, 21 October 12
Future of the Data Center

       • Hardware
                • More Cores
                • More Memory
                • More IOPs (SSD)
                • More Capacity
                • More bandwidth (100GbE)
       • "Auto Pilot"
                • Zero human intervention



Sunday, 21 October 12
Future of NoSQL?

       • Real Time Analytics
                • Can't wait for a batch process / ETL / DW
       • Ad-Hoc / Analytics
                • Map/Reduce = Hammer
       • Greater Scale
                • 100s -> 1,000s of nodes
       • Deeper history
                • Petabytes -> Exabytes
       • Heterogeneous deployment
                • Seamless integration with what you have


Sunday, 21 October 12
Sunday, 21 October 12

Mais conteúdo relacionado

Mais procurados

Boundary Front end tech talk: how it works
Boundary Front end tech talk: how it worksBoundary Front end tech talk: how it works
Boundary Front end tech talk: how it works
Boundary
 

Mais procurados (18)

Grails 2.0 Update
Grails 2.0 UpdateGrails 2.0 Update
Grails 2.0 Update
 
Boundary Front end tech talk: how it works
Boundary Front end tech talk: how it worksBoundary Front end tech talk: how it works
Boundary Front end tech talk: how it works
 
MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014 F...
MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014 F...MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014 F...
MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014 F...
 
Cloud Backup Overview
Cloud Backup Overview Cloud Backup Overview
Cloud Backup Overview
 
Lightning Talk: Why and How to Integrate MongoDB and NoSQL into Hadoop Big Da...
Lightning Talk: Why and How to Integrate MongoDB and NoSQL into Hadoop Big Da...Lightning Talk: Why and How to Integrate MongoDB and NoSQL into Hadoop Big Da...
Lightning Talk: Why and How to Integrate MongoDB and NoSQL into Hadoop Big Da...
 
Implementing and Visualizing Clickstream data with MongoDB
Implementing and Visualizing Clickstream data with MongoDBImplementing and Visualizing Clickstream data with MongoDB
Implementing and Visualizing Clickstream data with MongoDB
 
JSONiq - The SQL of NoSQL
JSONiq - The SQL of NoSQLJSONiq - The SQL of NoSQL
JSONiq - The SQL of NoSQL
 
GeoServer intro for SDI Days 2013
GeoServer intro for SDI Days 2013GeoServer intro for SDI Days 2013
GeoServer intro for SDI Days 2013
 
Webinar: Choosing the Right Shard Key for High Performance and Scale
Webinar: Choosing the Right Shard Key for High Performance and ScaleWebinar: Choosing the Right Shard Key for High Performance and Scale
Webinar: Choosing the Right Shard Key for High Performance and Scale
 
Programmatic Bidding Data Streams & Druid
Programmatic Bidding Data Streams & DruidProgrammatic Bidding Data Streams & Druid
Programmatic Bidding Data Streams & Druid
 
Eko10 - Security Monitoring for Big Infrastructures without a Million Dollar ...
Eko10 - Security Monitoring for Big Infrastructures without a Million Dollar ...Eko10 - Security Monitoring for Big Infrastructures without a Million Dollar ...
Eko10 - Security Monitoring for Big Infrastructures without a Million Dollar ...
 
MongodB Internals
MongodB InternalsMongodB Internals
MongodB Internals
 
July 2014 HUG : Pushing the limits of Realtime Analytics using Druid
July 2014 HUG : Pushing the limits of Realtime Analytics using DruidJuly 2014 HUG : Pushing the limits of Realtime Analytics using Druid
July 2014 HUG : Pushing the limits of Realtime Analytics using Druid
 
Cutting through the fog of cloud
Cutting through the fog of cloudCutting through the fog of cloud
Cutting through the fog of cloud
 
JavaScript as Data Processing Language & HTML5 Integration
JavaScript as Data Processing Language & HTML5 IntegrationJavaScript as Data Processing Language & HTML5 Integration
JavaScript as Data Processing Language & HTML5 Integration
 
GeoServer Feature FRENZY
GeoServer Feature FRENZYGeoServer Feature FRENZY
GeoServer Feature FRENZY
 
MongoDB Evenings DC: Get MEAN and Lean with Docker and Kubernetes
MongoDB Evenings DC: Get MEAN and Lean with Docker and KubernetesMongoDB Evenings DC: Get MEAN and Lean with Docker and Kubernetes
MongoDB Evenings DC: Get MEAN and Lean with Docker and Kubernetes
 
Webinar: Schema Patterns and Your Storage Engine
Webinar: Schema Patterns and Your Storage EngineWebinar: Schema Patterns and Your Storage Engine
Webinar: Schema Patterns and Your Storage Engine
 

Destaque

Indexing and Query Optimisation
Indexing and Query OptimisationIndexing and Query Optimisation
Indexing and Query Optimisation
MongoDB
 
Welcome to MongoDB Sydney
Welcome to MongoDB SydneyWelcome to MongoDB Sydney
Welcome to MongoDB Sydney
MongoDB
 
Sharding
ShardingSharding
Sharding
MongoDB
 
Sharding - Seoul 2012
Sharding - Seoul 2012Sharding - Seoul 2012
Sharding - Seoul 2012
MongoDB
 

Destaque (6)

MongoDB Munich 2012: MongoDB for official documents in Bavaria
MongoDB Munich 2012: MongoDB for official documents in BavariaMongoDB Munich 2012: MongoDB for official documents in Bavaria
MongoDB Munich 2012: MongoDB for official documents in Bavaria
 
Indexing and Query Optimisation
Indexing and Query OptimisationIndexing and Query Optimisation
Indexing and Query Optimisation
 
Mobilize Your MongoDB! Developing iPhone and Android Apps in the Cloud
Mobilize Your MongoDB! Developing iPhone and Android Apps in the CloudMobilize Your MongoDB! Developing iPhone and Android Apps in the Cloud
Mobilize Your MongoDB! Developing iPhone and Android Apps in the Cloud
 
Welcome to MongoDB Sydney
Welcome to MongoDB SydneyWelcome to MongoDB Sydney
Welcome to MongoDB Sydney
 
Sharding
ShardingSharding
Sharding
 
Sharding - Seoul 2012
Sharding - Seoul 2012Sharding - Seoul 2012
Sharding - Seoul 2012
 

Semelhante a A Morning with MongoDB Barcelona: Use Cases and Roadmap

Accra MongoDB User Group
Accra MongoDB User GroupAccra MongoDB User Group
Accra MongoDB User Group
MongoDB
 
MongoDB Roadmap
MongoDB RoadmapMongoDB Roadmap
MongoDB Roadmap
MongoDB
 
MongoDB Roadmap
MongoDB RoadmapMongoDB Roadmap
MongoDB Roadmap
MongoDB
 
NoSQL for the SQL Server Pro
NoSQL for the SQL Server ProNoSQL for the SQL Server Pro
NoSQL for the SQL Server Pro
Lynn Langit
 
MongoDB in FS
MongoDB in FSMongoDB in FS
MongoDB in FS
MongoDB
 
2012 mongo db_bangalore_roadmap_new
2012 mongo db_bangalore_roadmap_new2012 mongo db_bangalore_roadmap_new
2012 mongo db_bangalore_roadmap_new
MongoDB
 

Semelhante a A Morning with MongoDB Barcelona: Use Cases and Roadmap (20)

Accra MongoDB User Group
Accra MongoDB User GroupAccra MongoDB User Group
Accra MongoDB User Group
 
Introducing MongoDB into your Organization
Introducing MongoDB into your OrganizationIntroducing MongoDB into your Organization
Introducing MongoDB into your Organization
 
MongoDB Roadmap
MongoDB RoadmapMongoDB Roadmap
MongoDB Roadmap
 
Maximizing Data Lake ROI with Data Virtualization: A Technical Demonstration
Maximizing Data Lake ROI with Data Virtualization: A Technical DemonstrationMaximizing Data Lake ROI with Data Virtualization: A Technical Demonstration
Maximizing Data Lake ROI with Data Virtualization: A Technical Demonstration
 
MongoDB Roadmap
MongoDB RoadmapMongoDB Roadmap
MongoDB Roadmap
 
MySQL Transformation Case Study: 80% Cost Savings & Uninterrupted Availabilit...
MySQL Transformation Case Study: 80% Cost Savings & Uninterrupted Availabilit...MySQL Transformation Case Study: 80% Cost Savings & Uninterrupted Availabilit...
MySQL Transformation Case Study: 80% Cost Savings & Uninterrupted Availabilit...
 
Why Organizations are Looking at Alternative Database Technologies – Introduc...
Why Organizations are Looking at Alternative Database Technologies – Introduc...Why Organizations are Looking at Alternative Database Technologies – Introduc...
Why Organizations are Looking at Alternative Database Technologies – Introduc...
 
Webinar: Enterprise Data Management in the Era of MongoDB and Data Lakes
Webinar: Enterprise Data Management in the Era of MongoDB and Data LakesWebinar: Enterprise Data Management in the Era of MongoDB and Data Lakes
Webinar: Enterprise Data Management in the Era of MongoDB and Data Lakes
 
Webinar: Managing Real Time Risk Analytics with MongoDB
Webinar: Managing Real Time Risk Analytics with MongoDB Webinar: Managing Real Time Risk Analytics with MongoDB
Webinar: Managing Real Time Risk Analytics with MongoDB
 
L’architettura di Classe Enterprise di Nuova Generazione
L’architettura di Classe Enterprise di Nuova GenerazioneL’architettura di Classe Enterprise di Nuova Generazione
L’architettura di Classe Enterprise di Nuova Generazione
 
Using Spring with NoSQL databases (SpringOne China 2012)
Using Spring with NoSQL databases (SpringOne China 2012)Using Spring with NoSQL databases (SpringOne China 2012)
Using Spring with NoSQL databases (SpringOne China 2012)
 
NoSQL for the SQL Server Pro
NoSQL for the SQL Server ProNoSQL for the SQL Server Pro
NoSQL for the SQL Server Pro
 
Getting Started with MongoDB at Oracle Open World 2012
Getting Started with MongoDB at Oracle Open World 2012Getting Started with MongoDB at Oracle Open World 2012
Getting Started with MongoDB at Oracle Open World 2012
 
Enterprise Trends for MongoDB as a Service
Enterprise Trends for MongoDB as a ServiceEnterprise Trends for MongoDB as a Service
Enterprise Trends for MongoDB as a Service
 
Webinar: How Banks Use MongoDB as a Tick Database
Webinar: How Banks Use MongoDB as a Tick DatabaseWebinar: How Banks Use MongoDB as a Tick Database
Webinar: How Banks Use MongoDB as a Tick Database
 
Mongodb
MongodbMongodb
Mongodb
 
MongoDB in FS
MongoDB in FSMongoDB in FS
MongoDB in FS
 
Strategies for Context Data Persistence
Strategies for Context Data PersistenceStrategies for Context Data Persistence
Strategies for Context Data Persistence
 
2012 mongo db_bangalore_roadmap_new
2012 mongo db_bangalore_roadmap_new2012 mongo db_bangalore_roadmap_new
2012 mongo db_bangalore_roadmap_new
 
SQL? NoSQL? NewSQL?!? What’s a Java developer to do? - JDC2012 Cairo, Egypt
SQL? NoSQL? NewSQL?!? What’s a Java developer to do? - JDC2012 Cairo, EgyptSQL? NoSQL? NewSQL?!? What’s a Java developer to do? - JDC2012 Cairo, Egypt
SQL? NoSQL? NewSQL?!? What’s a Java developer to do? - JDC2012 Cairo, Egypt
 

Mais de MongoDB

Mais de 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...
 

A Morning with MongoDB Barcelona: Use Cases and Roadmap

  • 1. Use Cases and Roadmap Norberto Leite Senior Solutions Architect, EMEA norberto@10gen.com @nleite Sunday, 21 October 12
  • 2. Agenda •Use Cases •Roadmap •Future Sunday, 21 October 12
  • 3. Use Cases Sunday, 21 October 12
  • 4. Big Data = MongoDB = Solved Content Management Operational Intelligence E-Commerce User Data Management High Volume Data Feeds Mobile Sunday, 21 October 12
  • 5. Location Based Service •Problem: •Location based social networking service needs to scale to high number of users and check-ins •Solution: •Used MongoDB deployed on EC2 •8 clusters, 40 machines, 15k QPS, 2.3 billion records •Auto-sharding and geo-spatial indexing are key •Results: •To date have scaled to 9m users, 3m check-ins per day, 750m total check-ins, 20m places, 400k merchants Sunday, 21 October 12
  • 6. •Problem: •Business needed modern data store for rapid development and scale •Solution: •Used PHP and MongoDB •Results: •RealTime estatistics •All data, images etc store together •No need for complex migrations •Enable very rapid development and growth Sunday, 21 October 12
  • 7. •Problem: •Deal with massive data volume across all customers •Solution: •Use MongoDB to replace Google Analytics / Omniture •Results: •Less than one week to build prototype and POC •Rapid deployment of new features Sunday, 21 October 12
  • 8. •Problem: •Lots of friction with RDMS for archiving storage •Needed to more scalable archive storage database •Solution: •Keep MySQL for active data ( 100 Million ) •MongoDB for archive ( 2 Billion ) •Results: •No more alter tables statements taking over 2 months •Sharding fixed vertical scale problem •Very happily looking for other ways to use MongoDB Sunday, 21 October 12
  • 9. How Telefónica uses MongoDB •London: •O2 UK: Priority Moments location based offers service •O2 UK: eCommerce Product Catalog •Madrid: •M2M (machine to machine) event acquisition platform •Personalization Server (Oracle migration) Sunday, 21 October 12
  • 10. How Telefónica uses MongoDB Apps M2M Event Acquisition Event notification Event Notifier Portal API Event Mng Core Storage Mng Mng Storage Platform Event Gateway BOSS Event acquisition Operator Network MNO1 MNO2 MNOn Sunday, 21 October 12
  • 11. How Telefónica uses MongoDB Product Catalog Sunday, 21 October 12
  • 12. And many others ... Sunday, 21 October 12
  • 14. The Evolution of MongoDB 1.8 2.0 2.2 2.4 March ‘11 Sept ‘11 Aug ‘12 winter ‘12 Journaling Index enhancements Aggregation Sharding and to improve size and Framework Replica set performance Multi-Data Center enhancements Authentication with Deployments Spherical geo sharded clusters Improved search Replica Set Performance and Enhancements Concurrency Concurrency improvements Sunday, 21 October 12
  • 15. 2.2 Release August 2012 • Concurrency: yielding + db level locking • New aggregation framework • TTL Collections • Improved free list implementation • Tag aware sharding • Read Preferences • http://docs.mongodb.org/manual/release-notes/2.2/ Sunday, 21 October 12
  • 16. Yielding + DB Locking • improved yielding on page fault • breaking down the global level lock • Lock per Database in 2.2 • Lock per Collection post 2.2 Sunday, 21 October 12
  • 17. Aggregation Framework • pipeline model (a bit like unix pipes) • like a "group by" – Operators – $project, $group, $match, $limit, $skip, $unwind, $sort – Expressions – Logical Expressions: $and, $not, $or, $cmp ... – Math Expressions: $add, $divide, $mod ... – String Expressions: $strcasecmp, $substr, $toLower ... – Date/Time Expressions: $dayOfMonth, $hour... – Multi-Expressions: $ifNull, $cond • Use Cases: Real-time / inline analytics Sunday, 21 October 12
  • 18. Example - For each "tag", list the authors { title : "my tech blog" , author : "bob" , tags : [ "fun" , "good" , "tech" ] , } { title : "cool tech" , author : "jim" , tags : [ "awesome" , "tech" ] , } Sunday, 21 October 12
  • 19. Aggregate Command db.blogs.aggregate( { $project : { author : 1, tags : 1 } }, { $unwind : "$tags" }, { $group : { _id : { tags : "$tags" }, authors : { $addToSet : "$author" } } } ); Sunday, 21 October 12
  • 20. Time To Live (TTL) Collections • auto expire data out of a collection • must be on a date datatype • single value is evaluated • Use Cases: data retention, cache expiration db.events.ensureIndex( { "timestamp": 1 }, { expireAfterSeconds: 3600 } ) Sunday, 21 October 12
  • 21. Tag aware sharding • Distribute data based on a Tag • Use Cases: Locality for Data by Data Center sh.addShardTag("shard0000", "dc-emea") sh.addTagRange("mydb.users", { country: "uk"}, { country: "ul"}, "dc-emea" ); sh.addTagRange("mydb.users", { country: "by"},{ country: "bz"}, "dc-emea" ); Sunday, 21 October 12
  • 22. Read Preferences • Mode • PRIMARY, PRIMARY_PREFERRED • SECONDARY, SECONDARY_PREFERRED • NEAREST • Tag Sets • Uses Replica Set tags • Passed Tag is used to find matching members Sunday, 21 October 12
  • 23. 2.4 Roadmap Must • Kerberos integration • LDAP/AD integration Nice To Have • Hash Shard Key • Background Index Build on Secondaries • V8 for Map/Reduce (replaces Spider Monkey) • Geo: intersecting polygons, Geo shard key • Agg: $out, more functions, speed improvements Sunday, 21 October 12
  • 24. And beyond • Full Text Search • Collection / Extent level locking • Field level security • Audit Sunday, 21 October 12
  • 25. Future of NoSQL? Sunday, 21 October 12
  • 26. Future of the Data Center • Hardware • More Cores • More Memory • More IOPs (SSD) • More Capacity • More bandwidth (100GbE) • "Auto Pilot" • Zero human intervention Sunday, 21 October 12
  • 27. Future of NoSQL? • Real Time Analytics • Can't wait for a batch process / ETL / DW • Ad-Hoc / Analytics • Map/Reduce = Hammer • Greater Scale • 100s -> 1,000s of nodes • Deeper history • Petabytes -> Exabytes • Heterogeneous deployment • Seamless integration with what you have Sunday, 21 October 12