Opened 8 years ago

Last modified 8 years ago

#5408 new Enhancement

Increased priority to "nearly finished" torrents?

Reported by: Renara Owned by:
Priority: Low Milestone: None Set
Component: Transmission Version: 2.80
Severity: Minor Keywords:
Cc:

Description

Quite simply this proposal would add a setting that allows a user to set a percentage and a size; if a torrent's remaining download drops below the lowest of these two values, then it is given an increased priority until it is completed.

Essentially this will allow Transmission to focus on finishing torrents that are close to completion. This has the twin benefits of allowing torrents to be done sooner, but also to get them into the seeding state sooner, which can free up resources for downloads (especially if the seed queue is enabled).

This would also help to cut down on one frustrating case that often requires micro-management when a torrent that is close to finishing just isn't getting enough bandwidth to actually finish. Of course there are other potential causes, but giving Transmission an automatic setting that helps to complete them sooner should avoid the need to manually tweak priorities, or pause other transfers until a specific one actually finishes, which is what I currently find myself having to do quite a lot.

To implement this proposal may require the addition of a hidden "very high" priority, so that torrents that meet the criteria, but already have a high priority, can still gain priority over other torrents. Also, the reason I specify that both a percentage and size should be set is to prevent very large torrents from hogging bandwidth; for example, if I set a percentage of 10% then a 20gb torrent would hog bandwidth with 2gb still to go, however setting a percentage of 10% and a size of 100mb and then using the smaller of the two values would allow this to be avoided; this means two settings might be better but if this is to be added then I'd like to strongly recommend that the twin options be used.

Change History (3)

comment:1 Changed 8 years ago by Renara

I just wanted to add that an alternative might be some kind of scaling mechanism, so that a torrent's priority increases with its percentage completion so that a torrent at the 75% mark might gain priority over normal torrents, while one at 90% would have priority over pretty much everything. Not sure of the specifics on how that would be implemented, would depend on how easily finer priority levels could be added to Transmission, e.g - if low was 0, normal 40 and high 80 out of a total of 100 priority levels, then it would be easier to have a sliding scale with torrents approaching closer to 100 to get them finished more quickly.

Would still need some kind of size limit, so torrents only begin receiving increased priority once they pass some threshold.

The proposal outlined in the first post is probably simpler, but it might be worth considering a scaling system if the priority system would be able to support it. Otherwise the simple "step up" method should still be a useful improvement.

comment:2 in reply to: ↑ description ; follow-up: Changed 8 years ago by Nemo_bis

Replying to Renara:

Quite simply this proposal would add a setting that allows a user to set a percentage and a size; if a torrent's remaining download drops below the lowest of these two values, then it is given an increased priority until it is completed.

Isn't that a bug in (some) trackers? You should find and be given leechers even if you're still leeching: it works perfectly in transmission, all the more so as it follows a rarest first policy (https://trac.transmissionbt.com/ticket/3767).

comment:3 in reply to: ↑ 2 Changed 8 years ago by Renara

Replying to Nemo_bis:

Isn't that a bug in (some) trackers? You should find and be given leechers even if you're still leeching: it works perfectly in transmission, all the more so as it follows a rarest first policy (https://trac.transmissionbt.com/ticket/3767).

Actually no, the issue you linked to is to do with prioritisation of chunks when leeching; effectively it just determines what order the different parts of the torrent are downloaded in. This proposal is about increasing a torrent's bandwidth priority if it's nearing completion, so a torrent that's nearly finished will finish more quickly.

For example, say I have 10 torrents downloading with a download cap of 100kb/sec, potentially giving each a 10kb/sec download speed. However, one of these torrents is smaller, and is 70% finished, while the others are larger and closer to 30% finished. As a result, the torrent that is nearer to completion gets its priority increased, and thus more bandwidth (if there are peers enough of course) with the idea being that it will complete more quickly, freeing up bandwidth for the other torrents sooner, and also giving you a completed torrent sooner. So while the smaller torrent may end up hogging download speed for a little while, it will free that up more quickly, leaving less torrents to divide the bandwidth between, and giving you a complete torrent that you can now use.

In practice the time it takes to finish all ten torrents shouldn't change, but you will get completed torrents more quickly, allowing them to switch from leeching to seeding-only sooner.

Note: See TracTickets for help on using tickets.