by kdid » Fri Feb 09, 2007 8:54 am
I know that the below request mostly will be of any good for subsonic servers with a limitted upspeed. But here is my thoughts:
Could it be an idea to also have a automatic bandwidth setting that will distribute the available bandwidth between current players based on the number of players?
Say you have 400 kbit/sek upspeed line and have 5 potential players set to l28 kbit/sek limits. If all 5 players is online and playing, there would not be bandwidth enough, but if only 3 is online and playing, then there is bandwidth enough.
So what would be lovely to have is that if 5 players is online, the bandwidth on new songs would be reduced to the next speed that will work. E.g. In my example above, if there was 5 players at the same time, then the speed would be reduced to 400/5=80 kbit/sek.
Then when players is dropping out or stops playing, the bandwidth would increase again for new songs played on other players. - The number of players that subsonic counts when calculating the bandwidth should be the ones currently streaming or have streamed anything within the last n minutes. Say last 10 minutes. This to avoid the bandwidth to change to often.
This would require a place to specify the max bandwidth you want to use with subsonic, and a way to specify the internet gateway so that players on the local network is omitted from the bandwidth restrictions. - Also on the each user settings you will have a maximum bandwidth settings and a minimum bandwidth setting. The actual bandwidth the player gets would then be calculated to be within those limits. If there is a very large number of players, and not enough bandwidth to support the minimum bandwidth speed, then the minimum bandwidth setting probably should be ignored to make it possible to continue streaming.
You might have thought of this yourself, and it might be to much work to get it right, but I would at least have mentioned this for you.
----
Related to this I also would like to mention this: I do not know how this is currently handled, but have downloading lower priority than streaming? E.g. So in the above case where several users is streaming songs, if then all of them start downloading songs, will streaming be suffering, or would it just go very slowly to download? (as it should do in that case)
Maybe it should be possible to specify that downloading should be prioritized some. You could say that the minimum total download speed should at least be 100 kbit/sek, and the minimum per user download speed should be 50 kbit/sek. (Both values configurable.) Those settings will only be used when calculating the streaming speed. So the download speed would still be dynamic based on actual available bandwidth. But it would prevent that a high number of players would bring downloading down to a halt.
----
Under user settings the administrators would have settings for:
- Maximim bandwidth per player: [ ] kbit/sek
- Minimum bandwidth per player: [ ] kbit/sek *
* Will be ignored when needed.
Under general settings the administrators would have:
- Maximum bandwidth to internet: [ ] kbit/sek
- Minimum total download bandwidth: [ ] kbit/sek
- Minimum per user download bandwidth: [ ] kbit/sek
In addition each user can specify their preferred streaming bandwidth per player. Just as they do today.
-- kdid