From: Sam Vilain <sam@vilain.net>
To: Luke Kenneth Casson Leighton <luke.leighton@gmail.com>
Cc: Nguyen Thai Ngoc Duy <pclouds@gmail.com>,
Nicolas Pitre <nico@fluxnic.net>,
Git Mailing List <git@vger.kernel.org>
Subject: Re: Resumable clone/Gittorrent (again)
Date: Tue, 11 Jan 2011 10:38:48 +1300 [thread overview]
Message-ID: <4D2B7C68.1010200@vilain.net> (raw)
In-Reply-To: <AANLkTim2A4=y=XcuPuPiYGDGZyKAUEk-yv2cZVEGhQ3C@mail.gmail.com>
On 09/01/11 06:21, Luke Kenneth Casson Leighton wrote:
> On Sat, Jan 8, 2011 at 2:17 AM, Nguyen Thai Ngoc Duy <pclouds@gmail.com> wrote:
>> there are a few characteristics of bittorrent pieces that i see:
>> verifiable, resumable, uniquely identifiable across peers and
>> reasonbly small in count.
>>
>> The fixed size helps peers uniquely identify any pieces by splitting
>> the whole transfer equally and indexing them in 1-dimension.
> ok - you haven't answered the question: are the chains perfectly
> fixed identical sizes?
>
> if so they can be slotted into the bittorrent protocol by simply
> pre-selecting the size to match. with the downside that if there are
> a million such "chains" you now pretty much overwhelm the peers with
> the amount of processing, network traffic and memory requirements to
> maintain the "pieces" map.
I'll respond also to this sub-point. This can be done; but instead of
doing it at the pack level, you take the list of objects between A and B
(for a fetch from A to B), order them by some deterministic order
(called the "commit reel" in the Gittorrent RFC) and then carve that
list up into chunks based on the uncompressed object sizes.
The ordering defined in the RFC is such that it is possible to create
"thin" packs for discrete ranges of commits using existing plumbing, so
that the total transfer size is relatively similar to a complete clone.
In experiments the network overhead was found to be around 10-20% in
this way.
However I must discourage looking for "inspiration" from the Bittorrent
protocol; it reinvents many wheels unnecessarily, and contains much
shonky advice in it. See the revision history for the gittorrent RFC
(github.com/samv/gittorrent) for the gory details.
Sam
prev parent reply other threads:[~2011-01-10 21:39 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-05 16:23 Resumable clone/Gittorrent (again) Nguyen Thai Ngoc Duy
2011-01-05 16:56 ` Luke Kenneth Casson Leighton
2011-01-05 17:13 ` Thomas Rast
2011-01-05 18:07 ` Luke Kenneth Casson Leighton
2011-01-06 1:47 ` Nguyen Thai Ngoc Duy
2011-01-06 17:50 ` Luke Kenneth Casson Leighton
2011-01-05 23:28 ` Maaartin
2011-01-06 1:32 ` Nguyen Thai Ngoc Duy
2011-01-06 3:34 ` Maaartin-1
2011-01-06 6:36 ` Nguyen Thai Ngoc Duy
2011-01-08 1:04 ` Maaartin-1
2011-01-08 2:40 ` Nguyen Thai Ngoc Duy
2011-01-07 3:21 ` Nicolas Pitre
2011-01-07 6:34 ` Nguyen Thai Ngoc Duy
2011-01-07 15:59 ` Luke Kenneth Casson Leighton
2011-01-08 2:17 ` Nguyen Thai Ngoc Duy
2011-01-08 17:21 ` Luke Kenneth Casson Leighton
2011-01-09 3:34 ` Nguyen Thai Ngoc Duy
2011-01-09 13:55 ` Luke Kenneth Casson Leighton
2011-01-09 17:48 ` Nguyen Thai Ngoc Duy
2011-01-13 11:39 ` Luke Kenneth Casson Leighton
2011-01-13 23:40 ` Sam Vilain
2011-01-14 14:26 ` Luke Kenneth Casson Leighton
2011-01-16 2:11 ` Sam Vilain
2011-01-10 21:38 ` Sam Vilain [this message]
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=4D2B7C68.1010200@vilain.net \
--to=sam@vilain.net \
--cc=git@vger.kernel.org \
--cc=luke.leighton@gmail.com \
--cc=nico@fluxnic.net \
--cc=pclouds@gmail.com \
/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).