Adam Kocoloski wrote:
On Oct 26, 2009, at 11:35 AM, Chris Anderson wrote:



2) When these CouchDB servers drop off for an extended period and then
rejoin, how do they subscribe to the update feed from the replication bus at a particular sequence? This is really the key element of the setup. When I think of multicasting I think of video feeds and such, where if you drop off and rejoin you don't care about the old stuff you missed. That's not the
case here.  Does the bus store all this old feed data?

Think of something like RSS, but with distributed infrastructure.
A node would publish an update to a specific address (e.g., like publishing
an RSS feed).

All nodes would subscribe to the feed, and receive new messages in sequence. When picking up updates, you ask for everything after a particular sequence
number.  The update service maintains the data.

The best candidate for an update service like this is probably a CouchDB.

Sounds that way to me, too, although that could be because CouchDB is the hammer I know really well.

I'm still trying to figure out how multicast fits into the picture. I can see it really helping to reduce bandwidth and server load in a case where the nodes are all expected to be online 100% of the time, but if nodes are coming and going they're likely to be requesting feeds at different starting sequences much of the time. What's the win in that case?

Doesn't seem that way to me. At the very least, for a fully distributed design (which is what we're seeking), this would require a backbone of multiple CouchDB instances plus a management infrastructure of some sort.

What I'm looking for is a way to avoid:

1. any kind of central node
2. the need to manage an unbounded number of 1-1 links between nodes

That requires some kind of many-many protocol that takes care of moving messages around.

Miles


--
In theory, there is no difference between theory and practice.
In practice, there is.   .... Yogi Berra


Reply via email to