Do you have any resources or links where I can learn more about raid5 and parity miscalculations? I tried to google it, but the only relevant result seemed to be your post.
His description is very vague and unhelpful, so it's not surprising you've not had much luck.
There are several problems with RAID 5 (some of which good quality hardware and/or software can mitigate):
1. You only have 1 redundant drive. This means that RAID5 has the lowest level of protection of any RAID. RAID 0+1 (mirrored stripes) have slightly more redundancy - they can always recover from 1 lost drive, and sometimes recover from 2 lost drives. The more drives in your RAID 0+1, means less chance of recovering from 2 drive failure. Higher redundancy requires RAID 6 - which always permits recovery from 2 lost drives.
RAID 5: 0% chance of surviving 2 drive failure.
RAID 0+1: 50-66% chance of surviving 2 drive failure - chance goes down as more drives are added.
RAID 6: 100% chance of surviving 2 drive failure
2. RAID 5 (and also RAID 6) has relatively slow writes. If you have a 5 drive RAID5, and you write 1 sector. To calculate the parity, the RAID controller must first read the equivalent sector from 3 drives, then calculate the parity, and then save the parity to the 5th drive. This is slow. Good quality hardware/software can cache the stripes, or cache writes so that the system doesn't lag. Motherboard RAID is piss-poor at this, and Intel or Jmicron integrated RAID 5 is almost unusably slow.
3. Because of the delay in saving the parity data (point 2 above) - everytime data gets saved, there is a period when the parity information on the drives is out-of-date, and the new parity is in the process of being calculated. If the system crashes or the power goes out, the correct parity never gets written - and the fact that it never gets written is never recorded or noticed. This is sometimes called the RAID 5/6 'write hole'. Sometime later, a drive may fail, at which point the incorrect parity gets used for recovery - corrupting the data.
Good quality RAID systems automatically 'scrub' the array - they automatically read all the drives and all the parity, and check that the parity all matches. If the parity doesn't match, it is recalculated. This way, after an unclean shutdown, a routine weekly 'scrub' would recalculate the parity, drastically reducing the risk of data corruption. High-end hardware RAID cards do this as standard. Linux software RAID can do this (but needs to be configured to do this). Windows software RAID doesn't. Motherboard RAID - take a guess.
There are also techniques to work around the 'write hole'. Modern linux variants (kernel 2.6.33 and up) correctly handle 'write barriers' in RAID - this means that when the OS writes critical system data, it will wait for the parity to be calculated and written, before updating the file system journal to reflect the fact. In this case, no critical data could be corrupted due to the 'write hole'. The worst that happens, is that the 'update complete' entry gets corrupted from the journal, which would still leave the file system stable.
4. RAID 5 and especially 6, require large volumes of mathematics to perform the parity calculations. A flaky CPU or hardware RAID processor can cause massive parity corruption, which may be undetectable without scrubbing - leaving the array at risk of corruption in the event of a drive failure. RAID 1/0+1/1+0 are much simpler as no parity calculations are required.
People do talk about the CPU usage of software RAID 5 being an issue. It isn't. Modern CPUs can do the calculations far faster than it is possible to pump the data out. E.g. a core i7 uses only a fraction of a single core when writing to a 12 drive RAID 6 at 1 GB/sec.
5. RAID 5 is slow when running with a missing drive. If a program requests 1 sector from the missing drive, this requires a parity calculation which requires reading the matching sector from all the other drives - so in a 5 drive RAID 5 with a missing drive, 1 read request suddenly becomes multiplied onto all 4 drives. Under normal circumstances 1 read request would go to one of the 5 drives - so on average one read request causes 0.2 read requests on each hard drive. With a missing drive, this goes up to 0.36 read requests per hard drive. In effect, the array gets thrashed twice as hard if a drive is missing - and that's before you need to start hitting the drives to rebuild the array. This isn't much of an issue on a home box - but on a multi-user or database server, this could be crippling.
That said, this is still an issue with RAID 1+0 - whether the increase in thrashing is less than, or worse than RAID 5 depends on the controller algorithms. I'm not aware of a detailed analysis of what behaviors different products have.
A RAID6 with 2 missing drives is even slower - but that's the price you pay for parity.