views:

158

answers:

2

I need to implement a massive databse with a relatively simple structure. That is few tables, no complex dependencies, etc. How would I begin to choose between say Cassandra and CouchDB?

+2  A: 

Well it really comes down to how you want your data to be stored and how you access it. It also depends on how you want to shard your data and if you want failover/replication.

CouchDB is really good as a document database and has a nice RESTful interface to access everything. It is a multiversion store so updating a record creates a new version everytime it is stored.

Searching CouchDB is done by writing a query in JavaScript to search for what you want.

Cassandra on the other hand is a column database and needs you to use the Thrift API to insert/update and delete the data. It is very good in that it has a caching layer that is disk backed.

Like I said, work out how you want to use your data then start looking at all the different things.

AutomatedTester
you dont have to use the "raw" thrift api. http://wiki.apache.org/cassandra/ClientOptions
Schildmeijer
You can use others languages than JavaScript for writing mapreduce functions (for searching) in Couchdb, for example PHP and Erlang.
TTT
Schildmeijer: really? So I can use fauna/cassandra without installing thrift?
jpartogi
+3  A: 

Cassandra's advantages are scalability and performance; Couch's is best-in-class support for bi-directional sync between devices/machines which may be taken offline (e.g. Android).

jbellis