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