Opened 13 years ago

Closed 11 years ago

Last modified 11 years ago

#1918 closed Enhancement (fixed)

Webseeds are slow

Reported by: ryan Owned by: charles
Priority: Normal Milestone: 2.20
Component: libtransmission Version: 1.51
Severity: Normal Keywords:
Cc: rpnielsen@…


Web servers are typically much better about quickly streaming one large chunk of data rather than fulfilling multiple piecemeal requests for the same data. When a webseed is provided and no peers present can feed data for the current piece, libtorrent should stream the entire piece from a webseed.

The current behavior seems to be to always treat the webseed as a peer. This is a good idea when there are other peers around to handle load and the webseed is just filling in gaps. When peers are sparse, however, treating the webseed as a BT peer is grossly inefficient, especially if the torrent has large (e.g. 512MB+) pieces.

Change History (6)

comment:1 Changed 13 years ago by charles

This sounds like a good idea, but how then do we get libtransmission to obey the users' speed limits during webseed downloads?

comment:2 Changed 13 years ago by ryan

  • Cc rpnielsen@… added

Good point. Problem is that right now web seeds, as currently implemented, are useless.

I'm not sure how libtorrent handles web seeds, but I get significantly better performance using nothing but web seeds with a libtorrent client, compared to a libtransmission client. As an example, a client with libtransmission gets 0 b/s down using only web seeds. A client with libtorrent is able to pull 10MB/s from those same web seeds.

comment:3 Changed 12 years ago by charles

  • Keywords patch-needed added
  • Resolution set to wontfix
  • Status changed from new to closed

There is only one developer currently working on libtransmission, and webseeds are a low priority because webseed .torrents are exceedingly rare. Unless they catch on more in the BitTorrent? world, this ticket is unlikely to be implemented.

This ticket would be an improvement to Transmission, at least to the extent that webseeds are used, so patches are welcomed. If someone out there feels strongly about webseeds, please attach a patch to this ticket and reopen the ticket. Thanks!

comment:4 Changed 12 years ago by livings124

  • Resolution wontfix deleted
  • Status changed from closed to reopened

Reopening because this is a valid issue that should be fixed sometime or other.

comment:5 Changed 11 years ago by jordan

  • Keywords patch-needed removed
  • Milestone changed from None Set to 2.20
  • Resolution set to fixed
  • Status changed from reopened to closed
  • Summary changed from Transmission should request pieces from webseeds to downloading from webseeds is inefficient

Transmission 2.20's webseed code still uses the block request allocator that peers use, but it's smarter about using them: it requests them in parallel, which peers can't do but web servers are great at. 2.20's speed is now on par with libtorrent-rb clients.

Ryan's idea for requesting pieces is more efficient than requesting blocks, but the two approaches' speeds are equivalent when requests are made in parallel, and using blocks is much simpler in libtransmission's code.

Webseeds still don't honor the speed limits, but that's a separate ticket (#1079)...

comment:6 Changed 11 years ago by jordan

  • Summary changed from downloading from webseeds is inefficient to Webseeds are slow
Note: See TracTickets for help on using tickets.