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 / |
Strong Node / |
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.
UPDATE [1]: Corrected replication
UPDATE [2]: You may also want to take a look at my book - RavenDB High Performance