With every passing day more and more stuff is available to download. Average download rate per day has also increased drastically since broad band is made available to more and more users. I remember I was using download accelerators to download anything more then couple of Mega Bytes on my dial up connection.
Have you ever tried or thought about downloading a CD image of approximately 600 – 700 MB 5 years back? Most probably not, right? But now forget about CD Images we can easily download DVD images of 4.7 GB within couple of days even with slowest broad band connection. Now a days almost everyone uses torrents and P2P clients to download huge files. This helps you to get your files faster and reduce the load on the servers as more then one computer host full/partial files.
Till now we were only looking at it from end user point of view, as an end user we want to download the files as soon as possible. But what about the servers on which these files are hosted? No wonder we have hard disks available in tunes of Tera Bytes now. Just look at the number of videos uploaded to You Tube everyday, or constantly increasing size of the inbox, or average size of the software’s distributed. Everything requires lot of storage space and that results in constant upgrades to server storage.
For commercial sites it should not be a problem to upgrade the infrastructures because they get some money for there product, services or advertisements they offer. Unfortunately our open source/free software friends does not have that flexibility as they are dependent on volunteers and donations to host their contents.
By this time you might have forgotten the purpose of this topic as it doesn’t contain a word about Jigdo. You are right but that was essential to understand and appreciate this tool. In this post I will stick to very basic information about Jigdo as all the details are explained in very clear and easy manner on Jigdo Website.
What is Jigdo:
In short Jigdo is a tool to create ISO images from set of files, this will help you to remove the actual ISO images from the server as the ISO image will be reconstructed on the user’s computer by downloading individual files present in the ISO image. This tool is developed by Richard Atterer.
Lets us try to understand this with an example:
Say you want to distribute you Linux destro, your complete destro consist of files of 1GB. Lets say you have four variants Complete, Desktop, Server and Minimum. Obviously these variants will be created using the subset of your overall 1GB data.
If you want to host the individual files and one ISO image each for each variant, total space requirement on the the server would be:
|Individual Files||1 GB|
|ISO For Complete||1 GB|
|ISO For Server||700MB|
|ISO For Desktop||600MB|
|ISO For Minimum||200MB|
This is nothing but duplication of data on the server, all files are stored multiple times, once as a individual file and one or more times as part of ISO images. Jigdo helps you to prevent this by creating the ISO images from individual files so you no longer need to store the ISO images on the server.
How Jigdo Works:
Lets continue from our example, you will create an ISO images from the individual files stored on the server and give this ISO file to Jigdo. Jigdo will create two files for you, first is .jigdo file and second is .template file.
.template file contains metadata about the ISO image i.e. .template file contains everything else in ISO image except actual files. this includes information about where the file offsets are in an ISO image, there checksum, directories etc. As this file contains binary data you will not be able to understand its content using text editor.
.jigdo file contains links to the actual files on the server along with there md5 checksum, this will be a gzipped text file that can be viewed using zcat.
Now instead of ISO image you will provide .jigdo and .template files to the end user. End user provides this file to jigdo. Jigdo will download each file separately using wget and place it in the local ISO file by using the information in the .template file. Thus jigdo will be able to reconstruct the bit by bit copy of the original ISO image.
How Jigdo Helps End User:
There are many advantages for end users
- Jigdo allows you to download individual files through different mirrors, so if you find that your current mirror is slow you can switch to different one, If you do this with ISO image hosted on server you need to download the whole thing again.
- If you already have a CD/DVD image of particular destro, Jigdo can use unchanged files from this CD/DVD rather than downloading them again, this will be very useful if you have beta version and want to download next beta or final version as not many file will change between these versions.
- You can stop and re-start the download process anytime
- Your download will be comparatively faster
- If you want to create your own distribution, you need to host only changed and new files again, rest of the files will be taken from the original server.
- Jigdo is file format independent you can host any big file using Jigdo on multiple servers
- Last but not least is you will help the open source/free software community to save some money on hosting services
Please go through the links below for details about Jigdo and using Jigdo.
Who is using Jigdo:
Links Related to This Post: