Note: This FAQ is for the project. If you are a poster or downloader and need a FAQ for the usage or something for your .nfo file, take a look at this: info.txt
Q: What is this for...?
A: The primary intention of the Parity Volume Set is to release binary newsgroups of some repost traffic.
Example: You post 10 rar volumes into a binary group. But some people don't get all of them. One is missing r01, another one is missing r06 and a third one is missing r04. Usually, you have to repost these 3 files now. But now you can create a parity volume for your post (one is enough here). Everyone can download it and recover his missing file with it. It doesn't matter, which file is missing, as long you have as much parity volumes as missing files. (Which parity volumes of the set these are doesn't matter too.) In this case, the posting of 1 file will avoid the posting of 3 files...
Q: But there are those people with crappy servers, who are missing half of every post. Will this help them too?
A: No. The only thing, that can help them, is to get some balls and pay for a premium server...
Q: Only rar? Can I use this for other files (pictures, MP3) also?
A: Yes. Mirror will work with files of every type. So you can use it in many other cases too. However, there are two limitations:
First, the number of input files + parity volumes is limited to 255. This is due to the current implementation of the Reed-Solomon algorithm. (wordsize 8 bit) So it isn't suitable for large pic posts. Second, the parity volumes will always be as big as the biggest input file. Imagine, you have 10 files, 9 files with ca. 100k and one big file with 10 megs. If you create a parity volume set with 2 volumes out of those, then each volume will be 10 megs big. So if you miss 2 files of 100k, you have to download 2 files of 10 meg to restore them... (And the data redundancy will be 200% - 20 meg parity data for 10.9 meg files.)
So Mirror will be most efficient, if all files have the same size, like rar volumes.
Q: I recovered my movie download. Is there any impact to the quality?
A: No. Mirror doesn't care about the type of files. It just restores the binary data. Otherwise, Winrar won't decompress it. So, if Mirror says, the file is OK, you have the 100% pure binary original.
Q: Do I have to download and combine the incomplete files to fix them?
A: No. Mirror was build to restore missing files. If the file is already there and corrupt, Mirror doesn't care about it. It will just overwrite the file. So skip the files with missing sections and download a parity volume instead.
Q: So Mirror stores all the files in just this few parity files? Wow, thats so much less space. I think, I'll post only the par files...
A: Nope. You got this thing wrong. Mirror does not store the input data in the parity volumes, it stores just checksum data calculated out of the input data. With this checksum data AND the remaining input files, you can recover missing files. If you miss more files, than parity volumes you have, it won't work.
We do math here - no magic...
So it doesn't save bandwith - it eats more bandwith first (original files + parity volumes). But it will save you from the reposts, where everyone asks for another file.
Q: But at my group usually, there are less fills requested, than Mirror wants parity volumes to create. So this will just waste bandwith...
A: Right. If Mirror is helpful or not, depends heavily on the group. In some groups this tool is just not neccessary. If you are worried about the bandwith, do this:
Post without parity volumes. Then wait for the repost requests. Don't care about, what files they request - just count, how many everyone is missing. Pick the one out, who misses the largest number of files, then create and post that much parity volumes. So everyone will be happy and the bandwith is used the most efficient way.
Q: How is this working? I don't get this...
A: Something, everyone will understand:
You have 5 data bytes:
D1, D2, D3, D4, D5
Now you want to create a parity byte to restore missing data bytes. What to do? Just add them:
So you have lost D3 and want to recover it? Again, it's simple math:
Voila, you can restore every data byte this way, as long only one of them is missing. Thats how the first versions worked. (But to stay inside the range of a byte, we didn't add or substract, but used the XOR function.)
To create more than one parity byte, we switched to the Reed Solomon algorithm. This thing is more complex, but basically it does the same...
Q: Why is the program called Mirror? This is no RAID 1...
A: I had some discussions with Tobias about this, but he had his own intention with the name. (As you can see in the about box...)
Anyway, this is his baby. So he has the right to pick it's name.
Q: So, a W32 version - but I have Linux...
A: Go to sourceforge. There is a cmd line version for Linux and the source to compile it to other platforms.
Q: Works great... but it's buggy and there are functions missing. When does the new version comes out? Can i write such things too?
A: There will be no new versions. So if you want, write a better one.
The filespec is available at sourceforge. Everyone can use it.
Q: So this is open source? Where are your sources?
A: The file format is "open". With Mirror... well, it would be a crime to release such crappy code to public... Better, you'll start from scratch.
Q: Nice shot, but first Rar, then Mirror... how about writing a new archiver, that does all in one step?
A: Oh no! Not another archive format... Besides, you forgot the recovery record of Rar. This thingy will still be very helpful.
Q: Can't they include such a thing in Winrar?
A: This is one of our projected scenarios. If the parity system is successful and enough people ask Rarsoft, maybe they'll include a similiar function in Winrar. Rar is virtually the standard for large binary posts. I think, many paying customers of Rarsoft come from the usenet. I bet, Rar won't give up this territory to Ace.
May the best man win... evolution rulez... ;-)
Winrar 3 provides such a feature now with the .rev files. It is incompatible to the Parity Volume Sets, but it works too.