[darcs-users] Re: peer to peer darcs

Eric S. Johansson esj at harvee.org
Sun Aug 1 22:15:36 UTC 2004


S. Alexander Jacobson wrote:

> On Sun, 1 Aug 2004, Eric S. Johansson wrote:
> 
>>>Anyhow, on today's internet, you probably don't have to worry about
>>>people getting so far out of sync that this is really an issue.  Or am I
>>>wrong?
> 
> 
> The maximum out-of-syncness is the duration of the
> period between batch retrievals/sends of email.
> 
> If your workgroup includes people who are actively
> producing patches with long periods between such
> connections, then you probably have to handle that
> specially no matter what revision control system
> you are using.
> 
> However, I think, in most workgroups, a 2-3 day
> period assumption seems entirely reasonable and
> workable...

it really depends on the impact synchronization has on your development. 
  Personally, I tend to compartmentalize my work so that I don't need to 
synchronize very often and when I do so, it's a control process.  Other 
people need to have up-to-the-minute synchronization because they are 
doing integration work and the environment is totally 
uncontrolled/chaotic.  These really are two different models and need to 
be handled appropriately.  Usually through non configuration management 
means (i.e. talking to one another)

> 
>>I think you are overly optimistic.  Today's Internet is mostly broken
>>into consume only notes and a few producers.  For peer-to-peer
>>operations, you need end-to-end completeness and that just isn't happening.
> 
> 
> You have end-to-end completeness for asynchronous
> communications via email and arguably instant
> messaging (e.g. Jabber).

maybe it's time for definitions.  What I mean by peer-to-peer 
environments is an environment in which two systems talk with each other 
without the benefit of any intermediaries.  E-mail, instant messaging, 
etc. all use intermediaries servers to give the appearance of 
peer-to-peer communications.  Services such as various file swapping 
networks where one machine talks to another is what I mean by peer-to-peer.

Peer-to-peer operations however are against most service provider AUP's 
and if you get caught running a service, at best you'll be charged 
business rates (i.e. 3x markup for absolutely the same service) or 
you'll lose your connection.

> But before we do all this, I'd like to understand
> whether the base p2p model is actually plausible.
> The minimal-context discussion has been going a
> bit over my head...

direct peer to peer I will argue is not plausible given the current 
realities of net policies set by private corporations.  pseudo 
peer-to-peer or indirect peer-to-peer using temporary read-only holding 
areas should be sufficient for most development models.  In fact, I 
would argue that the most useful form of indirect peer-to-peer would be 
pushing changes to a web site with some centrally mediated trigger such 
as instant messenger or a tickle by e-mail as you had suggested.

> David, Eric, if we make the assumption that people
> will get maximally n days out of phase or that
> there will be at most e.g. 1000 patches in the
> time that people are out of phase, how bad is
> O(n^2) when n==1000 on modern computers?

I'll argue it doesn't matter.  It reduces to the same thing as someone 
synchronizing with another person's repository.  Like what I will be 
doing when I finally get around to updating my 3-month-old copy of darcs 
from Dave's public repository.  How bad will the synchronization be?  I 
really don't care.  If it takes long enough, I will go take a walk or 
play with the dog, or <gasp> switch to another desktop and go do 
something else.

> Ok.  I think both POP and IMAP allow you to
> retreive headers without retreiving message
> bodies. Alternatively, if you receive patches via
> HTTP, how you get notified about the content of
> those changes would be a local configuration
> issue...

again, using pop 3 etc. e-mail isn't horrible as a mechanism for updates 
as long as you assume that human destined e-mail can be filtered apart 
from darcs generated e-mail and processed appropriately.  Given that 
it's a absolute bear to sort messages from a pop stream and direct to 
some of them into a dedicated application, you really want to assume 
there's a separate account for darcs mail which is read by a pop 3 aware 
  darcs front-end.

and yes, if we could separate out the notification method for 
synchronization purposes, then it would be really neat.  I do believe a 
jabber environment would be really quite good for handling notifications 
especially since notifications get cued until next time you log in.

and if you want to play with it, esjatharvee at jabber.org is a valid IM 
address (but I may be busy and tell you to go away occasionally)

---eric






More information about the darcs-users mailing list