SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
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
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
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
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
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
 
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
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 

Kürzlich hochgeladen (20)

Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
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
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
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
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
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
 
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
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 

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