Prioritize parts within file

Feature requests not specific to either the Mac OS X or GTK+ versions of Transmission
Post Reply
Flo
Posts: 1
Joined: Fri May 23, 2014 2:12 pm

Prioritize parts within file

Post by Flo »

Hi all,

I never really understood why it is possible to ask Transmission to prioritize a file over other ones (even within one single torrent) but not parts of it over other ones. By prioritizing the beginning of a file, for example, you get to read the metadata early on and do things accordingly. If it is a video, you can start watching it.

Is it in some way against the very way torrents work? Is it doable?

Cheers,
Flo
blacke4dawn
Posts: 552
Joined: Sun Dec 13, 2009 10:44 pm

Re: Prioritize parts within file

Post by blacke4dawn »

I'm sure it's doable, and the only non-technical reason that I can see against it is the notion of requesting the pieces that are least frequent and/or present so that you not only "even out" the spread of pieces but also increase your chance of actually completing the whole torrent. From a practicality point I believe Transmission has chosen to stay with individual files since that is the "smallest" part that you can choose to download. I have heard about other torrent clients that essentially stream torrents by prioritizing the beginning.

The bigger question with your suggestion is more of how fine grained that kind of control you want, I mean is half of a file good enough, a quarter file, a tenth of a file or should we be able to prioritize individual pieces.
cfpp2p
Posts: 290
Joined: Sat Aug 08, 2009 3:14 pm

Re: Prioritize parts within file

Post by cfpp2p »

this I implemented a variation once for the 2.7x branch and it seemed to work OK but I never fully tested it. It has since been reverted in the changesets. I think it should work fine for the 2.8x branches if someone wants to work on it. I can no longer find the patch I had for v2.77.

"Add streaming capability to libtransmission (but not the Transmission GUI clients)" -- implemented
https://trac.transmissionbt.com/changeset/9816

Changeset 9816
View differences
Show lines around each change
Show the changes in full context
Ignore:
Blank lines
Case changes
White space changes

Timestamp:
12/24/09 01:02:54 (4 years ago)
Author:
charles
Message:

(trunk libT) #2632 "Add streaming capability to libtransmission (but not the Transmission GUI clients)" -- implemented
Location:
trunk/libtransmission
Files:

6 edited


peer-mgr.c (5 diffs)
resume.c (4 diffs)
resume.h (1 diff)
torrent.c (1 diff)
torrent.h (1 diff)
transmission.h (2 diffs)
cfpp2p
Posts: 290
Joined: Sat Aug 08, 2009 3:14 pm

Re: Prioritize parts within file

Post by cfpp2p »

I found my old patch and really looked it over and fixed it up. I decided it would be good to use for, on those sites that post videos that you can either http download directly or that also have the same torrents with the webseeds for the http imbedded in them. So this way I can stream the video and share it at the same time. Otherwise I might just stream it alone via their http direct and never share it at all. So here is my implementation.

http://sourceforge.net/p/transmissionda ... dc6d/#da45
https://github.com/cfpp2p/transmission/ ... e8e05c0861
Some of the worst things you can do to harm the swarm is to download with very low or no upload speed, or to stop immediately after completing files ( hit and run ) and with never uploaded anything at all. Even if you only download a portion of the files of a multi-file torrent you should still seed what you've got. Lets never do these type of things.

This feature will attempt to download the pieces in order, not the torrent's individual files. To prevent detrimental effects to the swarm don't use with small incomplete swarms, only those with plenty of good seeders. A torrent with multiple webseeds, a large swarm of seeders and very few or no leechers is best. Don't abuse. Try the "Weak" mode first before any of the stronger modes.

When streaming the file(s) of a torrent, the buffer at the front of each file helps maintain the swarm health but you should still only stream under the ideal conditions described above.

Seed as long as you can and keep as high of an upload rate as possible.
It is really only for webseeds and I have maintained my fork as to be very stable for webseeds. I don't know if trunk is stable yet on webseeds yet as I don't use it very often except for other bug testing.
Post Reply