couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Miles Fidelman <>
Subject Re: why erlang?
Date Mon, 16 Aug 2010 20:38:47 GMT
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 

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.


In theory, there is no difference between theory and practice.
In<fnord>  practice, there is.   .... Yogi Berra

View raw message