+ All Categories
Home > Technology > NoSQL Shootout: RavenDB vs MongoDB

NoSQL Shootout: RavenDB vs MongoDB

Date post: 27-Jan-2015
Category:
Upload: aaron-stannard
View: 132 times
Download: 1 times
Share this document with a friend
Description:
A SoCal CodeCamp talk about two NoSQL databases, the crowd favorite MongoDB and the up-and-comer RavenDB. Which one is better at what?This talk really just offers a pair and contrast view of both database systems and tries to speak to the strengths and weaknesses of each. It's a 300-level talk and is not meant for people who are totally unfamiliar with NoSQL and document database systems.
Popular Tags:
16
vs. Aaron Stannard Nuri Halperin
Transcript
Page 1: NoSQL Shootout: RavenDB vs MongoDB

vs.

Aaron StannardNuri Halperin

Page 2: NoSQL Shootout: RavenDB vs MongoDB

OVERVIEWWhat are we talking about today?

Page 3: NoSQL Shootout: RavenDB vs MongoDB

WHAT’S IN COMMON?What do RavenDB and MongoDB do that are similar?

Page 4: NoSQL Shootout: RavenDB vs MongoDB

Fundamentals

No Schema

No Impedance Mismatch

{ "Address" : "123 Anywhere St.", "City" : "Springfield", "PostalCode" : 99999 }

Expose Data as JSON

Page 5: NoSQL Shootout: RavenDB vs MongoDB

Queries

Map(k1,v1) → list(k2,v2)Reduce(k2, list (v2)) → list(v3)

Indexing for Deep Properties

Documents Stored as Collections

MapReduce Support

Page 6: NoSQL Shootout: RavenDB vs MongoDB

Scaling & Replication

Sharding Support

Replication Support

Full Backup Support

Page 7: NoSQL Shootout: RavenDB vs MongoDB

THE SHOWDOWNWhat do RavenDB and MongoDB do differently?

Page 8: NoSQL Shootout: RavenDB vs MongoDB

Fundamentals

RavenDB MongoDB

Built with C# Built with C++

Data saved as JSON

Data saved as BSON

Uses Lucene.NET for indexing

Uses B-Trees for indexing

Uses Esent for Storage

Uses Memory-mapped files for storage

Page 9: NoSQL Shootout: RavenDB vs MongoDB

Writing to a Database

RavenDB MongoDB

Batch transaction support

Single row transactions*

Optimistic concurrency

No concurrency management

ACID

Granular write & safety control

Page 10: NoSQL Shootout: RavenDB vs MongoDB

Reading from a Database

RavenDB MongoDB

Cross-collection query support

No cross-collection queries

Server-side DbRef Resolution*

Client-side DbRef Resolution

No ad-hoc queries on subsets

Supports ad-hoc queries on subsets

Supports full-text queries

No support for full-text queries

Page 11: NoSQL Shootout: RavenDB vs MongoDB

Indexes

RavenDB MongoDB

Supports static indexes

Supports static indexes

Supports ad-hoc indexes

No ad-hoc index support

Multi-map indexes

No multi-map indexes

Indexing performed in background

Indexing is configurable to background or foreground

Page 12: NoSQL Shootout: RavenDB vs MongoDB

MapReduce

RavenDB MongoDB

M/R done as indexes

M/R done as queries

No M/R pipeline Supports incremental M/R

M/R is calculated in real time

M/R is calculated in background

Page 13: NoSQL Shootout: RavenDB vs MongoDB

Replication and Scaling

RavenDB MongoDB

Master-Slave Replication

Master-Master Replication

No Master-Master Replication

Manual & Auto Sharding

Manual & Auto Sharding

Mix and Match Replication / Shards Replica sets

Master-Slave Replication

Page 14: NoSQL Shootout: RavenDB vs MongoDB

Ecosystem

RavenDB MongoDB

Limited driver ecosystem

Rich driver ecosystem

Little documentation and examples

Lots of documentation and examples

Depends on Windows

Can run anywhere

OSS and Commercial Licenses ($$) Free / OSS License

Page 15: NoSQL Shootout: RavenDB vs MongoDB

Extras

RavenDB• Supports Triggers• Multi-tenant• Supports OAuth / Basic

Auth / Anonymous*• REST API

MongoDB• No Trigger Support• Multi-tenant • Supports Basic Auth

• BSON over TCP

Page 16: NoSQL Shootout: RavenDB vs MongoDB

Further Reading

• http://ravendb.net • http://mongodb.org • https://www.10gen.com/events/mongdb-san-

diego (July 25th)


Recommended