-
Data reconstitution
I am writing a program that will probably require PAR-like (http://parchive.sourceforge.net/) data reconstitution...much like some RAID systems have.
What I am basically wondering is should I use a command line copy of Parchive or are there any sites out there that I could possibly learn the concept behind it from so I can design my own implementation or perhaps use someone else's code...anyone got any ideas or thoughts? I would prefer an integrated solution but if I have to use external programs I can do...it just wouldn't look professional :-)
-
Re: Data reconstitution
Parchive uses the Reed-Solomon algorithm, which shouldn't be that hard to implement. I checked out the source tarball at parchive, and it doesn't look like it would be that hard to port.
-
Re: Data reconstitution
Yeah, I was reading up on that...I followed a few links and found some C code there for the original reed soloman calculations, but most of this is beyond me completely. I've emailed one of the guys who made Parchive and asked what they thought I should do or if they knew of any sites with good information on the theory behind data reconstitution and now I'm awaiting his response.
Hopefully it is a simple enough matter to make something a little simpler than the way PAR/PAR2 works, my need is for the ability to rebuild any 50k file within a 10MB block of data if it becomes corrupted. I am designing something similar to the AICH system used in eMule (see http://www.amule.org/wiki/index.php/AICH if you don't know about it)...I am trying to make something that could repair a block of data even if the original block isn't available anywhere (as long as someone shares a repair block, of course :-))...given this uniformity, it should be easier :-)
-
Re: Data reconstitution
Still no response from the guy...I might have to mess about with the RS algorhythm and see if I can understand it :-)
-
Re: Data reconstitution
Yeah, I know...replying to old posts...well, I'm still trying and that guy never emailed me back. I understand the theory behind redundant data and repairing *one* block by using the values in the valid blocks around it (adding up all the first bytes would, for instance, generate the value 100 and if you calculate those bytes and get 95 for all of them minus the bad block then you know the bad block should be 5...and of course you MOD(256) the results so if it goes over 255 it loops around again :-)) but that will ONLY work with one bad block and I am now working on a totally different project that would require the ability to repair multiple blocks like Parchive does.
Anyone got places I can go to read up on this? I found http://www.4i2i.com/reed_solomon_codes.htm which helped a little but I guess I don't have the underlying knowledge to do it :-)