On 27 Jan 2009, at 14:38, Wout Mertens wrote:

Hi there,

I'm a big fan of CouchDB and I want to use it in production but I'm holding out for a somewhat stable release. In preparation however I would like to know where CouchDB stands in High Availability and/or Scalability.

In a recent benchmark: Inserting 100b docs into an empty database: ~6200docs/s. Inserting the same docs in a 90 000 000 doc db: 6000docs/ s (with sequential ids). Data scales.

Scaling over multiple nodes needs to be done on the client side for now. We're looking into database partitioning.

HA: It's HTTP. If you know how to make HTTP highly available, there's your receipt.


I know that Erlang promises that you can run a single program across multiple CPUs and even systems at the same time, and you can upgrade the program while it is handling requests. I presume Erlang also handles the case where a system goes offline?

Erlang gives you the tools to build these systems. You still have to deal with outages yourself (that is us), because that is application specific. We don't distribute over multiple nodes per instance yet.


Furthermore, I know that the view server runs separately from the CouchDB process, and it can in principle split the map and reduce phases across many compute nodes.

Yes, it runs separately and yes, with a little effort you could distribute the computation, but the sweet spot for M/R is heavy computation and little data movement where views are lightweight computing on loads of data. So there's little to gain if your data isn't already on the remote systems. Database partitioning will change that game.


Finally, I know that the replication works. Is there a "standard" way of using it with supporting programs?

What do you mean? CouchDB is the only program (sadly) that supports CouchDB replication.


So my question is: How much of this is already a reality? Is any testing being done for these scenarios? Is this on the roadmap for 1.0?

People are using CouchDB in production with success now (and have been for over a year). Depending on your app, CouchDB might be "there" for you already.

Feel free to send in more specific questions. :)

Cheers
Jan
--

Reply via email to