git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Luke Kenneth Casson Leighton <luke.leighton@gmail.com>
To: Jeff King <peff@peff.net>
Cc: gitzilla@gmail.com, Nguyen Thai Ngoc Duy <pclouds@gmail.com>,
	git <git@vger.kernel.org>
Subject: Re: git pack/unpack over bittorrent - works!
Date: Thu, 2 Sep 2010 19:07:07 +0100	[thread overview]
Message-ID: <AANLkTi=kO9USQYoTLQZyCRrjCHWRtPtd4S5EuFk4-gPv@mail.gmail.com> (raw)
In-Reply-To: <20100902155810.GB14508@sigill.intra.peff.net>

On Thu, Sep 2, 2010 at 4:58 PM, Jeff King <peff@peff.net> wrote:

> pack-objects will reuse previously found deltas. So the deltas you have
> in your existing packs matter. The deltas you have in your existing
> packs depend on many things. At least:
>
>  1. Options you used when packing (e.g., --depth and --window).
>
>  2. Probably exactly _when_ you packed. You could find a good delta
>     from A to B. Later, object C comes into existence, and would
>     provide a better delta base for B. I don't think we will ever try A
>     against C, unless --no-reuse-delta is set.
>
>     You have a different pack than somebody who packed after A, B, and
>     C all existed.
>
>     In practice, this tends not to happen much because the best deltas
>     are usually going backwards in time to a previous version. But it
>     can happen.

 jeff, thanks for explaining (and to nicolas, i see, since beginning this)

 mrhmfffh.  just been reading Documentation/technical/pack-heuristics.txt.

 so... options include:

 * writing an alternative "canonical" pack-object algorithm.  i'm
inclined to select "git format-patch"! :)  but that would be the lazy
way....

 * taking the seeder's pack-objects as the "canonical" ones,
regardless.  cacheing of the results would, sadly, be virtually
unavoidable, given the situation (multi-threading etc.)

 * throw away bittorrent entirely as a transport mechanism.

 * force-feed one peer to be "the" provider of a particular given
pack.  doesn't matter whom you contact to _obtain_ a pack from, as
long as you solely and exclusively get the pack from that particular
peer.

 * slight improvement / variation on the above: if two peers just
coincidentally happen to create or have the same pack (as can be shown
by having the same SHA-1, and/or by having the same data in their
cache) then ta-daaa, you have a file-sharing network for that
particular pack.

i think.... i think i miiight be able, hmmm... i believe it would be
possible to implement this last option by creating separate .torrents
for packs (one each!).  by splitting things down, so that pack objects
are named as {ref}-{objref}-{SHA-1}.torrent and by providing a "top
level" torrent which contains the refs/heads/* and the associate
rev-list(s)... each set of rev-lists would have the SHA-1 of the
pack-object that happened to be created (and shared) at that
particular time, from that particular client: you then genuinely don't
give a stuff about who has what, it's all the same, and...

hmmm, i feel a modification to / deviation from the bittorrent
protocol coming on :)

l.

  parent reply	other threads:[~2010-09-02 18:07 UTC|newest]

Thread overview: 88+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-01 14:36 git pack/unpack over bittorrent - works! Luke Kenneth Casson Leighton
2010-09-01 22:04 ` Nguyen Thai Ngoc Duy
2010-09-02 13:37   ` Luke Kenneth Casson Leighton
2010-09-02 13:53     ` Luke Kenneth Casson Leighton
2010-09-02 14:08     ` Ævar Arnfjörð Bjarmason
2010-09-02 15:33     ` A Large Angry SCM
2010-09-02 15:42       ` Luke Kenneth Casson Leighton
2010-09-02 15:51         ` Luke Kenneth Casson Leighton
2010-09-02 17:06           ` A Large Angry SCM
2010-09-02 15:58         ` Jeff King
2010-09-02 16:41           ` Nicolas Pitre
2010-09-02 17:09             ` A Large Angry SCM
2010-09-02 17:31               ` Nicolas Pitre
2010-09-02 19:17                 ` Luke Kenneth Casson Leighton
2010-09-02 19:29                   ` Shawn O. Pearce
2010-09-02 19:51                     ` Luke Kenneth Casson Leighton
2010-09-02 20:06                     ` Luke Kenneth Casson Leighton
2010-09-03  0:36                       ` Nicolas Pitre
2010-09-03 10:34                         ` Luke Kenneth Casson Leighton
2010-09-03 17:03                         ` Junio C Hamano
2010-09-02 20:28                     ` Brandon Casey
2010-09-02 20:48                       ` Luke Kenneth Casson Leighton
2010-09-02 20:45                     ` Jakub Narebski
2010-09-02 21:10                       ` Luke Kenneth Casson Leighton
2010-09-02 21:19                         ` Luke Kenneth Casson Leighton
2010-09-03  0:29                         ` Nicolas Pitre
2010-09-03  2:48                           ` Nguyen Thai Ngoc Duy
2010-09-03 10:55                             ` Luke Kenneth Casson Leighton
2010-09-03 10:23                           ` Luke Kenneth Casson Leighton
2010-09-03 10:54                           ` Luke Kenneth Casson Leighton
2010-09-02 18:07           ` Luke Kenneth Casson Leighton [this message]
2010-09-02 18:23             ` Casey Dahlin
2010-09-02 16:58         ` A Large Angry SCM
2010-09-02 17:21         ` Nicolas Pitre
2010-09-02 19:41           ` Luke Kenneth Casson Leighton
2010-09-02 19:52             ` A Large Angry SCM
2010-09-02 23:09             ` Nicolas Pitre
2010-09-03 10:37               ` Theodore Tso
2010-09-03 11:04                 ` Luke Kenneth Casson Leighton
2010-09-03 17:12                 ` Junio C Hamano
2010-09-03 18:31                   ` Ted Ts'o
2010-09-03 19:41                     ` Nicolas Pitre
2010-09-03 21:11                       ` Luke Kenneth Casson Leighton
2010-09-04  0:24                         ` Nguyen Thai Ngoc Duy
2010-09-04  0:57                           ` Nguyen Thai Ngoc Duy
2010-09-04  1:52                           ` Artur Skawina
2010-09-04  4:39                             ` Nicolas Pitre
2010-09-04  5:42                               ` Artur Skawina
2010-09-04  6:13                                 ` Nicolas Pitre
2010-09-04 11:58                                   ` Luke Kenneth Casson Leighton
2010-09-04 13:14                                     ` Luke Kenneth Casson Leighton
2010-09-05  2:16                                       ` Nicolas Pitre
2010-09-05 18:05                                         ` Luke Kenneth Casson Leighton
2010-09-05 23:52                                           ` Nicolas Pitre
2010-09-06 13:23                                             ` Luke Kenneth Casson Leighton
2010-09-06 16:51                                               ` Nicolas Pitre
2010-09-06 22:33                                                 ` Luke Kenneth Casson Leighton
2010-09-06 23:34                                                 ` Junio C Hamano
2010-09-06 23:57                                                   ` Nicolas Pitre
2010-09-07  0:17                                                     ` Luke Kenneth Casson Leighton
2010-09-07  0:29                                                     ` Luke Kenneth Casson Leighton
2010-09-04 13:42                                   ` Artur Skawina
     [not found]                                     ` <20100904155638.GA17606@pcpool00.mathematik.uni-freiburg.de>
2010-09-04 17:23                                       ` Artur Skawina
2010-09-04 18:46                                       ` Artur Skawina
2010-09-04  1:57                       ` Theodore Tso
2010-09-04  5:23                         ` Kyle Moffett
2010-09-04 11:46                           ` Theodore Tso
2010-09-04 14:06                           ` Luke Kenneth Casson Leighton
2010-09-05  1:32                             ` Nicolas Pitre
2010-09-05 17:16                               ` Luke Kenneth Casson Leighton
2010-09-04  5:40                         ` Nicolas Pitre
2010-09-04 12:00                           ` Theodore Tso
2010-09-04 12:44                             ` Luke Kenneth Casson Leighton
2010-09-04 14:50                             ` Luke Kenneth Casson Leighton
2010-09-04 18:14                               ` Ted Ts'o
2010-09-04 20:00                                 ` Luke Kenneth Casson Leighton
2010-09-04 22:41                                   ` Ted Ts'o
2010-09-05 17:22                                     ` Luke Kenneth Casson Leighton
2010-09-04 20:20                                 ` Jakub Narebski
2010-09-04 20:47                                   ` Luke Kenneth Casson Leighton
2010-09-04 21:16                                     ` Jakub Narebski
2010-09-04 21:24                                       ` Luke Kenneth Casson Leighton
2010-09-04 22:47                                     ` Ted Ts'o
2010-09-05  1:43                                       ` Tomas Carnecky
2010-09-05  1:18                             ` Nicolas Pitre
2010-09-05 17:25                               ` Luke Kenneth Casson Leighton
2010-09-06  0:05                                 ` Nicolas Pitre
2010-09-04 12:33                           ` Luke Kenneth Casson Leighton

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

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

  git send-email \
    --in-reply-to='AANLkTi=kO9USQYoTLQZyCRrjCHWRtPtd4S5EuFk4-gPv@mail.gmail.com' \
    --to=luke.leighton@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitzilla@gmail.com \
    --cc=pclouds@gmail.com \
    --cc=peff@peff.net \
    /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.
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 NNTP newsgroup(s).