XRG 1.1 was released this morning. I thought I’d try out releasing the same day as the MacWorld keynote just to see how it goes. So far, it’s been going really well or horrible, depending on how you look at it.
The good part is that about 1200 copies of XRG have been downloaded during the past 6 hours. The bad part is that I severely under-estimated the amount of bandwidth required when doing a software release (hmm, 1200 * 1.2Mb/copy = 1.44Gb + normal web traffic). Since the beginning, I’ve hosted the XRG web site on my own machine, and offered the XRG downloads from a machine at Ephibian. This was never a problem, and my web server (at the time on a 40K/sec uplink) always had plenty of bandwidth to spare, so I thought that hosting both the site and the downloads in-house on a 90K/sec uplink would work out well. Oh was I ever wrong. Within an hour of releasing, my connection was completely saturated and the server was handling over 90 connections concurrently. The network connection remained pegged for about 4 hours after that, and has only now started to trickle down a bit.
At first, I couldn’t think of any way to handle it and thought I was pretty much screwed, then I thought of a few things that helped out a bit. The first thing I did was set up a download mirror back on the old web server with a 40K/sec uplink. This helped less than I thought it would because, unfortunately, not too many people choose to download from a mirror site. The second thing I did was turn off my web log analyzer, not because it was taking too much CPU (actually, the server never broke a sweat really), but because I have the analyzer configured to do DNS lookups on the IPs that hit the server so I can see a pretty graph on where people are coming from throughout the world. 🙂 Usually, the analyzer runs every 2 hours, but I figured it could wait for awhile. This ended up helping more than I thought it would; I guess the number of DNS connections made would have been pretty high. This probably benefited the web page traffic the most, since a reduced number of connections on the network would improve the speed of short-term network connections dramatically.
So the lesson of the day is: If you release a software application, make sure you store the download(s) with a good hosting provider. I suppose the benefit of today’s events is that I’ll know this when releasing an application that I’ll actually be charging for. 🙂 I’ll probably post a followup blog entry on the release in a few days.
PS: MacMini? Sweeeeet… If I would have had this choice a few months ago my computer purchase would have been a lot more difficult. A compile farm of about 5-6 of these things would probably work faster than my 2.5Ghz G5 could chug through compiling apps. And then there would have been the numerous possibilites… 2Ghz G5 + MiniMac, or 1.8Ghz G5 with 2 MiniMacs, etc. Maybe it’s better I did buy my computer before these came out. 🙂