2. It seems like there's a point at which explicit 1-1 replication starts to be an administrative nightmare. Some kind of publish- subscribe or multi-cast update model seems needed.
Would the new continuous replication feature be what you need? With this all changes to A get automatically replicated to B, if I get things right here...
Well it's more of, when I change A, I want the changes to propagate to B through Z (or "all") - with some sort of multi-cast addressing rather than having to identify every node explicitly.
Hm, I guess you would have to create/write/program a custom layer on top of each CouchDB instance. Maybe an adpted version of the couchdb- proxy [1] that would listen on the multicast address. With this you could notice new instances being up and the replication from the master machines would be handled by the proxy, i.e. the proxy would send the replication commands to the master. You could then even do this in layers of proxies and CouchDBs...

But: while writing the above lines I notice that you may be want to have a look at Zookeeper [2] !?

ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.

You could basically wrap the start script and write additional information (like the CouchDB URL) into Zookeeper. One node could then periodically read the info about existing CouchDB instances and trigger or configure the replications...

Daniel

[1]: http://github.com/benoitc/couchdbproxy
[2]: http://hadoop.apache.org/zookeeper/

Reply via email to