SlideShare une entreprise Scribd logo
1  sur  29
NoSQL - Death to Relational
        Databases
        Mike Feltman
       F1 Technologies
Agenda
• The NoSQL Movement
• MongoDB Discussion & Demo
• Discussion
The NoSQL Movement
No SQL Databases:
  Non-relational
  Less ACID
  More BASE
  CAP Trading
  Highly Scalable
  Highly Performant
NoSQL = Not Only SQL
Less ACID
• Atomic
  • basically means supports transactions
• Consistent
  • Has hard constraints & rejects non-conforming data
• Isolated
  • No peaking at incomplete commits
• Durable
  • Once a commit is finished, it lasts forever.
More BASE
• Basically Available
• Soft-state
• Eventually consistent
CAP Trading
• Consistency (client perceives set of operations
  completed)
• Availability (operations terminate with an
  expected result)
• Partition tolerance (operations will complete,
  even if a required resource is unavailable)
• Only 2 are possible in distributed systems.
  – Eric Brewer
The NoSQL Movement
Why:
• SQL is tedious and difficult
• Strongly typed schemas are inflexible and
  painful to maintain
• Inadequate performance of RDBMS on huge
  data stores
• Poor Scalability of RDBMS
• Poor Replication Support
Types of NoSQL Databases
•   Document Stores
•   Graph
•   Key/Value Store
•   Object Database
•   Tabular
Major Players
• Mongodb (10gen)        •   Dynamo (Amazon)
• CouchDB (Apache)       •   MObStor (Yahoo)
• Cassandra (Apache –    •   Haystack (Facebook)
  formerly Facebook)     •   Voldemort (LinkedIn)
• BigTable – (Google)    •   HBase/Hadoop (Apache
• Berkeley DB (Oracle)       & Microsoft)
MongoDB
     Combining the best features of
     document databases, key-value
         stores, and RDBMSes.
•   Scalable
•   High-Performance
•   Open Source
•   Schema-free
•   Document Oriented
MongoDB Features
• Document-oriented        • Replication
  storage (BSON)           • Auto-sharding
• Dynamic Queries          • MapReduce
• Full index support       • Driver support for many
  (including embedded        languages
  objects & arrays)        • Cross-Platform
• Fast, in-place updates   • Admin Tools
• Efficient Blob storage
Document Oriented Storage
                                  { firstName: “Nicklas”,
• Data is stored in BSON          lastName: “Lidstrom”,
   – Binary-encoded               team: “Red Wings”,
     serialization of JSON-like   stanleyCups : [1997, 1998,
     documents.                   2002, 2008],
   – Lightweight, traversable     norrisTrophies : [2001,
     & efficient                  2002, 2003, 2006, 2007,
   – Supports embedded            2008] }
     objects & arrays
   – Document = Record
Dynamic Queries
• No indexes required to   Examples
  find data.               • All records:
• RDBMSes all support      db.players.find({})
  this as well.            • All Red Wings
                           db.players.find({“team”:
                             “Red Wings”})
Index Support
• B-Tree format
• Default index on PK
• Supports unique, compound, document
  indexes (indexes on nested documents) and
  multikeys indexes (allows indexing of arrays of
  values)
Fast in-place updates
• Updates are made to existing documents
  within a collection.
• Many “NoSQL” databases (such as CouchDB)
  do not support updates and instead store
  versions of records.
Efficient Blob Storage
• Blob = Binary Large Object
• Up to 4MB within document
• GridFS specification is followed for larger
  items and external files
Replication
• Enhanced master-slave configuration
  – one server active for writes at a time.
  – Provides failover and redundancy
  – Implemented with Replica Pairs
     • When master fails slave takes over
     • When slave fails control reverts to master
• Limited Master-master
Auto-Sharding
• Sharding:
  – Breaking database down into “shards” and
    spreading those across distributed/commodity
    servers.
  – highly scalable approach for increased throughput
    and performance of high-transaction, large
    database applications.
  – MongoDB manages data storage and retrieval
    behind the scenes.
MapReduce
                                  • Useful for batch
• Term comes from Google.           operations
   – Patented framework for       • Aggregation: NoSQL
     processing huge datasets       answer to GROUP BY
     on certain kinds of
     distributable problems
     using a large number of
     servers.
   – MongoDB applies it to
     single server instances as
     well.
Drivers
•   .NET (C#)        • Perl
•   JavaScript       • JVM
•   Python             – Clojure
•   PHP                – Groovy
                       – Scala
•   Ruby
•   Java
•   C++
Cross-Platform
• 32 bit & 64 bit versions available for:
  – Windows
  – OS X
  – Linux
  – Solaris
Admin Tools
• Command Shell
• Simple limited REST (http) Interface
• Mongostat
• Mongosniff (Unix only – use tcpdump on
  Windows)
• Backup & Restore
MongoDB Terminology
Traditional RDBMS   MongoDB
• Database          • Database
• Table             • Collection
• Record            • Document
• Field             • Key
Demo!
• Start the server (if it’s not running).
   C:mongodbbinmongod
• Start the shell
   C:mongodbbinmongo
The MongoDB Shell
Database Commands
• Open Database     • use (database name)
• Create Database   • use (database name)
How it works
• Focused on documents
    – Document = sequence of key value pairs in bson
        • Value can be another document
        • Additional types vs. JSON. ie dates, regexp
• Messages (cpassed over TCP/IP) in BSON drivers convert code to BSON
• Memory mapped storage engine (MMSE) – all disk access takes place
  through MMSE
• Query Optimizer:
    – Find( {x:10, y:”foo”})
    – Launches multiple simultaneous queries based on indexes & table scan. Stops
      when one finishes, remembers which one was the fastest for future similar
      queries. Can use hint option to specify which index to use.
Why?
•   Applications where schema gets in the way
•   Performance
•   Scalability
•   RAD
•   More natural fit with OO Languages
Resources
• www.mongodb.org

Contenu connexe

Tendances

NoSQL Database in .NET Apps
NoSQL Database in .NET AppsNoSQL Database in .NET Apps
NoSQL Database in .NET Apps
Shiju Varghese
 
Moving to the Cloud: AWS, Zend, RightScale
Moving to the Cloud: AWS, Zend, RightScaleMoving to the Cloud: AWS, Zend, RightScale
Moving to the Cloud: AWS, Zend, RightScale
mmoline
 
Technology Stack Discussion
Technology Stack DiscussionTechnology Stack Discussion
Technology Stack Discussion
Zaiyang Li
 
Simple cloud reference architecture
Simple cloud reference architectureSimple cloud reference architecture
Simple cloud reference architecture
DaeMyung Kang
 
Php training in bhubaneswar
Php training in bhubaneswar Php training in bhubaneswar
Php training in bhubaneswar
litbbsr
 
End to End Software Application Development using ASP.NET MVC
End to End Software Application Development using ASP.NET MVCEnd to End Software Application Development using ASP.NET MVC
End to End Software Application Development using ASP.NET MVC
Kamar Oyenuga
 

Tendances (18)

NoSQL Database in .NET Apps
NoSQL Database in .NET AppsNoSQL Database in .NET Apps
NoSQL Database in .NET Apps
 
The Characteristics of a Successful SPA
The Characteristics of a Successful SPAThe Characteristics of a Successful SPA
The Characteristics of a Successful SPA
 
Moving to the Cloud: AWS, Zend, RightScale
Moving to the Cloud: AWS, Zend, RightScaleMoving to the Cloud: AWS, Zend, RightScale
Moving to the Cloud: AWS, Zend, RightScale
 
Enterprise messaging
Enterprise messagingEnterprise messaging
Enterprise messaging
 
Building Ext JS Using HATEOAS - Jeff Stano
Building Ext JS Using HATEOAS - Jeff StanoBuilding Ext JS Using HATEOAS - Jeff Stano
Building Ext JS Using HATEOAS - Jeff Stano
 
BUILDING WEB APPS WITH ASP.NET MVC AND NOSQL
BUILDING WEB APPS WITH ASP.NET MVC AND NOSQLBUILDING WEB APPS WITH ASP.NET MVC AND NOSQL
BUILDING WEB APPS WITH ASP.NET MVC AND NOSQL
 
Microsoft Azure DocumentDB - Global Azure Bootcamp 2016
Microsoft Azure DocumentDB -  Global Azure Bootcamp 2016Microsoft Azure DocumentDB -  Global Azure Bootcamp 2016
Microsoft Azure DocumentDB - Global Azure Bootcamp 2016
 
Entity Framework for Cross platform apps
Entity Framework for Cross platform appsEntity Framework for Cross platform apps
Entity Framework for Cross platform apps
 
Enterprise Reporting: Couchbase N1QL, ODBC and JDBC
Enterprise Reporting: Couchbase N1QL, ODBC and JDBCEnterprise Reporting: Couchbase N1QL, ODBC and JDBC
Enterprise Reporting: Couchbase N1QL, ODBC and JDBC
 
RavenDB embedded at massive scales
RavenDB embedded at massive scalesRavenDB embedded at massive scales
RavenDB embedded at massive scales
 
Dropping ACID: Wrapping Your Mind Around NoSQL Databases
Dropping ACID: Wrapping Your Mind Around NoSQL DatabasesDropping ACID: Wrapping Your Mind Around NoSQL Databases
Dropping ACID: Wrapping Your Mind Around NoSQL Databases
 
Technology Stack Discussion
Technology Stack DiscussionTechnology Stack Discussion
Technology Stack Discussion
 
Simple cloud reference architecture
Simple cloud reference architectureSimple cloud reference architecture
Simple cloud reference architecture
 
Php training in bhubaneswar
Php training in bhubaneswar Php training in bhubaneswar
Php training in bhubaneswar
 
Where do I put this data? #lessql
Where do I put this data? #lessqlWhere do I put this data? #lessql
Where do I put this data? #lessql
 
End to End Software Application Development using ASP.NET MVC
End to End Software Application Development using ASP.NET MVCEnd to End Software Application Development using ASP.NET MVC
End to End Software Application Development using ASP.NET MVC
 
Web programming
Web programmingWeb programming
Web programming
 
PHP, LAMP Stack & WordPress
PHP, LAMP Stack & WordPressPHP, LAMP Stack & WordPress
PHP, LAMP Stack & WordPress
 

Similaire à Drop acid

Nosql databases for the .net developer
Nosql databases for the .net developerNosql databases for the .net developer
Nosql databases for the .net developer
Jesus Rodriguez
 

Similaire à Drop acid (20)

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)
 
Wmware NoSQL
Wmware NoSQLWmware NoSQL
Wmware NoSQL
 
MongoDB Internals
MongoDB InternalsMongoDB Internals
MongoDB Internals
 
Compare DynamoDB vs. MongoDB
Compare DynamoDB vs. MongoDBCompare DynamoDB vs. MongoDB
Compare DynamoDB vs. MongoDB
 
Dynamo vs Mongo
Dynamo vs MongoDynamo vs Mongo
Dynamo vs Mongo
 
MongoDB 2.4 and spring data
MongoDB 2.4 and spring dataMongoDB 2.4 and spring data
MongoDB 2.4 and spring data
 
NoSQL and MongoDB
NoSQL and MongoDBNoSQL and MongoDB
NoSQL and MongoDB
 
KeyValue Stores
KeyValue StoresKeyValue Stores
KeyValue Stores
 
MongoDB Replication fundamentals - Desert Code Camp - October 2014
MongoDB Replication fundamentals - Desert Code Camp - October 2014MongoDB Replication fundamentals - Desert Code Camp - October 2014
MongoDB Replication fundamentals - Desert Code Camp - October 2014
 
MongoDB Replication fundamentals - Desert Code Camp - October 2014
MongoDB Replication fundamentals - Desert Code Camp - October 2014MongoDB Replication fundamentals - Desert Code Camp - October 2014
MongoDB Replication fundamentals - Desert Code Camp - October 2014
 
Solr cloud the 'search first' nosql database extended deep dive
Solr cloud the 'search first' nosql database   extended deep diveSolr cloud the 'search first' nosql database   extended deep dive
Solr cloud the 'search first' nosql database extended deep dive
 
NoSQL in the context of Social Web
NoSQL in the context of Social WebNoSQL in the context of Social Web
NoSQL in the context of Social Web
 
MongoDB
MongoDBMongoDB
MongoDB
 
No sq lv1_0
No sq lv1_0No sq lv1_0
No sq lv1_0
 
MongoDB
MongoDBMongoDB
MongoDB
 
MongoDB SF Ruby
MongoDB SF RubyMongoDB SF Ruby
MongoDB SF Ruby
 
Dissecting Scalable Database Architectures
Dissecting Scalable Database ArchitecturesDissecting Scalable Database Architectures
Dissecting Scalable Database Architectures
 
Nosql databases for the .net developer
Nosql databases for the .net developerNosql databases for the .net developer
Nosql databases for the .net developer
 
Object Relational Database Management System
Object Relational Database Management SystemObject Relational Database Management System
Object Relational Database Management System
 
Big data stores
Big data  storesBig data  stores
Big data stores
 

Plus de Mike Feltman (14)

Feltman collections
Feltman collectionsFeltman collections
Feltman collections
 
Feltman js4 vfp
Feltman js4 vfpFeltman js4 vfp
Feltman js4 vfp
 
Java script for foxpro developers
Java script for foxpro developersJava script for foxpro developers
Java script for foxpro developers
 
N tier web applications
N tier web applicationsN tier web applications
N tier web applications
 
What’s new in x case 8
What’s new in x case 8What’s new in x case 8
What’s new in x case 8
 
Web 101
Web 101Web 101
Web 101
 
VFP & Ajax
VFP & AjaxVFP & Ajax
VFP & Ajax
 
Html for desktop applications
Html for desktop applicationsHtml for desktop applications
Html for desktop applications
 
Html and visual fox pro
Html and visual fox proHtml and visual fox pro
Html and visual fox pro
 
Error handling in visual fox pro 9
Error handling in visual fox pro 9Error handling in visual fox pro 9
Error handling in visual fox pro 9
 
Docking from a z in visual fox pro 9
Docking from a z in visual fox pro 9Docking from a z in visual fox pro 9
Docking from a z in visual fox pro 9
 
Introduction to afp
Introduction to afpIntroduction to afp
Introduction to afp
 
Where do you want to go today 2007
Where do you want to go today   2007Where do you want to go today   2007
Where do you want to go today 2007
 
Where do you want to go today
Where do you want to go todayWhere do you want to go today
Where do you want to go today
 

Dernier

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Dernier (20)

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...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
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...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
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
 
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
 
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?
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Drop acid

  • 1. NoSQL - Death to Relational Databases Mike Feltman F1 Technologies
  • 2. Agenda • The NoSQL Movement • MongoDB Discussion & Demo • Discussion
  • 3. The NoSQL Movement No SQL Databases: Non-relational Less ACID More BASE CAP Trading Highly Scalable Highly Performant NoSQL = Not Only SQL
  • 4. Less ACID • Atomic • basically means supports transactions • Consistent • Has hard constraints & rejects non-conforming data • Isolated • No peaking at incomplete commits • Durable • Once a commit is finished, it lasts forever.
  • 5. More BASE • Basically Available • Soft-state • Eventually consistent
  • 6. CAP Trading • Consistency (client perceives set of operations completed) • Availability (operations terminate with an expected result) • Partition tolerance (operations will complete, even if a required resource is unavailable) • Only 2 are possible in distributed systems. – Eric Brewer
  • 7. The NoSQL Movement Why: • SQL is tedious and difficult • Strongly typed schemas are inflexible and painful to maintain • Inadequate performance of RDBMS on huge data stores • Poor Scalability of RDBMS • Poor Replication Support
  • 8. Types of NoSQL Databases • Document Stores • Graph • Key/Value Store • Object Database • Tabular
  • 9. Major Players • Mongodb (10gen) • Dynamo (Amazon) • CouchDB (Apache) • MObStor (Yahoo) • Cassandra (Apache – • Haystack (Facebook) formerly Facebook) • Voldemort (LinkedIn) • BigTable – (Google) • HBase/Hadoop (Apache • Berkeley DB (Oracle) & Microsoft)
  • 10. MongoDB Combining the best features of document databases, key-value stores, and RDBMSes. • Scalable • High-Performance • Open Source • Schema-free • Document Oriented
  • 11. MongoDB Features • Document-oriented • Replication storage (BSON) • Auto-sharding • Dynamic Queries • MapReduce • Full index support • Driver support for many (including embedded languages objects & arrays) • Cross-Platform • Fast, in-place updates • Admin Tools • Efficient Blob storage
  • 12. Document Oriented Storage { firstName: “Nicklas”, • Data is stored in BSON lastName: “Lidstrom”, – Binary-encoded team: “Red Wings”, serialization of JSON-like stanleyCups : [1997, 1998, documents. 2002, 2008], – Lightweight, traversable norrisTrophies : [2001, & efficient 2002, 2003, 2006, 2007, – Supports embedded 2008] } objects & arrays – Document = Record
  • 13. Dynamic Queries • No indexes required to Examples find data. • All records: • RDBMSes all support db.players.find({}) this as well. • All Red Wings db.players.find({“team”: “Red Wings”})
  • 14. Index Support • B-Tree format • Default index on PK • Supports unique, compound, document indexes (indexes on nested documents) and multikeys indexes (allows indexing of arrays of values)
  • 15. Fast in-place updates • Updates are made to existing documents within a collection. • Many “NoSQL” databases (such as CouchDB) do not support updates and instead store versions of records.
  • 16. Efficient Blob Storage • Blob = Binary Large Object • Up to 4MB within document • GridFS specification is followed for larger items and external files
  • 17. Replication • Enhanced master-slave configuration – one server active for writes at a time. – Provides failover and redundancy – Implemented with Replica Pairs • When master fails slave takes over • When slave fails control reverts to master • Limited Master-master
  • 18. Auto-Sharding • Sharding: – Breaking database down into “shards” and spreading those across distributed/commodity servers. – highly scalable approach for increased throughput and performance of high-transaction, large database applications. – MongoDB manages data storage and retrieval behind the scenes.
  • 19. MapReduce • Useful for batch • Term comes from Google. operations – Patented framework for • Aggregation: NoSQL processing huge datasets answer to GROUP BY on certain kinds of distributable problems using a large number of servers. – MongoDB applies it to single server instances as well.
  • 20. Drivers • .NET (C#) • Perl • JavaScript • JVM • Python – Clojure • PHP – Groovy – Scala • Ruby • Java • C++
  • 21. Cross-Platform • 32 bit & 64 bit versions available for: – Windows – OS X – Linux – Solaris
  • 22. Admin Tools • Command Shell • Simple limited REST (http) Interface • Mongostat • Mongosniff (Unix only – use tcpdump on Windows) • Backup & Restore
  • 23. MongoDB Terminology Traditional RDBMS MongoDB • Database • Database • Table • Collection • Record • Document • Field • Key
  • 24. Demo! • Start the server (if it’s not running). C:mongodbbinmongod • Start the shell C:mongodbbinmongo
  • 26. Database Commands • Open Database • use (database name) • Create Database • use (database name)
  • 27. How it works • Focused on documents – Document = sequence of key value pairs in bson • Value can be another document • Additional types vs. JSON. ie dates, regexp • Messages (cpassed over TCP/IP) in BSON drivers convert code to BSON • Memory mapped storage engine (MMSE) – all disk access takes place through MMSE • Query Optimizer: – Find( {x:10, y:”foo”}) – Launches multiple simultaneous queries based on indexes & table scan. Stops when one finishes, remembers which one was the fastest for future similar queries. Can use hint option to specify which index to use.
  • 28. Why? • Applications where schema gets in the way • Performance • Scalability • RAD • More natural fit with OO Languages