Randall Leeds wrote:
There is no reason I see why HTTP is not a valid transport for a DHT nor any
reason why it is not possible to gossip over HTTP. I think it's confusing
the issue to blame HTTP for any problem Couch has with distribution.
Enlighten me if I'm wrong, of course.
I guess that's a fair point. The thing is, though that the problem has
a lot more to do with routing than transport. Something has to keep
track of which nodes are up/down, as well as lowest-cost paths for
moving data along.
The extreme cases are:
1. hub-and-spokes: every change ripples through a central node - no
routing to worry about, but not very robust
2. point-to-point replication, where everything eventually gets to where
it's going: problems are that large networks require manual
configuration of lots of pairwise links, and things get brittle if the
wrong link goes down
Elements of something a bit more reliable and requiring less (no) manual
configuration:
3. multi-cast or broadcast protocols: send an update into the ether,
everyone gets it - but... works for stuff like streaming voice or video,
where a lost packet doesn't matter; doesn't work for transactions, where
you need an acknowledge-and-retransmit mechanism to make sure that data
eventually gets everywhere (though there are some experimental reliable
multicast protocols floating around)
4. a protocol/data replication mechanism that includes some kind of
self-tuning routing mechanism - examples include: UUCP, DHTs, etc.
There have been some of these built on top of HTTP, but the purist in me
really dislikes violating layering.
Miles
--
In theory, there is no difference between theory and practice.
In<fnord> practice, there is. .... Yogi Berra