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

Url http://www.mongodb.org http://couchdb.apache.org http://riak.basho.com http://www.mckoi.com http://incubator.apache.org/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

Negatives

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

Positives

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

.

Refences

.

.

http://journal.uggedal.com

.

http://www.atypical.net/archive/2009/05/12/couchdb-090-bulk-document-post-performance

.

http://johnpwood.net/2009/06/30/couchdb-databases-and-documents/

.

http://userprimary.net/user/2007/12/16/a-quick-look-at-couchdb-performance/

.

http://groups.google.com/group/mongodb-user

.

http://groups.google.com/group/mongodb-user/browse_thread/thread/e50dc69c33c11fd4

.

http://groups.google.com/group/mongodb-user/browse_thread/thread/fe05de77d93905f4

.

http://www.reddit.com/r/programming/comments/7f7m9/why_couchdb_sucks/

.

http://blog.boxedice.com/2009/07/25/choosing-a-non-relational-database-why-we-migrated-from-mysql-to-mongodb/

.

http://community.basho.com/Basho_Riak_EnterpriseDS_Fact_Sheet.pdf

.

http://swik.net/scalability+Database

.

.

Thoughts

.

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.

.

ETS & DETS SUCK
Advertisements
Post a comment or leave a trackback: Trackback URL.

Comments

  • 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: http://www.atypical.net/archive/2009/05/12/couchdb-090-bulk-document-post-performance

      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:

WordPress.com Logo

You are commenting using your WordPress.com 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: