Have compression (was Re: Standards (was [BitTorrent] Back to Merkle

Bill Cox bill at viasic.com
Thu Feb 10 06:59:30 EST 2005


On Thu, 2005-02-10 at 02:28 +0000, Justin Cormack wrote:
...
> > So, you're suggesting the use of extents, instead of a bitmap. There are
> > two problems:
...
> I think its worth testing. I dont think the complexity is that bad, as
> you can have a bitmap and not care or a better implementation.

I agree with the testing part.  Olaf's got a clean, simple
implementation of Merkle hash trees.  The only major departure from it
that I see might be dynamic piece size.  I'd be up for testing out if
you want, just to see how it goes.

> > > End game is another time where making piece size really small might help,
> > > we could get rid of the endgame protcol and cancel messages if we can shrink
> > > piece size down.
> > > 
> > > In fact the beginning and end both symmetrically require small pieces,
> > > which suggests that studying this further will give us a good insight into
> > > how to select sizes
> > 
> > I worry I'll be flamed for this, but I suspect the deal is that the
> > official client's handling of begining and ending is pretty well bogus. A
> > 30% overhead has been cited for end-game mode and dups. A better approach
> > might be to assign the blocks to different peers. This degrades the
> > peer's performance (anyone want to make a client that tit-for-tats for
> > this?), but gets you whole pieces much faster. Outside those two domains,
> > raw bandwidth is more essential than rarity of whole pieces so reversion
> > to the conventional strategy is best.
> 
> I am not sure there is a good justification for endgame mode, but will
> listen to good arguments.

In btslave, I deal with beginning and end mode symetrically.  I think
you want to try harder at both ends to get small pieces, and you don't
want to wait long to get one from one peer before allowing yourself to
request the same piece from someone else.  I'm sure a symetric
continuous function defining piece size and min re-request time could
easily be defined that would work well.  I just us a simple pair of
constants.

Bill




 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/BitTorrent/

<*> To unsubscribe from this group, send an email to:
    BitTorrent-unsubscribe at yahoogroups.com

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 





More information about the BitTorrent mailing list