Brian Ritchie's Blog

My ramblings on .NET & other development topics

News



Twitter

Blog Roll

Connect with me

Document Databases Compared: MongoDB, CouchDB, and RavenDB

Hopefully my last post, An Introduction to Document Databases, piqued your interest in this new frontier for database technology.

So, how do the different document databases compare?  Let's take a look.

 

MongoDB

CouchDB

RavenDB

Documents

Format

BSON

JSON

JSON

Metadata

No

System

System + Custom

Versioning

No

Yes

Included Plug-in

Attachments

GridFS

Yes

Yes

Map/Reduce

JavaScript + others

JavaScript

LINQ

Bulk Load

Monogoimport utility

Yes

Yes

Adhoc Query

Yes

No

No

Storage

Sharding

Available in 1.6

Yes

Yes

Durability

Single Server will be available in 1.8

"crash-only" design

write ahead logging and snapshot isolation for guaranteed crash recovery via ESE

Transactions

No

No

Yes

Concurrency

Update in-place

MVCC (Multi-version Concurrency Control)

Optimistic concurrency

Consistency

Strong Master /
Eventual Slave

Strong Node /
Eventual Cluster

Eventual

Replication

Master-Slave

Peer-based

Included Plug-in

Interface

Interface Protocol

Custom protocol over TCP/IP

HTTP/REST

HTTP/REST

.NET API

3rd Party Projects

3rd Party Projects

Included

Other

Triggers

No

Update Validation

Security

Yes

Security

Basic

Basic

Basic using included plug-in

Written In

C++

Erlang

C#

 

There it is.  The most comprehensive comparison on the planet!  Of course, if you have any corrections or additions, please let me know.

UPDATED: Corrected replication

Comments

andrexx said:

Security for RavenDB now also available via plug-in. Check  in sources:

ravendb\Bundles\Raven.Bundles.Authorization\

# August 19, 2010 3:00 AM

David Arget said:

Great stuff, but a correction, CouchDBs replication is adhoc and peer based. It's one of CouchDB's most powerful features.

# August 19, 2010 11:03 AM

Tom said:

cross-platform - YES/YES/NO

open-source - YES/YES/NOT REALLY (C#/Microsoft dependencies)

you have 'replication' backwards for mongo/couch.

# August 19, 2010 2:45 PM

Mark said:

Raven supports authentication through its HTTP interface.

Tom: by your logic, there is no open-source software on Windows or OSX.

# August 20, 2010 11:56 AM

Mark said:

"piqued your interest" </pedantry>

# August 20, 2010 12:00 PM

Document Databases Compared: MongoDB, CouchDB, and RavenDB | Large Data Matters said:

Pingback from  Document Databases Compared: MongoDB, CouchDB, and RavenDB | Large Data Matters

# August 21, 2010 6:56 AM

progg.ru said:

Thank you for submitting this cool story - Trackback from progg.ru

# August 29, 2010 1:24 PM

seo melbourne said:

The sones GraphDB is the first graph database which is available on Microsoft Windows Azure. Since the sones GraphDB is written in C# and based upon Microsoft .NET it can run as an Azure Service in it’s natural environment. No Wrapping, no glue-code. It’s the performance and scalability a customer can get from a on-premise hosted solution paired with the elasticity of a cloud platform.

# October 2, 2010 12:47 AM

NoSql : MongoDB vs RavenDB « reflexionsWeb.info said:

Pingback from  NoSql : MongoDB vs RavenDB &laquo; reflexionsWeb.info

# December 13, 2010 9:47 AM

Simon Bartlett said:

RavenDB now supports adhoc querying since you posted this.

# January 6, 2011 3:48 PM

bbqchickenrobot said:

RavenDB Corrections:

Support for AdHoc querying for some time now.

I believe it can be run cross platform using the Munin (non ESE or ESENT) engine which I believe can run on mono as well.

# February 10, 2012 5:47 AM

NoSQL « ???????? ???????????? ?????????? ???????? said:

Pingback from  NoSQL &laquo;  ???????? ???????????? ?????????? ????????

# March 25, 2013 3:29 AM
Leave a Comment

(required) 

(required) 

(optional)

(required)