We've been working on a new internal wiki to
capture download best practices gleaned over the past 11 years
of designing and managing our high capacity download systems. I think
this is good and valuable information so wanted to blog about some of
our findings. This will be the first in a series of posts on the
First, let's consider our goals in defining and publishing
these practices. At a high level, I'd sum them up as follows:
- Ensure customers are able to download successfully, as fast
as possible and with minimal hassle.
- Provide a consistent and efficient download experience.
- Increase completion
rates and reduce abandonment.
- Ensure our systems and processes optimize the conversion of
downloaders into (paying) customers.
- Save time and bandwidth (cost) for Sun and our customers.
- Within Sun, document the processes to release software for
download, and ensure they are followed.
Our first best practice is seemingly simple yet frankly it's
not been followed consistently over the years: use a unique file name
for every file in every product and version release. There are several
reasons why this is so important, the first of which is unique to our
Download Manager uses special "verification property files"
(VPFs) to checksum files as they are downloaded from Sun Download Center.
The VPFs are mapped to unique file names. So, here's where we get into
really deep water if file names aren't unique from release to release!
If we release a product with file name "product.zip", a VPF will be
created called "product.zip.sdm.zip" that SDM grabs
automatically and uses to checksum the file and ensure a successful
download. Now if the product team releases the next version of the
product but does not update the file name, a new VPF will be created
with the same name as the prior one. This works fine for downloading
the new product. But when users try to download the prior version,
there will be a checksum mismatch between the old file and the new VPF
-- the download will fail. And that's why this is so critical on our
Here are a couple of other good reasons (not unique to Sun's
- Downloads often flow through content distribution networks
which cache files around the world for fastest delivery. Unique file
names ensure caching works most efficiently and eliminates the
potential for delivering incorrect content from the caches.
- Unique file names reduce potential errors when locating,
copying, moving, updating, reporting on, and archiving content.
It's really not hard to do, so we hope you'll follow this