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.