thin pipes and fat files
Why can’t I control how much bandwidth different programs on my computer use?
I’m sitting here in a hotel trying to download my email for a quick check. I have 10 minutes before I have to run. And though my mail usually comes down pretty quickly, and I’m on a halfway decent wifi connection, it’s like molasses. Why? Because itunes is busy downloading podcasts, and isync decided now would be a good time to check for calendar changes. It’s not a huge deal right now, but in the past I’ve been truly hosed when it happened while I was on dialup from an airport. If my mail client times out during an IMAP update, it needs to resync my entire inbox–all gigabyte or so. Mail is high priority (and only activated deliberately), while itunes and isync are background. I’m always torn between letting any application access bandwidth in the background, because of the 5% of the time when it tries to, say, download an enormous update to MS Office at an inopportune time.
What I need is an adaptive algorithm in the background that knows that something is going on over the network, and that now might not be the time to do an automatic sync. Or maybe that the user should be asked. In the old days, you were either online or off, and internet-based applications can usually tell the difference. But in my mobile, laptop-based life, there are finer shades of grey. Sometimes the computer is busy, and the OS supports priorities for certain processes (at least Mac and Linux do, not sure about Windows.) But the network use is still a free-for-all, with some apps using more than others, and the only adaptivity is between the client and the server, not between the programs running on my machine.