couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Miles Fidelman <mfidel...@meetinghouse.net>
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 
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



Mime
View raw message