May 15, 2012

uTorrent -- the fairy godmother algorithm

I don't understand what it was that they did to the algorithm that decides where to spend its allocation of uplink.

Back in the days of uTorrent 2.2, it would try to divide its bandwidth equally among a large number of recipients. My usual traffic when I wasn't downloading was to have maybe 15 uplinks active, and each of them was being sent maybe 14Kbytes per second.

What seems to happen now is that the scheduler picks one particular guy, taps him with a magic wand, and gives him nearly everything. As I write this, I have 139 torrents enabled and seeding. Five of them are active, and 95% of my bandwidth is going to one particular guy in the Netherlands who is grabbing Chu-bra. Nine other leeches on the other four torrents are getting about 2 KB/s each.

If it actually stayed that way, and saturated my uplink, it would still be fine. Over the whole swarmiverse it would even out. But it doesn't. Once the NL guy gets done, then uTorrent may wait as much as half an hour before finally finding someone else it thinks is worthy of being tapped with the wand. In the mean time, my uplink will be about 30 KB/s, with 170 KB/s going to waste.

It's really strange.

Ah! The guy in the NL is off my charts now, and some guy who is downloading Satoshi Urushihara is getting about 180 KB/s. At least he has better taste than the NL guy.

Posted by: Steven Den Beste in Computers at 01:23 PM | Comments (5) | Add Comment
Post contains 256 words, total size 1 kb.

1 Hey, the guy who's seeding Chu-bra shouldn't be throwing stones!

Oh wait... "inconsistent and unfair."  Got it. 

Carry on! 

Posted by: ubu at May 15, 2012 04:12 PM (GfCSm)

2 That's right!

Posted by: Steven Den Beste at May 15, 2012 04:38 PM (+rSRq)

3 Maybe it's seeding to the swarms with the least overall bandwidth per leecher? A change in the bittorrent protocol? I wouldn't know. I'm still on 2.2.1 myself, as I didn't like what they changed when 3.0 came out.

If you really want to know, I suppose you could just read the changelogs of their releases.

Posted by: Jordi Vermeulen at May 15, 2012 10:33 PM (AJZdn)

4 Interesting, every once in a while, I'm downloading a torrent at a moderate pace (alas, not hitting my bandwidth) and suddenly someone will turn on the firehose and I'll start getting  a lot closer to 4 MBit.

(Other times I notice that I won't break 60K, and I just KNOW that's my ISP, who has figured out how to restrict torrents, but will allow Youtube to get through.  It's very odd,  Toggling the enable on UTP often changes things up enough to break through.)

Posted by: Mauser at May 15, 2012 11:16 PM (cZPoz)

5 My understanding is that the protocol change was driven by a combination of more people having large upload bandwidth, and a desire to minimize exposure of who's seeding.  If one "fairy godmother" seeder is sufficient to the needs of a client, then it makes sense to use that bandwidth, and let other potential seeders remain private.  I believe the new algorithms also track how many hops there are between a seeder and client, and strives to minimize that, preferring to heavily load a local seeder, as opposed to lightly loading several distant seeders.

Posted by: David at May 16, 2012 02:24 PM (+yn5x)

Hide Comments | Add Comment

Enclose all spoilers in spoiler tags:
      [spoiler]your spoiler here[/spoiler]
Spoilers which are not properly tagged will be ruthlessly deleted on sight.
Also, I hate unsolicited suggestions and advice. (Even when you think you're being funny.)

At Chizumatic, we take pride in being incomplete, incorrect, inconsistent, and unfair. We do all of them deliberately.

How to put links in your comment

Comments are disabled. Post is locked.
8kb generated in CPU 0.01, elapsed 0.0106 seconds.
20 queries taking 0.0059 seconds, 22 records returned.
Powered by Minx 1.1.6c-pink.