Ticket #28 (closed feature request: fixed)

Opened 11 years ago

Last modified 11 years ago

Queue system (max downloads/ max total torrents active)

Reported by: Eoin Owned by: Eoin
Priority: major Milestone: v 0.3.2
Component: GUI Keywords:
Cc:

Description

Queue system based on libtorrent's internal implementation. Which means it makes sure that a limited number of torrents are being downloaded at any given time, and once a torrent is completely downloaded, the next in line is started.

Torrents that are auto managed are subject to the queuing and the active torrents limits. The default values are 8 active downloads and 5 active seeds.

At a regular interval, torrents are checked if there needs to be any re-ordering of which torrents are active and which are queued. This interval can be controlled via auto_manage_interval in session_settings. It defaults to every 30 seconds.

Downloading

Torrents that are currently being downloaded or incomplete (with bytes still to download) are queued. The torrents in the front of the queue are started to be actively downloaded and the rest are ordered with regards to their queue position. Any newly added torrent is placed at the end of the queue. Once a torrent is removed or turns into a seed, its queue position is -1 and all torrents that used to be after it in the queue, decreases their position in order to fill the gap.

The queue positions are always in a sequence without any gaps.

Lower queue position means closer to the front of the queue, and will be started sooner than torrents with higher queue positions.

Seeding

Auto managed seeding torrents are rotated, so that all of them are allocated a fair amount of seeding. Torrents with fewer completed seed cycles are prioritized for seeding. A seed cycle is completed when a torrent meets either the share ratio limit (uploaded bytes / downloaded bytes), the share time ratio (time seeding / time downloaing) or seed time limit (time seeded).

Change History

comment:1 Changed 11 years ago by Eoin

  • Status changed from new to assigned
  • Milestone changed from v 0.3.1 to v 0.3.2

comment:2 Changed 11 years ago by Eoin

  • Status changed from assigned to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.