3 ms·
> > how do you distribute the ECC sensibly? you can't. > I am not an expert on ECC. Are you saying that you can't store the ECC just anywhere? Well, you can p
by pwg 8y ago
> > how do you distribute the ECC sensibly? you can't.
> I am not an expert on ECC. Are you saying that you can't store the ECC just anywhere?
Well, you can put it "just anywhere", but /where/ you put it determines /what failure types/ you can recover from.
> Just storing it alongside the data is not good enough? Why does ECC need special treatment?
If you want to recover from bitrot, then putting the ECC data for a sector alongside the data in the same sector is sufficient (you'll have less bytes stored per sector, but if a bit flips, you can recover the original data).
But, storing the ECC in the same sector with the data it protects will not protect against losing the entire sector (drive can't read whole sector error). In this instance both the data and the ECC is lost simultaneously, so the ECC can not help here if it is also lost at the same time. So if you want to protect against loss of a sector you need your ECC stored somewhere else (i.e., on a different sector that is unlikely to be correlated to the lost one in a failure situation) so that you still have the ECC available when the sector you are protecting goes away.
But, if you are protecting against loss of an entire physical drive, then the ECC for the drive needs to be on another physical drive (same reasons apply as for a "sector", just at the level of a whole physical disk).
It is all tradeoffs. You /can/ put it anywhere, but where you choose to store it determines which failure types you can recover from.
- blattimwind 8y agoDisk drives use sector-level ECC, silent sector corruption should be (and IME is) more rare than unrecoverable sectors.