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
