incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Davis <>
Subject Re: Questions about couchDB algorithms
Date Wed, 04 Feb 2009 13:59:23 GMT
On Wed, Feb 4, 2009 at 4:49 AM, Alessio Pace <> wrote:
> Hi,
> I have just discovered couchDB and I'm very interested in knowing more about
> the internal details of it, because apart from reading that is multi-master
> and that the system is eventually consistent, I don't see much informations
> about other various key design things (I apologize if I wasn't able to find
> them), like:
> - update propagation through gossiping: based on any known algorithm?

The current state of affairs in terms of keeping multiple nodes in
sync uses the baked in replication mechanism. At the moment it is up
to the user to ensure that nodes are kept in sync via these
facilities. There is quite a bit of active development on this front
so it's best to stay tuned and see what comes out.

> - group membership among the various site: how is it done, through
> gossiping? If so, based on any known algorithm?

Not sure what you mean here.

> - are sites required to accept incoming connections (-> can I replicate on
> nodes behind NAT?)

Replication is both push and pull. So you just need to be able to have
your nodes behind NAT know when to trigger replication.

> - how are conflicts detected? Do you use explicit representation of
> operations, vector clocks, ... or what?

The best reference for the actual details on this would be the code.
IIRC, Damien was doing a bit of work on this recently. The basic idea
is documents with the longest edit history become the 'winning' doc.
Then it's up to your app to resolve conflicts.

> - do you have datas on how much it scales with respect to number of
> databases/documents/sites ? And, does its way of working adapt to changes in
> the amount of those factors?

I have yet to see multi-node numbers. So far there are some pretty
impressive numbers floating around for single node setups. I don't
have anything handy but Google and the ML archives should help you out

> Thanks in advance for any clarification!
> Best regards,
> Alessio Pace.

Paul Davis

View raw message