MC, P2P, distributed collections
Cees de Groot
cg at cdegroot.com
Fri Mar 18 07:49:04 UTC 2005
On Thu, 17 Mar 2005 22:57:06 -0500, Colin Putney <cputney at wiresong.ca>
wrote:
> Interesting. I hadn't considered that assertions about the same U might
> be coming from different nodes. Do we also have to deal with the
> possibility that two different people will be making different
> assertions about U at the same time?
>
Define 'same time'... In distributed systems, that's hard enough without
parts of your network moving at relativistic speeds ;).
The software doesn't forbid it. But it is highly unlikely. First - the DGV
project and MC have in common that it has lots more write than read
transactions; writing is relatively rare. Then, there's an awful lot of
information out there, the chance that two people work on the same bit is
small, the chance that they do this at the same time is smaller, and the
chance that whatever they do results in the same low-level assertions is
even smaller.
The whole philosophy behind this project is that things can go wrong. You
can either have simple software that goes wrong because it doesn't try to
patch all the issues of distributed computing, or you can have very
complex software that manages to take into account all of Deutsch's
Fallacies and account for them. In the latter case you may have
transactions that take days to resolve and bugs that follow from sheer
complexity. So I'm clearly aiming for the first case here ;).
Gossip has time synchronisation built in now. So it can always make an
educated guess about what transaction was later (plus or minus 5 seconds,
say). It is a very trivial synchronisation system, but it seems to work as
long as you don't want second precision. And as long as you aren't
interested in the wall-clock time, because nodes let their 'network clock'
drift to adjust for what their neighbours think it should be.
> It's a different bandwidth and latency tradeoff, but it should work.
>
Yup. And in Gossip, presence announcements have an origin, so you don't
even need to broadcast; one could directly start to chat with the origin.
> Right. Also, if the "clock comparison" strategy turns out to be better
> than "chatty ancestry" we can probably manage to do clock comparison
> only between peers, and not require every node to track the clock of
> every other node.
>
It definitely is simpler :). Probably a matter of taking the simplest
thing and keeping a tab on the number of times that conflicts arise. I
really really wouldn't know how often this would happen...
>> Lots of verbosity and thinking aloud - but did I understand you
>> correctly here, Colin?
>
> Yes.
>
Kewlness :). I'll try to make a stab at this stuff for the DGV project,
then.
More information about the Squeak-dev
mailing list
|