SlideShare uma empresa Scribd logo
1 de 47
Baixar para ler offline
MongoDB Technical Overview
Sandeep Parikh
Solutions Architect, 10gen
Agenda
Relational Databases
MongoDB Features
MongoDB Functionality
Scaling and Deployment
Aggregates, Statistics, Analytics
Advanced Topics
About 10gen
•  Background
   –  Founded in 2007
   –  First release of MongoDB in 2009
   –  74M+ in funding

•  MongoDB
   –  Core server
   –  Native drivers

•  Subscriptions, Consulting, Training
•  Monitoring
Relational Databases
Category
                  ·Name
                  ·URL



                          Article           Tag
       User       ·Name
 ·Name            ·Slug             ·Name
 ·Email address   ·Publish date     ·URL
                  ·Text



                     Comment
                  ·Comment
                  ·Date
                  ·Author




Relational Databases
RDBMS Strengths
•  Data stored is very compact
•  Rigid schemas have led to powerful query
 capabilities
•  Data is optimized for joins and storage
•  Robust ecosystem of tools, libraries, integratons
•  40+ years old!
Enter “Big Data”
•  Gartner defines it with 3Vs

•  Volume
   –  Vast amounts of data being collected

•  Variety
   –  Evolving data
   –  Uncontrolled formats, no single schema
   –  Unknown at design time

•  Velocity
   –  Inbound data speed
   –  Fast read/write operations
   –  Low latency
Mapping Big Data to RDBMS
•  Difficult to store uncontrolled data formats
•  Scaling via big iron or custom data marts/
 partitioning schemes
•  Schema must be known at design time
•  Impedance mismatch with agile development and
 deployment techniques
•  Doesn’t map well to native language constructs
MongoDB Features
Goals
•  Scale horizontally over commodity systems
•  Incorporate what works for RDBMSs
   –  Rich data models, ad-hoc queries, full indexes

•  Drop what doesn’t work well
   –  Multi-row transactions, complex joins

•  Do not homogenize APIs
•  Match agile development and deployment
 workflows
Key Features
•  Data stored as documents (JSON)
   –  Flexible-schema

•  Full CRUD support (Create, Read, Update, Delete)
   –  Atomic in-place updates
   –  Ad-hoc queries: Equality, RegEx, Ranges, Geospatial

•  Secondary indexes
•  Replication – redundancy, failover
•  Sharding – partitioning for read/write scalability
{name: “will”,           name: “jeff”,   {name: “brendan”,
   eyes: “blue”,           eyes: “blue”,    aliases: [“el diablo”]}
   birthplace: “NY”,       height: 72,
   aliases: [“bill”, “la   boss: “ben”}
  ciacco”],                                {name: “matt”,
   gender: ”???”,                           pizza: “DiGiorno”,
   boss: ”ben”}            name: “ben”,     height: 72,
                           hat: ”yes”}      boss: 555.555.1212}




Document Oriented, Dynamic Schema
Seek = 5+ ms             Read = really really fast




                Article

                               Comment
 User




Disk seeks and data locality
Article


          User



          Comment
           Comment
            Comment
             Comment
              Comment




Disk seeks and data locality
MongoDB Security
•  SSL
   –  Between your app and MongoDB
   –  Between nodes in MongoDB cluster

•  Authorization at the database level
   –  Read Only / Read + Write / Administrator

•  Roadmap
   –  2.4: SASL, Kerberos authentication
   –  2.6: Pluggable authentication
Content    Operational    High Volume                 User Data
                                          E-Commerce
Management   Intelligence    Data Feeds                Management




Use Cases
MongoDB Functionality
Documents
> var new_article = {
    author: “roger”,
    date: new Date(),
    title: “My Favorite 2012 Movies”,
    body: “Here are my favorite movies from 2012…”
    tags: [“horror”, “action”, “independent”]
}
> db.articles.save(new_article)
Querying
> db.articles.find()
{
    _id: ObjectId(“4c4ba5c0672c685e5e8aabf3”),
    author: “roger”,
    date: ISODate("2013-01-08T22:10:19.880Z")
    title: “My Favorite 2012 Movies”,
    body: “Here are my favorite movies from 2012…”
    tags: [“horror”, “action”, “independent”]
}


// _id is unique but can be anything you like
Indexes
// create an ascending index on “author”
> db.articles.ensureIndex({author:1})


> db.articles.find({author:”roger”})
{
    _id: ObjectId(“4c4ba5c0672c685e5e8aabf3”),
    author: “roger”,
    …
}
Ad-Hoc Queries
// Query Operators:
// $all, $exists, $mod, $ne, $in, $nin, $nor, $or,
// $size, $type, $lt, $lte, $gt, $gte


// find articles with any tags
> db.articles.find({tags: {$exists: true}})


// find posts matching a regular expression
> db.articles.find( {author: /^rog*/i } )


// count posts by author
> db.articles.find( {author: ‘roger’} ).count()
Atomic Updates
// Update Modifiers
// $set, $unset, $inc, $push, $pushAll, $pull,
// $pullAll, $bit


> comment = {
    author: “fred”,
    date: new Date(),
    text: “Best list ever!”
}
> db.articles.update({ _id: “...” }, {
    $push: {comments: comment}
});
Nested Documents
{
    _id: ObjectId("4c4ba5c0672c685e5e8aabf3"),
    author: "roger",
    date: ISODate("2013-01-08T22:10:19.880Z"),
    title: “My Favorite 2012 Movies”,
    body: “Here are my favorite movies from 2012…”
    tags: [“horror”, “action”, “independent”]
    comments : [
        { author: "Fred",
         date: ISODate("2013-01-08T23:44:15.458Z"),
         text: "Best list ever!” }
    ]
}
Secondary Indexes
// Index nested documents
> db.articles.ensureIndex({“comments.author”:1})
> db.articles.find({“comments.author”:’Fred’})


// Index on tags
> db.articles.ensureIndex({tags: 1})
> db.articles.find({tags: ’Manga’})


// Geospatial indexes
> db.articles.ensureIndex({location: “2d”})
> db.posts.find({location: {$near: [22,42]}})
Scaling MongoDB
Scaling MongoDB
•  Replica Sets
   –  Redundancy, failover, read scalability

•  Sharding
   –  Auto-partitions data, read/write scalability

•  Multi-datacenter deployments
•  Tunable consistency
•  Engineering for zero downtime
Client Application
                       Driver




                   Write




                                Read
                      Primary



       Secondary                       Secondary



Replica Sets
Node 1                          Node 2
       Secondary                      Secondary
                       Heartbeat

           Re




                                         n
                                      tio
              p
             lic




                                     ica
                ati




                                      pl
                  on




                                   Re
                       Node 3
                        Primary




Replica Set – Initialize
Primary Election
      Node 1                         Node 2
      Secondary      Heartbeat       Secondary




                     Node 3




Replica Set – Failure
Replication
      Node 1                    Node 2
      Secondary                 Primary
                  Heartbeat




                  Node 3




Replica Set – Failover
Replication
      Node 1                      Node 2
      Secondary                    Primary
                  Heartbeat




                                       n
                                   tio
                                  ica
                                   pl
                                Re
                  Node 3
                  Recovery




Replica Set – Recovery
Replication
      Node 1                      Node 2
      Secondary                    Primary
                  Heartbeat




                                       n
                                   tio
                                  ica
                                   pl
                                Re
                  Node 3
                  Secondary




Replica Set – Recovered
Client Application
                    Driver




                        Write
          d




                                    Re
           a
        Re




                                       a
                    Primary




                                     d
       Secondary                Secondary



Scaling Reads
App Server   App Server   App Server




                   Mongos       Mongos       Mongos
       Config
      Node 1
       Server
      Secondary


       Config
      Node 1
       Server
      Secondary


      Config
      Node 1
       Server
      Secondary


                   Shard        Shard        Shard




Sharding
Data stored in shard
•  Shard is a node of the
                    Shard         Shard
 cluster
                                   Primary

•  For production   Mongod
                             or
                                  Secondary
 deployments a shard is a
                                  Secondary
 replica set
Config server stores meta data
•  Config Server                          Config
                                        Node 1
    –  Stores cluster chunk              Server
                                        Secondary


       ranges and locations
                        Config
                       Node 1            Config
                                        Node 1
    –  Production deployments
                        Server
                       Secondary
                                   or    Server
                                        Secondary

       need 3 nodes                      Config
                                        Node 1
    –  Two phase commit (not             Server
                                        Secondary

       a replica set)
Mongos manages the data
•  Mongos
    –  Acts as a router / balancer
    –  No local data (persists to config database)
    –  Can have 1 or many


      App Server   App Server         App Server   App Server


                                or
        Mongos      Mongos                    Mongos
App Server   App Server   App Server




                   Mongos       Mongos       Mongos
       Config
      Node 1
       Server
      Secondary


       Config
      Node 1
       Server
      Secondary


      Config
      Node 1
       Server
      Secondary


                   Shard        Shard        Shard




Sharding
Aggregates, Statistics, Analytics
Analyzing Data in MongoDB
•  Custom application code
   –  Run your queries, compute your results

•  Aggregation framework
   –  Declarative, pipeline-based approach

•  Native Map/Reduce in MongoDB
   –  Javascript functions distributed across cluster

•  Hadoop
   –  Offline batch processing/computation
Aggregation Framework
// Operations: $project, $match, $limit, $skip, $unwind, $group, $sort


{                                           db.article.aggregate(
    title: “this is my title” ,              { $project: {
    author: “bob” ,                                author: 1,

    posted: new Date () ,                          tags: 1,

    tags: [“fun”, “good”, “fun”],            }},
    comments: [                              { $unwind: "$tags" },

     { author:“joe”,                         { $group: {

         text: “this is cool” },                   _id: “$tags”,
     { author:“sam” ,                              authors: {

         text: “this is bad” }                         $addToSet : "$author"

    ],                                             }
    other: { foo : 5 }                       }}
}                                           );
Mapping SQL to Aggregation
SQL	
  statement	
               MongoDB	
  command	
  
SELECT	
  COUNT(*)	
  FROM	
   db.users.aggregate([	
  
users	
                        	
  	
  {	
  $group:	
  {_id:null,	
  count:	
  {$sum:1}}	
  }	
  
                               ])	
  

SELECT	
  SUM(price)	
           db.users.aggregate([	
  
FROM	
  orders	
                 	
  	
  {	
  $group:	
  {_id:null,	
  total:	
  {$sum:”$price”}}	
  }	
  
                                 ])	
  
SELECT	
  cust_id,	
             db.users.aggregate([	
  
SUM(PRICE)	
  from	
             	
  	
  {	
  $group:	
  {_id:”$cust_id”,	
  total:{$sum:”$price”}}	
  }	
  
orders	
  GROUP	
  BY	
          ])	
  
cust_id	
  
SELECT	
  cust_id,	
             db.users.aggregate([	
  
SUM(price)	
  FROM	
             	
  	
  {	
  $match:	
  {active:true}	
  },	
  
orders	
  WHERE	
                	
  	
  {	
  $group:	
  {_id:”$cust_id”,	
  total:{$sum:”$price”}}	
  }	
  
active=true	
  GROUP	
  BY	
     ])	
  
cust_id	
  
Native Map/Reduce
•  More complex aggregation tasks
•  Map and Reduce functions written in JS
•  Can be distributed across sharded cluster for
 increased parallelism
Map/Reduce Functions
var map = function() {
 emit(this.author, {votes: this.votes});
};


var reduce = function(key, values) {
 var sum = 0;
 values.forEach(function(doc) {
     sum += doc.votes;
 });
 return {votes: sum};
};
Hadoop and MongoDB
•  MongoDB-Hadoop adapter
•  1.0 released, 1.1 in development
•  Supports Hadoop
   –  Map/Reduce, Streaming, Pig

•  MongoDB as input/output storage for Hadoop jobs
   –  No need to go through HDFS

•  Leverage power of Hadoop ecosystem against
 operational data in MongoDB
MongoDB Resources
•  Presentations, Webinars
   –  www.10gen.com/presentations

•  MongoDB documentation
   –  docs.mongodb.org

•  Community
   –  groups.google.com/group/mongodb-user
   –  stackoverflow.com/questions/tagged/mongodb
Questions

Mais conteúdo relacionado

Mais procurados

Algorithmic Memory Increases Memory Performance by an Order of Magnitude
Algorithmic Memory Increases Memory Performance by an Order of MagnitudeAlgorithmic Memory Increases Memory Performance by an Order of Magnitude
Algorithmic Memory Increases Memory Performance by an Order of Magnitudechiportal
 
Lvs mini-howto
Lvs mini-howtoLvs mini-howto
Lvs mini-howtoSanjib Dey
 
Apache con 2012 taking the guesswork out of your hadoop infrastructure
Apache con 2012 taking the guesswork out of your hadoop infrastructureApache con 2012 taking the guesswork out of your hadoop infrastructure
Apache con 2012 taking the guesswork out of your hadoop infrastructureSteve Watt
 
High Performance Computing Infrastructure: Past, Present, and Future
High Performance Computing Infrastructure: Past, Present, and FutureHigh Performance Computing Infrastructure: Past, Present, and Future
High Performance Computing Infrastructure: Past, Present, and Futurekarl.barnes
 
LXF #102 - Linux Virtual Server
LXF #102 - Linux Virtual Server LXF #102 - Linux Virtual Server
LXF #102 - Linux Virtual Server guest69bec2
 
A novel web search engine model based on index query bit-level compression - PhD
A novel web search engine model based on index query bit-level compression - PhDA novel web search engine model based on index query bit-level compression - PhD
A novel web search engine model based on index query bit-level compression - PhDSaif Saab
 
An FPGA-based Scalable Simulation Accelerator for Tile Architectures @HEART2011
An FPGA-based Scalable Simulation Accelerator for Tile Architectures @HEART2011An FPGA-based Scalable Simulation Accelerator for Tile Architectures @HEART2011
An FPGA-based Scalable Simulation Accelerator for Tile Architectures @HEART2011Shinya Takamaeda-Y
 
Exchange 2010 ha ctd
Exchange 2010 ha ctdExchange 2010 ha ctd
Exchange 2010 ha ctdKaliyan S
 
Federated HDFS
Federated HDFSFederated HDFS
Federated HDFShuguk
 
The Native NDB Engine for Memcached
The Native NDB Engine for MemcachedThe Native NDB Engine for Memcached
The Native NDB Engine for MemcachedJohn David Duncan
 
Maximizing Application Performance on Cray XT6 and XE6 Supercomputers DOD-MOD...
Maximizing Application Performance on Cray XT6 and XE6 Supercomputers DOD-MOD...Maximizing Application Performance on Cray XT6 and XE6 Supercomputers DOD-MOD...
Maximizing Application Performance on Cray XT6 and XE6 Supercomputers DOD-MOD...Jeff Larkin
 
MapReduce Using Perl and Gearman
MapReduce Using Perl and GearmanMapReduce Using Perl and Gearman
MapReduce Using Perl and GearmanJamie Pitts
 
How to make DSL
How to make DSLHow to make DSL
How to make DSLYukio Goto
 
Making asterisk feel like home outside north america
Making asterisk feel like home outside north americaMaking asterisk feel like home outside north america
Making asterisk feel like home outside north americaPaloSanto Solutions
 
Protecting Plone from the Big, Bad Internet
Protecting Plone from the Big, Bad InternetProtecting Plone from the Big, Bad Internet
Protecting Plone from the Big, Bad InternetErik Rose
 
DaStor/Cassandra report for CDR solution
DaStor/Cassandra report for CDR solutionDaStor/Cassandra report for CDR solution
DaStor/Cassandra report for CDR solutionSchubert Zhang
 

Mais procurados (19)

Algorithmic Memory Increases Memory Performance by an Order of Magnitude
Algorithmic Memory Increases Memory Performance by an Order of MagnitudeAlgorithmic Memory Increases Memory Performance by an Order of Magnitude
Algorithmic Memory Increases Memory Performance by an Order of Magnitude
 
Implement Checkpointing for Android (ELCE2012)
Implement Checkpointing for Android (ELCE2012)Implement Checkpointing for Android (ELCE2012)
Implement Checkpointing for Android (ELCE2012)
 
Lvs mini-howto
Lvs mini-howtoLvs mini-howto
Lvs mini-howto
 
Apache con 2012 taking the guesswork out of your hadoop infrastructure
Apache con 2012 taking the guesswork out of your hadoop infrastructureApache con 2012 taking the guesswork out of your hadoop infrastructure
Apache con 2012 taking the guesswork out of your hadoop infrastructure
 
High Performance Computing Infrastructure: Past, Present, and Future
High Performance Computing Infrastructure: Past, Present, and FutureHigh Performance Computing Infrastructure: Past, Present, and Future
High Performance Computing Infrastructure: Past, Present, and Future
 
LXF #102 - Linux Virtual Server
LXF #102 - Linux Virtual Server LXF #102 - Linux Virtual Server
LXF #102 - Linux Virtual Server
 
A novel web search engine model based on index query bit-level compression - PhD
A novel web search engine model based on index query bit-level compression - PhDA novel web search engine model based on index query bit-level compression - PhD
A novel web search engine model based on index query bit-level compression - PhD
 
An FPGA-based Scalable Simulation Accelerator for Tile Architectures @HEART2011
An FPGA-based Scalable Simulation Accelerator for Tile Architectures @HEART2011An FPGA-based Scalable Simulation Accelerator for Tile Architectures @HEART2011
An FPGA-based Scalable Simulation Accelerator for Tile Architectures @HEART2011
 
Exchange 2010 ha ctd
Exchange 2010 ha ctdExchange 2010 ha ctd
Exchange 2010 ha ctd
 
Federated HDFS
Federated HDFSFederated HDFS
Federated HDFS
 
The Native NDB Engine for Memcached
The Native NDB Engine for MemcachedThe Native NDB Engine for Memcached
The Native NDB Engine for Memcached
 
Maximizing Application Performance on Cray XT6 and XE6 Supercomputers DOD-MOD...
Maximizing Application Performance on Cray XT6 and XE6 Supercomputers DOD-MOD...Maximizing Application Performance on Cray XT6 and XE6 Supercomputers DOD-MOD...
Maximizing Application Performance on Cray XT6 and XE6 Supercomputers DOD-MOD...
 
MapReduce Using Perl and Gearman
MapReduce Using Perl and GearmanMapReduce Using Perl and Gearman
MapReduce Using Perl and Gearman
 
淺談探索 Linux 系統設計之道
淺談探索 Linux 系統設計之道 淺談探索 Linux 系統設計之道
淺談探索 Linux 系統設計之道
 
Ad fundamentals
Ad fundamentalsAd fundamentals
Ad fundamentals
 
How to make DSL
How to make DSLHow to make DSL
How to make DSL
 
Making asterisk feel like home outside north america
Making asterisk feel like home outside north americaMaking asterisk feel like home outside north america
Making asterisk feel like home outside north america
 
Protecting Plone from the Big, Bad Internet
Protecting Plone from the Big, Bad InternetProtecting Plone from the Big, Bad Internet
Protecting Plone from the Big, Bad Internet
 
DaStor/Cassandra report for CDR solution
DaStor/Cassandra report for CDR solutionDaStor/Cassandra report for CDR solution
DaStor/Cassandra report for CDR solution
 

Destaque

Overview of MongoDB and Other Non-Relational Databases
Overview of MongoDB and Other Non-Relational DatabasesOverview of MongoDB and Other Non-Relational Databases
Overview of MongoDB and Other Non-Relational DatabasesAndrew Kandels
 
Tor the onion router
Tor  the onion routerTor  the onion router
Tor the onion routerAshly Liza
 
Data Warehousing and Data Mining
Data Warehousing and Data MiningData Warehousing and Data Mining
Data Warehousing and Data Miningidnats
 
DATA WAREHOUSING
DATA WAREHOUSINGDATA WAREHOUSING
DATA WAREHOUSINGKing Julian
 

Destaque (8)

Overview of MongoDB and Other Non-Relational Databases
Overview of MongoDB and Other Non-Relational DatabasesOverview of MongoDB and Other Non-Relational Databases
Overview of MongoDB and Other Non-Relational Databases
 
Quick overview of MongoDB
Quick overview of MongoDBQuick overview of MongoDB
Quick overview of MongoDB
 
Tor the onion router
Tor  the onion routerTor  the onion router
Tor the onion router
 
Tor Presentation
Tor PresentationTor Presentation
Tor Presentation
 
TOR NETWORK
TOR NETWORKTOR NETWORK
TOR NETWORK
 
DATA WAREHOUSING
DATA WAREHOUSINGDATA WAREHOUSING
DATA WAREHOUSING
 
Data Warehousing and Data Mining
Data Warehousing and Data MiningData Warehousing and Data Mining
Data Warehousing and Data Mining
 
DATA WAREHOUSING
DATA WAREHOUSINGDATA WAREHOUSING
DATA WAREHOUSING
 

Semelhante a Webinar: General Technical Overview of MongoDB

Webinar: Operational Best Practices
Webinar: Operational Best PracticesWebinar: Operational Best Practices
Webinar: Operational Best PracticesMongoDB
 
Cacheconcurrencyconsistency cassandra svcc
Cacheconcurrencyconsistency cassandra svccCacheconcurrencyconsistency cassandra svcc
Cacheconcurrencyconsistency cassandra svccsrisatish ambati
 
2013 london advanced-replication
2013 london advanced-replication2013 london advanced-replication
2013 london advanced-replicationMarc Schwering
 
MongoDB Best Practices in AWS
MongoDB Best Practices in AWS MongoDB Best Practices in AWS
MongoDB Best Practices in AWS Chris Harris
 
MongoDB for Time Series Data Part 3: Sharding
MongoDB for Time Series Data Part 3: ShardingMongoDB for Time Series Data Part 3: Sharding
MongoDB for Time Series Data Part 3: ShardingMongoDB
 
Webinar Back to Basics 3 - Introduzione ai Replica Set
Webinar Back to Basics 3 - Introduzione ai Replica SetWebinar Back to Basics 3 - Introduzione ai Replica Set
Webinar Back to Basics 3 - Introduzione ai Replica SetMongoDB
 
MongoDB Basic Concepts
MongoDB Basic ConceptsMongoDB Basic Concepts
MongoDB Basic ConceptsMongoDB
 
Grokking Techtalk #40: Consistency and Availability tradeoff in database cluster
Grokking Techtalk #40: Consistency and Availability tradeoff in database clusterGrokking Techtalk #40: Consistency and Availability tradeoff in database cluster
Grokking Techtalk #40: Consistency and Availability tradeoff in database clusterGrokking VN
 
HPTS talk on micro-sharding with Katta
HPTS talk on micro-sharding with KattaHPTS talk on micro-sharding with Katta
HPTS talk on micro-sharding with KattaTed Dunning
 
Thoughts on Transaction and Consistency Models
Thoughts on Transaction and Consistency ModelsThoughts on Transaction and Consistency Models
Thoughts on Transaction and Consistency Modelsiammutex
 
BADCamp 2008 DB Sync
BADCamp 2008 DB SyncBADCamp 2008 DB Sync
BADCamp 2008 DB SyncShaun Haber
 
Spring one2gx2010 spring-nonrelational_data
Spring one2gx2010 spring-nonrelational_dataSpring one2gx2010 spring-nonrelational_data
Spring one2gx2010 spring-nonrelational_dataRoger Xia
 
Facebook's HBase Backups - StampedeCon 2012
Facebook's HBase Backups - StampedeCon 2012Facebook's HBase Backups - StampedeCon 2012
Facebook's HBase Backups - StampedeCon 2012StampedeCon
 

Semelhante a Webinar: General Technical Overview of MongoDB (20)

Webinar: Operational Best Practices
Webinar: Operational Best PracticesWebinar: Operational Best Practices
Webinar: Operational Best Practices
 
Cacheconcurrencyconsistency cassandra svcc
Cacheconcurrencyconsistency cassandra svccCacheconcurrencyconsistency cassandra svcc
Cacheconcurrencyconsistency cassandra svcc
 
Hadoop Inside
Hadoop InsideHadoop Inside
Hadoop Inside
 
2013 london advanced-replication
2013 london advanced-replication2013 london advanced-replication
2013 london advanced-replication
 
Understanding hdfs
Understanding hdfsUnderstanding hdfs
Understanding hdfs
 
MongoDB Best Practices in AWS
MongoDB Best Practices in AWS MongoDB Best Practices in AWS
MongoDB Best Practices in AWS
 
Mongo db roma replication and sharding
Mongo db roma replication and shardingMongo db roma replication and sharding
Mongo db roma replication and sharding
 
MongoDB for Time Series Data Part 3: Sharding
MongoDB for Time Series Data Part 3: ShardingMongoDB for Time Series Data Part 3: Sharding
MongoDB for Time Series Data Part 3: Sharding
 
Webinar Back to Basics 3 - Introduzione ai Replica Set
Webinar Back to Basics 3 - Introduzione ai Replica SetWebinar Back to Basics 3 - Introduzione ai Replica Set
Webinar Back to Basics 3 - Introduzione ai Replica Set
 
MongoDB Basic Concepts
MongoDB Basic ConceptsMongoDB Basic Concepts
MongoDB Basic Concepts
 
How MongoDB works
How MongoDB worksHow MongoDB works
How MongoDB works
 
Grokking Techtalk #40: Consistency and Availability tradeoff in database cluster
Grokking Techtalk #40: Consistency and Availability tradeoff in database clusterGrokking Techtalk #40: Consistency and Availability tradeoff in database cluster
Grokking Techtalk #40: Consistency and Availability tradeoff in database cluster
 
HPTS talk on micro-sharding with Katta
HPTS talk on micro-sharding with KattaHPTS talk on micro-sharding with Katta
HPTS talk on micro-sharding with Katta
 
Thoughts on Transaction and Consistency Models
Thoughts on Transaction and Consistency ModelsThoughts on Transaction and Consistency Models
Thoughts on Transaction and Consistency Models
 
Ns2
Ns2Ns2
Ns2
 
Low Level View of Android System Architecture
Low Level View of Android System ArchitectureLow Level View of Android System Architecture
Low Level View of Android System Architecture
 
BADCamp 2008 DB Sync
BADCamp 2008 DB SyncBADCamp 2008 DB Sync
BADCamp 2008 DB Sync
 
Spring one2gx2010 spring-nonrelational_data
Spring one2gx2010 spring-nonrelational_dataSpring one2gx2010 spring-nonrelational_data
Spring one2gx2010 spring-nonrelational_data
 
Facebook's HBase Backups - StampedeCon 2012
Facebook's HBase Backups - StampedeCon 2012Facebook's HBase Backups - StampedeCon 2012
Facebook's HBase Backups - StampedeCon 2012
 
An Hour of DB2 Tips
An Hour of DB2 TipsAn Hour of DB2 Tips
An Hour of DB2 Tips
 

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

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

Último

Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDELiveplex
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 

Último (20)

Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
20150722 - AGV
20150722 - AGV20150722 - AGV
20150722 - AGV
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 

Webinar: General Technical Overview of MongoDB

  • 1. MongoDB Technical Overview Sandeep Parikh Solutions Architect, 10gen
  • 2. Agenda Relational Databases MongoDB Features MongoDB Functionality Scaling and Deployment Aggregates, Statistics, Analytics Advanced Topics
  • 3. About 10gen •  Background –  Founded in 2007 –  First release of MongoDB in 2009 –  74M+ in funding •  MongoDB –  Core server –  Native drivers •  Subscriptions, Consulting, Training •  Monitoring
  • 5. Category ·Name ·URL Article Tag User ·Name ·Name ·Slug ·Name ·Email address ·Publish date ·URL ·Text Comment ·Comment ·Date ·Author Relational Databases
  • 6. RDBMS Strengths •  Data stored is very compact •  Rigid schemas have led to powerful query capabilities •  Data is optimized for joins and storage •  Robust ecosystem of tools, libraries, integratons •  40+ years old!
  • 7. Enter “Big Data” •  Gartner defines it with 3Vs •  Volume –  Vast amounts of data being collected •  Variety –  Evolving data –  Uncontrolled formats, no single schema –  Unknown at design time •  Velocity –  Inbound data speed –  Fast read/write operations –  Low latency
  • 8. Mapping Big Data to RDBMS •  Difficult to store uncontrolled data formats •  Scaling via big iron or custom data marts/ partitioning schemes •  Schema must be known at design time •  Impedance mismatch with agile development and deployment techniques •  Doesn’t map well to native language constructs
  • 10. Goals •  Scale horizontally over commodity systems •  Incorporate what works for RDBMSs –  Rich data models, ad-hoc queries, full indexes •  Drop what doesn’t work well –  Multi-row transactions, complex joins •  Do not homogenize APIs •  Match agile development and deployment workflows
  • 11. Key Features •  Data stored as documents (JSON) –  Flexible-schema •  Full CRUD support (Create, Read, Update, Delete) –  Atomic in-place updates –  Ad-hoc queries: Equality, RegEx, Ranges, Geospatial •  Secondary indexes •  Replication – redundancy, failover •  Sharding – partitioning for read/write scalability
  • 12. {name: “will”, name: “jeff”, {name: “brendan”, eyes: “blue”, eyes: “blue”, aliases: [“el diablo”]} birthplace: “NY”, height: 72, aliases: [“bill”, “la boss: “ben”} ciacco”], {name: “matt”, gender: ”???”, pizza: “DiGiorno”, boss: ”ben”} name: “ben”, height: 72, hat: ”yes”} boss: 555.555.1212} Document Oriented, Dynamic Schema
  • 13. Seek = 5+ ms Read = really really fast Article Comment User Disk seeks and data locality
  • 14. Article User Comment Comment Comment Comment Comment Disk seeks and data locality
  • 15. MongoDB Security •  SSL –  Between your app and MongoDB –  Between nodes in MongoDB cluster •  Authorization at the database level –  Read Only / Read + Write / Administrator •  Roadmap –  2.4: SASL, Kerberos authentication –  2.6: Pluggable authentication
  • 16. Content Operational High Volume User Data E-Commerce Management Intelligence Data Feeds Management Use Cases
  • 18. Documents > var new_article = { author: “roger”, date: new Date(), title: “My Favorite 2012 Movies”, body: “Here are my favorite movies from 2012…” tags: [“horror”, “action”, “independent”] } > db.articles.save(new_article)
  • 19. Querying > db.articles.find() { _id: ObjectId(“4c4ba5c0672c685e5e8aabf3”), author: “roger”, date: ISODate("2013-01-08T22:10:19.880Z") title: “My Favorite 2012 Movies”, body: “Here are my favorite movies from 2012…” tags: [“horror”, “action”, “independent”] } // _id is unique but can be anything you like
  • 20. Indexes // create an ascending index on “author” > db.articles.ensureIndex({author:1}) > db.articles.find({author:”roger”}) { _id: ObjectId(“4c4ba5c0672c685e5e8aabf3”), author: “roger”, … }
  • 21. Ad-Hoc Queries // Query Operators: // $all, $exists, $mod, $ne, $in, $nin, $nor, $or, // $size, $type, $lt, $lte, $gt, $gte // find articles with any tags > db.articles.find({tags: {$exists: true}}) // find posts matching a regular expression > db.articles.find( {author: /^rog*/i } ) // count posts by author > db.articles.find( {author: ‘roger’} ).count()
  • 22. Atomic Updates // Update Modifiers // $set, $unset, $inc, $push, $pushAll, $pull, // $pullAll, $bit > comment = { author: “fred”, date: new Date(), text: “Best list ever!” } > db.articles.update({ _id: “...” }, { $push: {comments: comment} });
  • 23. Nested Documents { _id: ObjectId("4c4ba5c0672c685e5e8aabf3"), author: "roger", date: ISODate("2013-01-08T22:10:19.880Z"), title: “My Favorite 2012 Movies”, body: “Here are my favorite movies from 2012…” tags: [“horror”, “action”, “independent”] comments : [ { author: "Fred", date: ISODate("2013-01-08T23:44:15.458Z"), text: "Best list ever!” } ] }
  • 24. Secondary Indexes // Index nested documents > db.articles.ensureIndex({“comments.author”:1}) > db.articles.find({“comments.author”:’Fred’}) // Index on tags > db.articles.ensureIndex({tags: 1}) > db.articles.find({tags: ’Manga’}) // Geospatial indexes > db.articles.ensureIndex({location: “2d”}) > db.posts.find({location: {$near: [22,42]}})
  • 26. Scaling MongoDB •  Replica Sets –  Redundancy, failover, read scalability •  Sharding –  Auto-partitions data, read/write scalability •  Multi-datacenter deployments •  Tunable consistency •  Engineering for zero downtime
  • 27. Client Application Driver Write Read Primary Secondary Secondary Replica Sets
  • 28. Node 1 Node 2 Secondary Secondary Heartbeat Re n tio p lic ica ati pl on Re Node 3 Primary Replica Set – Initialize
  • 29. Primary Election Node 1 Node 2 Secondary Heartbeat Secondary Node 3 Replica Set – Failure
  • 30. Replication Node 1 Node 2 Secondary Primary Heartbeat Node 3 Replica Set – Failover
  • 31. Replication Node 1 Node 2 Secondary Primary Heartbeat n tio ica pl Re Node 3 Recovery Replica Set – Recovery
  • 32. Replication Node 1 Node 2 Secondary Primary Heartbeat n tio ica pl Re Node 3 Secondary Replica Set – Recovered
  • 33. Client Application Driver Write d Re a Re a Primary d Secondary Secondary Scaling Reads
  • 34. App Server App Server App Server Mongos Mongos Mongos Config Node 1 Server Secondary Config Node 1 Server Secondary Config Node 1 Server Secondary Shard Shard Shard Sharding
  • 35. Data stored in shard •  Shard is a node of the Shard Shard cluster Primary •  For production Mongod or Secondary deployments a shard is a Secondary replica set
  • 36. Config server stores meta data •  Config Server Config Node 1 –  Stores cluster chunk Server Secondary ranges and locations Config Node 1 Config Node 1 –  Production deployments Server Secondary or Server Secondary need 3 nodes Config Node 1 –  Two phase commit (not Server Secondary a replica set)
  • 37. Mongos manages the data •  Mongos –  Acts as a router / balancer –  No local data (persists to config database) –  Can have 1 or many App Server App Server App Server App Server or Mongos Mongos Mongos
  • 38. App Server App Server App Server Mongos Mongos Mongos Config Node 1 Server Secondary Config Node 1 Server Secondary Config Node 1 Server Secondary Shard Shard Shard Sharding
  • 40. Analyzing Data in MongoDB •  Custom application code –  Run your queries, compute your results •  Aggregation framework –  Declarative, pipeline-based approach •  Native Map/Reduce in MongoDB –  Javascript functions distributed across cluster •  Hadoop –  Offline batch processing/computation
  • 41. Aggregation Framework // Operations: $project, $match, $limit, $skip, $unwind, $group, $sort { db.article.aggregate( title: “this is my title” , { $project: { author: “bob” , author: 1, posted: new Date () , tags: 1, tags: [“fun”, “good”, “fun”], }}, comments: [ { $unwind: "$tags" }, { author:“joe”, { $group: { text: “this is cool” }, _id: “$tags”, { author:“sam” , authors: { text: “this is bad” } $addToSet : "$author" ], } other: { foo : 5 } }} } );
  • 42. Mapping SQL to Aggregation SQL  statement   MongoDB  command   SELECT  COUNT(*)  FROM   db.users.aggregate([   users      {  $group:  {_id:null,  count:  {$sum:1}}  }   ])   SELECT  SUM(price)   db.users.aggregate([   FROM  orders      {  $group:  {_id:null,  total:  {$sum:”$price”}}  }   ])   SELECT  cust_id,   db.users.aggregate([   SUM(PRICE)  from      {  $group:  {_id:”$cust_id”,  total:{$sum:”$price”}}  }   orders  GROUP  BY   ])   cust_id   SELECT  cust_id,   db.users.aggregate([   SUM(price)  FROM      {  $match:  {active:true}  },   orders  WHERE      {  $group:  {_id:”$cust_id”,  total:{$sum:”$price”}}  }   active=true  GROUP  BY   ])   cust_id  
  • 43. Native Map/Reduce •  More complex aggregation tasks •  Map and Reduce functions written in JS •  Can be distributed across sharded cluster for increased parallelism
  • 44. Map/Reduce Functions var map = function() { emit(this.author, {votes: this.votes}); }; var reduce = function(key, values) { var sum = 0; values.forEach(function(doc) { sum += doc.votes; }); return {votes: sum}; };
  • 45. Hadoop and MongoDB •  MongoDB-Hadoop adapter •  1.0 released, 1.1 in development •  Supports Hadoop –  Map/Reduce, Streaming, Pig •  MongoDB as input/output storage for Hadoop jobs –  No need to go through HDFS •  Leverage power of Hadoop ecosystem against operational data in MongoDB
  • 46. MongoDB Resources •  Presentations, Webinars –  www.10gen.com/presentations •  MongoDB documentation –  docs.mongodb.org •  Community –  groups.google.com/group/mongodb-user –  stackoverflow.com/questions/tagged/mongodb

Notas do Editor

  1. Initialize -> ElectionPrimary + data replication from primary to secondary
  2. Primary down/network failureAutomatic election of new primary if majority exists
  3. New primary electedReplication established from new primary
  4. Down node comes upRejoins setsRecovery and then secondary
  5. Add arrows for or mention that there is communication between shards (migrations)
  6. Add arrows for or mention that there is communication between shards (migrations)