git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Mike Taht <mike.taht@timesys.com>
To: Jan Harkes <jaharkes@cs.cmu.edu>
Cc: Linus Torvalds <torvalds@osdl.org>,
	David Woodhouse <dwmw2@infradead.org>,
	Jan Dittmer <jdittmer@ppp0.net>, Greg KH <greg@kroah.com>,
	Git Mailing List <git@vger.kernel.org>
Subject: Git transfer protocols (was: Re: Git-commits mailing list feed)
Date: Sat, 23 Apr 2005 14:28:59 -0700	[thread overview]
Message-ID: <426ABE1B.7000905@timesys.com> (raw)
In-Reply-To: <20050423204957.GA16751@delft.aura.cs.cmu.edu>

Jan Harkes wrote:

> rsync works fine for now, but people are already looking at implementing
> smarter (more efficient) ways to synchronize git repositories by
> grabbing missing commits, and from there fetching any missing tree and
> file blobs. However there is no such linkage to discover missing tag
> objects, only a full rsync would be able to get them and for that it has
> to send the name of every object in the repository to the other side to
> check for any missing ones.

I think that one reason why rsync is inefficient for git is that it 
appears to need an acknowledgement after every file. (at least, that's 
what what the rhythm of the packets looked like when I sniffed it 
earlier, I don't know anything else about it) For a series of very small 
files this interacts badly with tcp's flow control mechanisms. Perhaps 
rsync could be modified for a "sliding file acknowledgement window".

Most "swarming protocols" (e.g BitTorrent, eDonkey) work well for one 
big file shared among multiple hosts, but poorly for lots of small files.

*Nothing* out there matches the simplicity of git's sha1 filename 
length... but

Something like robcast or fcast/flute might be of interest:

http://www.inrialpes.fr/planete/people/roca/mcl/mcl_in_short.html

Or one of the multicast netnews experiments:

"mcntp" http://mcntp.sourceforge.net/
"newscaster" http://www.dmn.tzi.org/en/newscaster.html

lastly, Monotone has it's own "netsync" protocol
(via http://www.venge.net/monotone/faq.html)

"[netsync] is a bi-directional pipelined protocol for synchronizing 
collections using a tree of hashed indices. It allows any copy of 
monotone to function as either a client or a server, and rapidly 
synchronize or half-synchronize (push / pull) their database with 
another user. It is somewhat similar in flavor to rsync or Unison, in 
that it quickly and idempotently synchronizes information across the 
network without needing to store any local state; however, it is much 
more efficient than these protocols."



-- 

Mike Taht



  reply	other threads:[~2005-04-23 21:26 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <200504210422.j3L4Mo8L021495@hera.kernel.org>
     [not found] ` <1114079347.6277.29.camel@laptopd505.fenrus.org>
2005-04-21 12:23   ` Git-commits mailing list feed David Woodhouse
     [not found] ` <42674724.90005@ppp0.net>
     [not found]   ` <20050422002922.GB6829@kroah.com>
     [not found]     ` <426A4669.7080500@ppp0.net>
     [not found]       ` <1114266083.3419.40.camel@localhost.localdomain>
     [not found]         ` <426A5BFC.1020507@ppp0.net>
     [not found]           ` <1114266907.3419.43.camel@localhost.localdomain>
2005-04-23 17:31             ` Linus Torvalds
2005-04-23 17:45               ` Linus Torvalds
2005-04-23 17:50               ` Fabian Franz
2005-04-23 23:16                 ` Andreas Gal
2005-04-23 17:50               ` Sean
2005-04-23 19:02                 ` Thomas Glanzmann
2005-04-23 18:14                   ` Sean
2005-04-23 19:34                 ` Linus Torvalds
2005-04-23 17:54               ` Thomas Glanzmann
2005-04-23 18:30                 ` Linus Torvalds
2005-04-23 18:06                   ` Sean
2005-04-23 19:38                     ` Linus Torvalds
2005-04-23 18:44                       ` Sean
2005-04-23 19:58                         ` Linus Torvalds
2005-04-23 19:57                       ` Junio C Hamano
2005-04-23 20:23                         ` Linus Torvalds
2005-04-23 20:24                         ` Junio C Hamano
2005-04-24 23:25                       ` Paul Jakma
2005-04-24 23:57                         ` Paul Jakma
2005-04-25  1:01                         ` David A. Wheeler
2005-04-25  1:35                           ` Paul Jakma
2005-04-25  2:13                             ` David A. Wheeler
2005-04-25  3:03                               ` Paul Jakma
2005-04-25  3:08                                 ` Paul Jakma
2005-04-25  1:50                           ` Linus Torvalds
2005-04-25  2:17                             ` Fabian Franz
2005-04-25  2:39                               ` Andreas Gal
2005-04-25  2:44                               ` Linus Torvalds
2005-04-25  3:32                                 ` David A. Wheeler
2005-04-25  9:31                                   ` David Greaves
2005-04-25  3:08                             ` David A. Wheeler
2005-04-25  3:24                               ` Paul Jakma
2005-04-25  3:40                                 ` Paul Jakma
2005-04-25  3:47                                   ` Paul Jakma
2005-04-25  4:39                                     ` [PATCH] New option (-H) for rpush/rpull to update HEAD Andreas Gal
2005-04-25  4:47                                       ` Daniel Barkalow
2005-04-25  4:55                                         ` Andreas Gal
2005-04-25  5:18                                           ` Daniel Barkalow
2005-04-25  2:34                           ` Git-commits mailing list feed Matt Domsch
2005-04-25  2:43                             ` Jan Harkes
2005-04-23 18:39                   ` Thomas Glanzmann
2005-04-23 18:44                     ` Thomas Glanzmann
2005-04-23 18:46                   ` Jan Harkes
2005-04-23 20:01                     ` Linus Torvalds
2005-04-23 18:54                   ` Junio C Hamano
2005-04-23 18:34               ` Jan Harkes
2005-04-23 19:30                 ` Linus Torvalds
2005-04-23 20:49                   ` Jan Harkes
2005-04-23 21:28                     ` Mike Taht [this message]
2005-04-23 22:22                       ` Git transfer protocols (was: Re: Git-commits mailing list feed) Jan Harkes
2005-04-23 23:29                     ` Git-commits mailing list feed Linus Torvalds
2005-04-23 19:30               ` Suggestion: generalize signed tags into "assertion objects" David A. Wheeler
2005-04-23 20:15               ` Git-commits mailing list feed Jeff Garzik
2005-04-25  1:26               ` David Woodhouse

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=426ABE1B.7000905@timesys.com \
    --to=mike.taht@timesys.com \
    --cc=dwmw2@infradead.org \
    --cc=git@vger.kernel.org \
    --cc=greg@kroah.com \
    --cc=jaharkes@cs.cmu.edu \
    --cc=jdittmer@ppp0.net \
    --cc=torvalds@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).