Dear Lazyweb.
I've had some complaints that the strawberry binaries download rather slowly, particularly in some parts of the world.
So I need some suggestions on a better distribution mechanism, something better than just "serve it all from strawberryperl.com". (Note: I'm not looking for a better cpan.strawberryperl.com, just the main distro download).
Here's my criteria, in order...
1. Reliability
If I create a link to a download, and I test it on my computer in Australia (and it works) then it HAS to also work everywhere else.
This rules out distribution via CPAN and linking to the search.cpan.org multiplexor (as different mirrors sync non-deterministically and at different rates).
2. Statistics
Call it vanity, call it anything you like, but I insist on having at least SOME idea of the number of downloads. This gets more important later, once the number of variations starts to get higher, so I can get feedback on which variations are more popular. XP vs Vista, 32 vs 64 bit, exe vs msi vs zip, Vanilla vs Strawberry vs Chocolate etc.
This also rules out CPAN. I've got no way of knowing the number of downloads or installs, short of making the installer phone home.
I don't necesarily want the download figures to be public, but I can live with that if I have to.
3. Size
Currently, the production set of 5 release variants (1 Vanilla, 4 Strawberry) is around 100 meg. Assuming the next release gets Portable support, that grows to 7 variants. When the chocolate betas arrive, that grows to 13 variants, and if we end up needing a separate 64 bit release, or separate Vista releases, that could double of quadruple.
So the distribution mechanism has to be able to handle around a gig of downloadable files, possible up to 3 gig.
Again, this also rules out CPAN. It abuses the hospitality of the mirror operators in my opinion.
4. Speed
Downloads should ideally be fast. I'm assuming this probably means some mirror-based network that has at the very least a server in America and Europe, ideally a few more.
5. Usability
Currently, to download Strawberry you click on a single link on the front page.
I like that simplicity.
I really hate Sourceforge, because it makes downloading a pain. You have a releases list, you have to find the version you want, then you need to select a mirror, all on pages covered in SourceForge chrome and distractions.
Ideally, I want a one-click download process.
I can live with 2 clicks, if it involves almost no reading.
But no more than 2 clicks.
So, can anyone suggest something that meets all my criteria?
Re:Hosting
Alias on 2008-05-07T09:50:35
I can handle the traffic now, easily... it's just that any single point is likely to be slow from a single point on the internet to all arbitrary points on the internet.
Re:Torrents, and an offer to mirror
Alias on 2008-05-07T09:57:25
Torrents probably aren't worth it for a 17MB file.
However, once we get some notional "Perl and CPAN on a Stick" 800MB package, then torrenting is absolutely the option I need.
Maybe even for Chocolate, but I really hope it is no bigger than 50MB.
Yes, the SourceForge file upload mechanisms are a diabolical mess. Yes the raw user interface for downloading files is a diabolical mess. BUT they do have a network of geographically distributed mirrors and they do give you stats on downloads. So all you have to do is use one of the many SourceForge upload scripts and then link directly to the download link that presents the user with a list of mirrors.
Alternatively, it seems like you could do it with CPAN if you only included mirrors which you had polled to ensure the file was available and you used a GeoIP thing to select a mirror.
Re:What about SourceForge?
Alias on 2008-05-07T09:51:20
That would mean though, writing my own multiplexor... which I'd like to avoid if at all possible.Re:What about SourceForge?
Alias on 2008-05-07T09:59:06
WRT SourceForge this is the problem "Yes the raw user interface for downloading files is a diabolical mess".
Strawberry's website is so simple and pain free, that going from that to the aformenting diabolical mess is something I really don't want.
How about the Coral Content Distribution Network? All you need to do is append.nyud.net
to the hostname in your link and they’ll fetch the original address, cache it, and deliver it through whichever of the currently 260 participating servers is nearest to the client.
It does increase latency for the first person to click the link, and they do drop infrequently requested stuff, so it’s not a panacea, but for URIs with a steady stream of requests, the service should help handily.
Re:Poor man’s Akamai
Alias on 2008-05-08T00:25:59
Curiously, Coral's home page is blocked by my corporate porn/gambling/social-network/etc filter...
This is an excellent idea though, I should investigate further.
Re:geo dns and mirrors
Alias on 2008-05-08T00:28:25
"saying if you think this is too slow please to be using one of our mirrors and link to a mirrors page."
This isn't a good enough solution. Making people read/think is not an option!:)
I also don't really want to have to set up my own mirror pool for something as simple as downloading a dozen files.