Opened 14 years ago

Closed 14 years ago

#834 closed Enhancement (invalid)

Bandwidth cap/quota

Reported by: inio Owned by:
Priority: Normal Milestone: None Set
Component: Transmission Version: 1.10
Severity: Normal Keywords: bandwidth, bandwidth cap, quota
Cc:

Description

Many users are in environments where they have to respect daily/weekly/monthly transfer quotas to not anger ISPs/sysadmins. It would be useful if Transmission was aware of this type of limit, so that it could more fully use available resources.

As I imagine it, the GUI (preference tab) would look something like:

Upload quota: [number box] [menu: MB, GB, TB, unlimited]
Download quota: [number box] [menu: MB, GB, TB, unlimited]
Quota period: [number box] [menu: hours, days, weeks, months]
Quota type: [menu: rolling window, reset at]
Next quota reset: [date+time box] Bandwidth Rationing: [slider from "none" (0) to "strict" (1)]

The upload and download limits would then be calculated as follows:
Bmax: maximum bandwidth specified using current system
Bration: Bandwidth rationing value
Ttot: total seconds in current period
Trem: remaining seconds in current period
Qtot: total bytes in current period's quota
Qrem: remaining bytes in current period's quota

Bmin = min((Qtot * Bration) / Ttot, Bmax)
if (Qrem / Trem < Bmin) limit = Qrem / Trem
else limit = Bmax

The purpose of bandwidth rationing is to allow part of the quota to be used freely, resulting in higher efficiency in cases where peer or network availability fluctuates significantly over the quota period.

Change History (1)

comment:1 Changed 14 years ago by charles

  • Resolution set to invalid
  • Status changed from new to closed

This isn't a bad idea, but I'm going to vote against it because

(1) not many people will use it (2) it's not really in sync with Transmission's KISS motto

If at some point we add support for plugins, we should put in transfer count hooks so that this could be done by 3rd party software... but IMO it shouldn't be in core.

Note: See TracTickets for help on using tickets.