tags:

views:

115

answers:

2

I have been using CouchDB on some prototype applications and it has been brilliant, very easy to use and extremely quick. I was wondering if anyone has been using it in production and have any views on it's reliability, performance suitability for operational management etc ?? I am considering using it to support a service layer and would make use of its replication functionality.

Any comments/experiences would be most welcome.

A: 

CouchDB ships in Ubuntu and is a fundamental component of the Ubuntu One service.

jhs
+2  A: 

I've used CouchDB for a few small in-house applications - it's been very stable and I've had no serious complaints. Setting that aside, a few small gripes -

1) Databases can be synchronized, but not nodes. That is, if you have four servers and twenty databases, you have to specify each server, and each database to synchronize. A minor gripe, but I prefer less management to more.

2) Since databases are append only, a database with a bunch of activity gets really big really quickly. Compacting fixes this, but isn't exactly fast, especially on big (e.g. 20 gigabytes) database. Scheduling compact for the weekends solved this, but doing that is probably less of an option for high availability applications.

3) Javascript is the de facto view language. What is not well advertised is that since CouchDB is written in Erlang, it also supports Erlang views, which are faster as they are "native". For applications doing a lot of operations in views, Erlang probably makes more sense.

Setting those minor issues aside, I'd wholeheartedly recommend it.

lazyconfabulator
I should clarify that compacting a database doesn't make it unavailable, but it does greatly impact performance. In fact, if writes occur faster than the compact, compact might never finish. See: http://wiki.apache.org/couchdb/Compaction
lazyconfabulator
Brilliant thanks, for the advice. Especially the ip on erlang views and synchs...
NoelAdy