NoSQL? Not yet.

Have been doing research on NoSQL db’s. Installed CouchDB, MongoDB, Riak, etc. Here are some comparisons from all the reading I’ve done. Not everything has a reference, most are things I gleaned from various postings as well as personal experience.

The crappy chart below is exported from Google Docs.

DB Comparison

MongoDB CouchDB Riak MckoiDDB Cassandra


Insert Speed (Bulk Insert) Very fast(3.5M docs is 20-30min) Very Slow1500 documents/sec [1] Unknown ?

Select Speed Fast http overhead fast ?

Datasize <400G ok <2.5G ok Backend related ?

Language C Erlang Erlang Java Java


BIGINT broken, use as string Slow/Unoptimised `Enterprise’ backend not OSS/Free. Almost no info/resources available Beta/AlphaStill in incubator status

DB repair may take hours due to copy/recopy of all data files. Must create ‘views’ to use. Views may take hours to generate on a lot of data. See thoughts below on ETS & DETS. Where are the community pages, groups, etc?

No master<->master replication not officially supported. REST Only Pretty much only a Java API

Needs a stack to run


Fast+Native Driver Automatically distributed, eventually consistant Highly distributed Low latency queries

At least 4x faster then Mysql. Support multi-master defacto. Pluggable backend

Can fall-back to REST



















An Erlang bridge from Riak to a MongoDB would be nice and would take care of the master<->master issue.


I have not seen performance numbers for Riak.. and in fact.. the info I googled was mysteriously missing from Basho’s site.


Post a comment or leave a trackback: Trackback URL.


  • Rune  On January 25, 2010 at 2:52 pm

    CouchDB insert speed is much higher than 1500. Youre cited source reaches 6k, and I’ have seen 7k/s on my laptop without problems (bulk size 1k)

    MongoDB’s 3.5M inserts in 20-30min = 2333/s is certainly not very fast.

    • Alex  On January 25, 2010 at 6:02 pm

      The first source:

      Doing the math on #1 yields ~753.97/s
      on #2 ~2638.89/s

      Definitely nowhere near the 6k/7k.

      3.5M in 20 to 30 = ~2916.67/s – ~1944.44/s
      These numbers are pretty old already. The BIGINT issue I mention above no longer applies; I’ve filed bug reports and they have been fixed it. Also, one important thing, Mongo bulk insert is via a separate app while mongo is down. It can also act as a client to mongodb (similar to the way the mysql client works). Doing a bulk insert this way was miserable performance.

      At the same time, I’m sure CouchDB has improved considerably. My main issue though, is the db size limitations of CouchDB. A 2.5GB db size is a joke these days.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: