SlideShare ist ein Scribd-Unternehmen logo
1 von 16
vs.

Aaron Stannard
 Nuri Halperin
What are we talking about today?

OVERVIEW
What do RavenDB and MongoDB do that are similar?

WHAT’S IN COMMON?
Fundamentals

                                No Schema



                                No Impedance Mismatch


{ "Address" : "123 Anywhere
St.", "City" : "Springfield",   Expose Data as JSON
"PostalCode" : 99999 }
Queries
                                     Documents Stored as
                                     Collections



                                     Indexing for Deep Properties


Map(k1,v1) → list(k2,v2)
Reduce(k2, list (v2)) → list(v3)     MapReduce Support
Scaling & Replication

        Sharding Support




        Replication Support



         Full Backup Support
What do RavenDB and MongoDB do differently?

THE SHOWDOWN
Fundamentals
RavenDB                     MongoDB

          Built with C#               Built with C++




          Data saved as               Data saved as
          JSON                        BSON


          Uses Lucene.NET             Uses B-Trees for
          for indexing                indexing

                                      Uses Memory-
          Uses Esent for
                                      mapped files for
          Storage
                                      storage
Writing to a Database
RavenDB                       MongoDB

          Batch transaction             Single row
          support                       transactions*



          Optimistic                    No concurrency
          concurrency                   management



                                        Granular write &
          ACID                          safety control
Reading from a Database
RavenDB                          MongoDB

            Cross-collection               No cross-collection
            query support                  queries



            Server-side DbRef              Client-side DbRef
            Resolution*                    Resolution


            No ad-hoc queries              Supports ad-hoc
            on subsets                     queries on subsets

            Supports full-text             No support for full-text
            queries                        queries
Indexes
RavenDB                         MongoDB

          Supports static                 Supports
          indexes                         static indexes



          Supports ad-hoc                 No ad-hoc index
          indexes                         support


          Multi-map                       No multi-map
          indexes                         indexes

          Indexing performed              Indexing is configurable
          in background                   to background or
                                          foreground
MapReduce
RavenDB                       MongoDB

          M/R done as                   M/R done as
          indexes                       queries




                                        Supports
          No M/R pipeline
                                        incremental M/R



          M/R is calculated             M/R is calculated
          in background                 in real time
Replication and Scaling
RavenDB                           MongoDB
           Master-Slave                     Master-Slave
           Replication                      Replication




           Master-Master                    No Master-Master
           Replication                      Replication



           Manual & Auto                    Manual & Auto
           Sharding                         Sharding

           Mix and Match
           Replication / Shards             Replica sets
Ecosystem
RavenDB                        MongoDB

          Limited driver                 Rich driver ecosystem
          ecosystem




          Little                         Lots of documentation
          documentation                  and examples
          and examples


          Depends on                     Can run
          Windows                        anywhere

          OSS and Commercial
                                          Free / OSS License
          Licenses ($$)
Extras
RavenDB                       MongoDB
‱ Supports Triggers           ‱ No Trigger Support
‱ Multi-tenant                ‱ Multi-tenant
‱ Supports OAuth / Basic      ‱ Supports Basic Auth
  Auth / Anonymous*
‱ REST API                    ‱ BSON over TCP
Further Reading
‱ http://ravendb.net
‱ http://mongodb.org
‱ https://www.10gen.com/events/mongdb-san-
  diego (July 25th)

Weitere Àhnliche Inhalte

Andere mochten auch

Startup Product Development
Startup Product DevelopmentStartup Product Development
Startup Product DevelopmentAaron Stannard
 
Single Page Apps in Sitecore
Single Page Apps in SitecoreSingle Page Apps in Sitecore
Single Page Apps in Sitecoresheidt818
 
Best of scrum and lean startup for product development
Best of scrum and lean startup for product developmentBest of scrum and lean startup for product development
Best of scrum and lean startup for product developmentIndia Scrum Enthusiasts Community
 
RavenDB embedded at massive scales
RavenDB embedded at massive scalesRavenDB embedded at massive scales
RavenDB embedded at massive scalesOren Eini
 
Concurrency Control in MongoDB 3.0
Concurrency Control in MongoDB 3.0Concurrency Control in MongoDB 3.0
Concurrency Control in MongoDB 3.0MongoDB
 
Startup Development Fundamentals - Startcelerate workshop
Startup Development Fundamentals - Startcelerate workshopStartup Development Fundamentals - Startcelerate workshop
Startup Development Fundamentals - Startcelerate workshopTHIS IS NOT A STORM
 
Product Development for startup
Product Development for startupProduct Development for startup
Product Development for startupAslam Hirani
 
Agile Tour 2016 Pune - Innovation vs iteration by Kanchan Tandel
Agile Tour 2016 Pune - Innovation vs iteration by Kanchan TandelAgile Tour 2016 Pune - Innovation vs iteration by Kanchan Tandel
Agile Tour 2016 Pune - Innovation vs iteration by Kanchan TandelIndia Scrum Enthusiasts Community
 
New product development and product life-cycle strategies
New product development and product life-cycle strategiesNew product development and product life-cycle strategies
New product development and product life-cycle strategiesBabasab Patil
 
What the Spark!? Intro and Use Cases
What the Spark!? Intro and Use CasesWhat the Spark!? Intro and Use Cases
What the Spark!? Intro and Use CasesAerospike, Inc.
 
CouchApps: Requiem for Accidental Complexity
CouchApps: Requiem for Accidental ComplexityCouchApps: Requiem for Accidental Complexity
CouchApps: Requiem for Accidental ComplexityFederico Galassi
 
CouchDB Vs MongoDB
CouchDB Vs MongoDBCouchDB Vs MongoDB
CouchDB Vs MongoDBGabriele Lana
 
Understanding differences in startup financing stages
Understanding differences in startup financing stagesUnderstanding differences in startup financing stages
Understanding differences in startup financing stagesStartupxplore
 
New Product Development
New Product DevelopmentNew Product Development
New Product DevelopmentVishal Thakur
 
New product development strategy of samsung
New product development strategy of samsungNew product development strategy of samsung
New product development strategy of samsunghiteshkrohra
 
New Product Development
New Product DevelopmentNew Product Development
New Product Developments junaid
 
Design Sprints for Innovation
Design Sprints for InnovationDesign Sprints for Innovation
Design Sprints for InnovationDave Hogue
 
Creative Thinking Skills
Creative Thinking SkillsCreative Thinking Skills
Creative Thinking SkillsYodhia Antariksa
 
New product development and life cycle strategies
New product development and life cycle strategiesNew product development and life cycle strategies
New product development and life cycle strategiesFrancis Clark Adriano
 

Andere mochten auch (20)

Startup Product Development
Startup Product DevelopmentStartup Product Development
Startup Product Development
 
Single Page Apps in Sitecore
Single Page Apps in SitecoreSingle Page Apps in Sitecore
Single Page Apps in Sitecore
 
Best of scrum and lean startup for product development
Best of scrum and lean startup for product developmentBest of scrum and lean startup for product development
Best of scrum and lean startup for product development
 
RavenDB embedded at massive scales
RavenDB embedded at massive scalesRavenDB embedded at massive scales
RavenDB embedded at massive scales
 
Concurrency Control in MongoDB 3.0
Concurrency Control in MongoDB 3.0Concurrency Control in MongoDB 3.0
Concurrency Control in MongoDB 3.0
 
Startup Development Fundamentals - Startcelerate workshop
Startup Development Fundamentals - Startcelerate workshopStartup Development Fundamentals - Startcelerate workshop
Startup Development Fundamentals - Startcelerate workshop
 
Product Development for startup
Product Development for startupProduct Development for startup
Product Development for startup
 
Agile Tour 2016 Pune - Innovation vs iteration by Kanchan Tandel
Agile Tour 2016 Pune - Innovation vs iteration by Kanchan TandelAgile Tour 2016 Pune - Innovation vs iteration by Kanchan Tandel
Agile Tour 2016 Pune - Innovation vs iteration by Kanchan Tandel
 
New product development and product life-cycle strategies
New product development and product life-cycle strategiesNew product development and product life-cycle strategies
New product development and product life-cycle strategies
 
What the Spark!? Intro and Use Cases
What the Spark!? Intro and Use CasesWhat the Spark!? Intro and Use Cases
What the Spark!? Intro and Use Cases
 
Mongo DB
Mongo DBMongo DB
Mongo DB
 
CouchApps: Requiem for Accidental Complexity
CouchApps: Requiem for Accidental ComplexityCouchApps: Requiem for Accidental Complexity
CouchApps: Requiem for Accidental Complexity
 
CouchDB Vs MongoDB
CouchDB Vs MongoDBCouchDB Vs MongoDB
CouchDB Vs MongoDB
 
Understanding differences in startup financing stages
Understanding differences in startup financing stagesUnderstanding differences in startup financing stages
Understanding differences in startup financing stages
 
New Product Development
New Product DevelopmentNew Product Development
New Product Development
 
New product development strategy of samsung
New product development strategy of samsungNew product development strategy of samsung
New product development strategy of samsung
 
New Product Development
New Product DevelopmentNew Product Development
New Product Development
 
Design Sprints for Innovation
Design Sprints for InnovationDesign Sprints for Innovation
Design Sprints for Innovation
 
Creative Thinking Skills
Creative Thinking SkillsCreative Thinking Skills
Creative Thinking Skills
 
New product development and life cycle strategies
New product development and life cycle strategiesNew product development and life cycle strategies
New product development and life cycle strategies
 

Ähnlich wie NoSQL Shootout: RavenDB vs MongoDB

Mongodb
MongodbMongodb
Mongodbfoliba
 
Scalany mongodb aug10
Scalany mongodb aug10Scalany mongodb aug10
Scalany mongodb aug10bwmcadams
 
Invitation to mongo db @ Rakuten TechTalk
Invitation to mongo db @ Rakuten TechTalkInvitation to mongo db @ Rakuten TechTalk
Invitation to mongo db @ Rakuten TechTalkRyuji Tamagawa
 
ElephantDB
ElephantDBElephantDB
ElephantDBnathanmarz
 
No sql solutions - êł”ê°œìš©
No sql solutions - êł”ê°œìš©No sql solutions - êł”ê°œìš©
No sql solutions - êł”ê°œìš©Byeongweon Moon
 
Q con london2011-matthewwall-whyichosemongodbforguardiancouk
Q con london2011-matthewwall-whyichosemongodbforguardiancoukQ con london2011-matthewwall-whyichosemongodbforguardiancouk
Q con london2011-matthewwall-whyichosemongodbforguardiancoukRoger Xia
 
2011 05-12 nosql-progressive.net
2011 05-12 nosql-progressive.net2011 05-12 nosql-progressive.net
2011 05-12 nosql-progressive.netMĂ„rten Gustafson
 
NoSQL Technology
NoSQL TechnologyNoSQL Technology
NoSQL TechnologyFachry Bafadal
 
Intro to RavenDB
Intro to RavenDBIntro to RavenDB
Intro to RavenDBAlonso Robles
 
What’s new in Visual Studio 2012 & .NET 4.5
What’s new in Visual Studio 2012 & .NET 4.5What’s new in Visual Studio 2012 & .NET 4.5
What’s new in Visual Studio 2012 & .NET 4.5Robert MacLean
 
OrientDB the graph database
OrientDB the graph databaseOrientDB the graph database
OrientDB the graph databaseartem_orobets
 
OrientDB the graph database
OrientDB the graph databaseOrientDB the graph database
OrientDB the graph databaseArtem Orobets
 
Thoughts on Transaction and Consistency Models
Thoughts on Transaction and Consistency ModelsThoughts on Transaction and Consistency Models
Thoughts on Transaction and Consistency Modelsiammutex
 
Spring one2gx2010 spring-nonrelational_data
Spring one2gx2010 spring-nonrelational_dataSpring one2gx2010 spring-nonrelational_data
Spring one2gx2010 spring-nonrelational_dataRoger Xia
 
No Sql Introduction
No Sql IntroductionNo Sql Introduction
No Sql IntroductionDingding Ye
 
Silicon Valley Code Camp: 2011 Introduction to MongoDB
Silicon Valley Code Camp: 2011 Introduction to MongoDBSilicon Valley Code Camp: 2011 Introduction to MongoDB
Silicon Valley Code Camp: 2011 Introduction to MongoDBManish Pandit
 
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
 
MapReduce and NoSQL
MapReduce and NoSQLMapReduce and NoSQL
MapReduce and NoSQLAaron Cordova
 

Ähnlich wie NoSQL Shootout: RavenDB vs MongoDB (20)

Mongodb
MongodbMongodb
Mongodb
 
Scalany mongodb aug10
Scalany mongodb aug10Scalany mongodb aug10
Scalany mongodb aug10
 
Invitation to mongo db @ Rakuten TechTalk
Invitation to mongo db @ Rakuten TechTalkInvitation to mongo db @ Rakuten TechTalk
Invitation to mongo db @ Rakuten TechTalk
 
ElephantDB
ElephantDBElephantDB
ElephantDB
 
No sql solutions - êł”ê°œìš©
No sql solutions - êł”ê°œìš©No sql solutions - êł”ê°œìš©
No sql solutions - êł”ê°œìš©
 
Q con london2011-matthewwall-whyichosemongodbforguardiancouk
Q con london2011-matthewwall-whyichosemongodbforguardiancoukQ con london2011-matthewwall-whyichosemongodbforguardiancouk
Q con london2011-matthewwall-whyichosemongodbforguardiancouk
 
2011 05-12 nosql-progressive.net
2011 05-12 nosql-progressive.net2011 05-12 nosql-progressive.net
2011 05-12 nosql-progressive.net
 
NoSQL Technology
NoSQL TechnologyNoSQL Technology
NoSQL Technology
 
MongoDB Devops Madrid February 2012
MongoDB Devops Madrid February 2012MongoDB Devops Madrid February 2012
MongoDB Devops Madrid February 2012
 
Intro to RavenDB
Intro to RavenDBIntro to RavenDB
Intro to RavenDB
 
What’s new in Visual Studio 2012 & .NET 4.5
What’s new in Visual Studio 2012 & .NET 4.5What’s new in Visual Studio 2012 & .NET 4.5
What’s new in Visual Studio 2012 & .NET 4.5
 
OrientDB the graph database
OrientDB the graph databaseOrientDB the graph database
OrientDB the graph database
 
OrientDB the graph database
OrientDB the graph databaseOrientDB the graph database
OrientDB the graph database
 
Thoughts on Transaction and Consistency Models
Thoughts on Transaction and Consistency ModelsThoughts on Transaction and Consistency Models
Thoughts on Transaction and Consistency Models
 
Spring one2gx2010 spring-nonrelational_data
Spring one2gx2010 spring-nonrelational_dataSpring one2gx2010 spring-nonrelational_data
Spring one2gx2010 spring-nonrelational_data
 
No Sql Introduction
No Sql IntroductionNo Sql Introduction
No Sql Introduction
 
Silicon Valley Code Camp: 2011 Introduction to MongoDB
Silicon Valley Code Camp: 2011 Introduction to MongoDBSilicon Valley Code Camp: 2011 Introduction to MongoDB
Silicon Valley Code Camp: 2011 Introduction to MongoDB
 
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)
 
Drop acid
Drop acidDrop acid
Drop acid
 
MapReduce and NoSQL
MapReduce and NoSQLMapReduce and NoSQL
MapReduce and NoSQL
 

Mehr von Aaron Stannard

How Software Developers Destroy Business Value.pptx
How Software Developers Destroy Business Value.pptxHow Software Developers Destroy Business Value.pptx
How Software Developers Destroy Business Value.pptxAaron Stannard
 
The Coming OSS Sustainability Crisis
The Coming OSS Sustainability CrisisThe Coming OSS Sustainability Crisis
The Coming OSS Sustainability CrisisAaron Stannard
 
Building Web Apps with Express
Building Web Apps with ExpressBuilding Web Apps with Express
Building Web Apps with ExpressAaron Stannard
 
Location Services and Bing Maps in Windows Phone 7
Location Services and Bing Maps in Windows Phone 7Location Services and Bing Maps in Windows Phone 7
Location Services and Bing Maps in Windows Phone 7Aaron Stannard
 
Consuming REST in .NET
Consuming REST in .NETConsuming REST in .NET
Consuming REST in .NETAaron Stannard
 
How to Design Applications People Love
How to Design Applications People LoveHow to Design Applications People Love
How to Design Applications People LoveAaron Stannard
 

Mehr von Aaron Stannard (8)

How Software Developers Destroy Business Value.pptx
How Software Developers Destroy Business Value.pptxHow Software Developers Destroy Business Value.pptx
How Software Developers Destroy Business Value.pptx
 
The Coming OSS Sustainability Crisis
The Coming OSS Sustainability CrisisThe Coming OSS Sustainability Crisis
The Coming OSS Sustainability Crisis
 
Building Web Apps with Express
Building Web Apps with ExpressBuilding Web Apps with Express
Building Web Apps with Express
 
Intro to Node
Intro to NodeIntro to Node
Intro to Node
 
Location Services and Bing Maps in Windows Phone 7
Location Services and Bing Maps in Windows Phone 7Location Services and Bing Maps in Windows Phone 7
Location Services and Bing Maps in Windows Phone 7
 
Consuming REST in .NET
Consuming REST in .NETConsuming REST in .NET
Consuming REST in .NET
 
MVVM for n00bs
MVVM for n00bsMVVM for n00bs
MVVM for n00bs
 
How to Design Applications People Love
How to Design Applications People LoveHow to Design Applications People Love
How to Design Applications People Love
 

KĂŒrzlich hochgeladen

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
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...Neo4j
 
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 DevelopmentsTrustArc
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel AraĂșjo
 
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
 
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?Igalia
 
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
 
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
 
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 Processorsdebabhi2
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vĂĄzquez
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
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
 
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 CVKhem
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 

KĂŒrzlich hochgeladen (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
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...
 
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
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
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
 
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?
 
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...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
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
 
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
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
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
 
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
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

NoSQL Shootout: RavenDB vs MongoDB

  • 2. What are we talking about today? OVERVIEW
  • 3. What do RavenDB and MongoDB do that are similar? WHAT’S IN COMMON?
  • 4. Fundamentals No Schema No Impedance Mismatch { "Address" : "123 Anywhere St.", "City" : "Springfield", Expose Data as JSON "PostalCode" : 99999 }
  • 5. Queries Documents Stored as Collections Indexing for Deep Properties Map(k1,v1) → list(k2,v2) Reduce(k2, list (v2)) → list(v3) MapReduce Support
  • 6. Scaling & Replication Sharding Support Replication Support Full Backup Support
  • 7. What do RavenDB and MongoDB do differently? THE SHOWDOWN
  • 8. Fundamentals RavenDB MongoDB Built with C# Built with C++ Data saved as Data saved as JSON BSON Uses Lucene.NET Uses B-Trees for for indexing indexing Uses Memory- Uses Esent for mapped files for Storage storage
  • 9. Writing to a Database RavenDB MongoDB Batch transaction Single row support transactions* Optimistic No concurrency concurrency management Granular write & ACID safety control
  • 10. Reading from a Database RavenDB MongoDB Cross-collection No cross-collection query support queries Server-side DbRef Client-side DbRef Resolution* Resolution No ad-hoc queries Supports ad-hoc on subsets queries on subsets Supports full-text No support for full-text queries queries
  • 11. Indexes RavenDB MongoDB Supports static Supports indexes static indexes Supports ad-hoc No ad-hoc index indexes support Multi-map No multi-map indexes indexes Indexing performed Indexing is configurable in background to background or foreground
  • 12. MapReduce RavenDB MongoDB M/R done as M/R done as indexes queries Supports No M/R pipeline incremental M/R M/R is calculated M/R is calculated in background in real time
  • 13. Replication and Scaling RavenDB MongoDB Master-Slave Master-Slave Replication Replication Master-Master No Master-Master Replication Replication Manual & Auto Manual & Auto Sharding Sharding Mix and Match Replication / Shards Replica sets
  • 14. Ecosystem RavenDB MongoDB Limited driver Rich driver ecosystem ecosystem Little Lots of documentation documentation and examples and examples Depends on Can run Windows anywhere OSS and Commercial Free / OSS License Licenses ($$)
  • 15. Extras RavenDB MongoDB ‱ Supports Triggers ‱ No Trigger Support ‱ Multi-tenant ‱ Multi-tenant ‱ Supports OAuth / Basic ‱ Supports Basic Auth Auth / Anonymous* ‱ REST API ‱ BSON over TCP
  • 16. Further Reading ‱ http://ravendb.net ‱ http://mongodb.org ‱ https://www.10gen.com/events/mongdb-san- diego (July 25th)

Hinweis der Redaktion

  1. Both MongoDB and RavenDB support the modern toolsets we expect from production database technologies, like support for sharding, replication, and for producing stand-alone static backup images at any time.
  2. AndersHejdlsberg and Bjorn Soustroup (invetors of C# and C++ respectively)Jayson Werth (baseball players for the Phillies) and Wyoming Bison scratching itself against a rockLucene vs. B-tree for indexingEsentvs Memory mapped files for storage engine
  3. RavenDB supports transaction scope for batch insert operations, whereas transactions (i.e. operations which are atomic and can be rolled back) are only applicable at the single item level for MongoDB. However, it is worth noting that Mongo does support batch writes even though they cannot be wrapped inside transaction scope.In terms of concurrency management, MongoDB has none whereas RavenDB implements a form of optimistic concurrency – so before a record is written to the system will check to see if that document has been modified by another transaction beforehand, and if that’s the case the transaction simply rolls back. There are no locks when this happens so the underyling database doesn’t do any lock escalation or row / table locking.In terms of write safety, RavenDB is fully ACID compliant – every write is committed to disk before the operation returns true to the client. In MongoDB, write safety is more granular – by default writes are not safe; they’re written to an in-memory buffer first and MongoDB tells the client that everything is fine even though the data is not committed to disk. Eventually Mongo will write the data to disk in the background asynchronously. You have the ability to configure this in Mongo though, so you can make writes in MongoDB commit to disk before returning “true” to the client.
  4. Buffet, representing cross-collection query support – and a fat guy eating a gargantuan cheeseburger representing single-collection-only queriesIn RavenDB cross-collection queries are done in a couple of different ways – MultiMap indexes are one, transform indexes are another where collections can be cross-referenced on the server.MakerBotvsIkeaIn Raven, you can have the server render whatever type of data object or view that you want as long as it’s derived from one or more of the indexes or collections inside of RavenDB, so this means that you can have it use transforms to take cross-collection references and resolve them server side.In Mongo, you’re stuck with the Ikea model of “some assembly required” – any relationships between documents in different collections have to be resolved through the calling client application. The 10gen folks have called this an “application join.”Some random book and album coversRavenDB does not support ad-hoc queries on subsets of fields, meaning when you ask “give me back just these parts of documents that match this criteria in collection A” you still get the entire document back on the client and not just the fields you requested. Mongo does have the ability to run these types of queries and return back only a subset of fields you requested.Lastly, full-text indexing. Due to the fact that RavenDB is built on top of Lucene.NET (a powerful indexing agent) it has the ability to run full-text search right out of the box. MongoDB does not support full-text indexing or queries currently.
  5. Both MongoDB and RavenDB support static indexes, which include indexes on deep properties and covered indexes.Interestingly, RavenDB supports the notion of a dynamic index created on-the-fly during production operations – these indexes are temporary and are not as powerful for flexible as static indexes, but they do make it so if your client application misses creating an index for an important set of operations that Raven will still find a way to provide it with the speed and timeliness of queries covered by static indexes.Raven also supports the notion of a multi-map index, where documents from multiple different collections are reduced down into a common subset – this is really useful for building search indexes that need to cover multiple types of documents (like blog posts, comments, and tags.) MongoDB does not support multi-map indexes.Lastly, in terms of how indexing is performed – this is always a background operation in RavenDB so technically you can end up with “stale indexes” in the course of consuming indexed data from a client. There are ways to wait for a non-stale index, but these are typically not used in production applications. In MongoDB indexing behavior is configurable – it can either be a blocking foreground operation (and is done at the same time as a document insert) or it can run in the background like RavenDB.
  6. InRavenDB, MapReduce is defined as an index and is precalculated in the background, whereas in MongoDBMapReduce is run as a query against the existing dataset in real time. One of the advantages of Mongo’s model is that it can support a MapReduce pipeline, where multiple MapReduce operations may need to be performed before the final result we’re interested in can be delivered. As far as I know, this isn’t typically feasible in RavenDB without a lot of Linq magic or making inline calls to load data from other MapReduceindicies.
  7. Boring chart showing master-slave replicationMaster-Slave replication is handy in environments where you need some read-only and both MongoDB and RavenDB support it.Phil Mickelson winning the masters (again) vs. Sad Tiger Woods - Should be noted that Tiger actually has 4 master wins over Phil Mickelson’s 3, but hasn’t won the masters since 2005.Master-Master replication is not supported in mostNoSQL databases but it is supported in RavenDB – the scenario where it’s handy is when you have all of your databases running under a load-balancer and don’t want to expose the network topography to the client. In Master-Master you essentially have mirrored databases that are both writeable at any given time.The most popular form of replication in the NoSQL universe is sharding, where the contents of the database are partitioned into phyiscally separate databases spread across different servers, the idea being to help balance the load for large collections across multiple machines. Both Raven and Mongo support user-defined sharding strategies or automatic sharding where the Database Management System decides what the most balanced approach for the shards are in the cluster.Lastly, in terms of how you replicate shards RavenDB allows you to mix and match replication with sharding, but this is done somewhat manually. Mongo has a more elegant solution known as the replica set, where shards are replicated across the set of servers that are running, so if at any given time one server goes down the replica set can re-balance and not lose any data.
  8. RavenDB loses to Mongo big time on ecosystem.It has a very limited set of drivers compared to Mongo, it has fewer documentation and examples, and it only runs on Windows. Couple that with the fact that it costs $500 per server to run in a commercial application and it has a much less appeal ecosystem than Mongo, where its adoption is much more widespread and it has a more favorable cost model for small companies.That being said, the RavenDB team often make exceptions for early stage startups, students, and non-profits in terms of licensing costs – and it’s free to start developing with RavenDB. You only need to pay for a license once you deploy your commercial application to market.
  9. Anonymous authenticationis granular