SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

NoSQL Database in .NET Apps
NoSQL Database in .NET AppsNoSQL Database in .NET Apps
NoSQL Database in .NET AppsShiju Varghese
 
The Characteristics of a Successful SPA
The Characteristics of a Successful SPAThe Characteristics of a Successful SPA
The Characteristics of a Successful SPAGil Fink
 
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, RightScalemmoline
 
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 StanoSencha
 
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 NOSQLMichael Kennedy
 
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 2016Sunny Sharma
 
Entity Framework for Cross platform apps
Entity Framework for Cross platform appsEntity Framework for Cross platform apps
Entity Framework for Cross platform appsSwaminathan Vetri
 
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 JDBCSimba Technologies
 
RavenDB embedded at massive scales
RavenDB embedded at massive scalesRavenDB embedded at massive scales
RavenDB embedded at massive scalesOren Eini
 
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 DatabasesKyle Banerjee
 
Technology Stack Discussion
Technology Stack DiscussionTechnology Stack Discussion
Technology Stack DiscussionZaiyang Li
 
Simple cloud reference architecture
Simple cloud reference architectureSimple cloud reference architecture
Simple cloud reference architectureDaeMyung Kang
 
Php training in bhubaneswar
Php training in bhubaneswar Php training in bhubaneswar
Php training in bhubaneswar litbbsr
 
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? #lessqlEzra Zygmuntowicz
 
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 MVCKamar Oyenuga
 
Web programming
Web programmingWeb programming
Web programmingIshucs
 
PHP, LAMP Stack & WordPress
PHP, LAMP Stack & WordPressPHP, LAMP Stack & WordPress
PHP, LAMP Stack & WordPressSuman Srinivasan
 

What's hot (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
 

Similar to Drop acid

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)Chris Richardson
 
MongoDB Internals
MongoDB InternalsMongoDB Internals
MongoDB InternalsSiraj Memon
 
Compare DynamoDB vs. MongoDB
Compare DynamoDB vs. MongoDBCompare DynamoDB vs. MongoDB
Compare DynamoDB vs. MongoDBAmar Das
 
Dynamo vs Mongo
Dynamo vs MongoDynamo vs Mongo
Dynamo vs MongoAmar Das
 
MongoDB 2.4 and spring data
MongoDB 2.4 and spring dataMongoDB 2.4 and spring data
MongoDB 2.4 and spring dataJimmy Ray
 
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 2014clairvoyantllc
 
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 2014Avinash Ramineni
 
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 divelucenerevolution
 
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 WebBogdan Gaza
 
Dissecting Scalable Database Architectures
Dissecting Scalable Database ArchitecturesDissecting Scalable Database Architectures
Dissecting Scalable Database Architectureshypertable
 
Nosql databases for the .net developer
Nosql databases for the .net developerNosql databases for the .net developer
Nosql databases for the .net developerJesus Rodriguez
 
Object Relational Database Management System
Object Relational Database Management SystemObject Relational Database Management System
Object Relational Database Management SystemAmar Myana
 

Similar to 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
 

More from Mike Feltman

Feltman collections
Feltman collectionsFeltman collections
Feltman collectionsMike Feltman
 
Java script for foxpro developers
Java script for foxpro developersJava script for foxpro developers
Java script for foxpro developersMike Feltman
 
N tier web applications
N tier web applicationsN tier web applications
N tier web applicationsMike Feltman
 
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 8Mike Feltman
 
Html for desktop applications
Html for desktop applicationsHtml for desktop applications
Html for desktop applicationsMike Feltman
 
Html and visual fox pro
Html and visual fox proHtml and visual fox pro
Html and visual fox proMike Feltman
 
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 9Mike Feltman
 
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 9Mike Feltman
 
Introduction to afp
Introduction to afpIntroduction to afp
Introduction to afpMike Feltman
 
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 2007Mike Feltman
 
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 todayMike Feltman
 

More from 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
 

Recently uploaded

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
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 WorkerThousandEyes
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 

Recently uploaded (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
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
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 

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