Subject: Re: Why my life is sucking. Part 2.
To: Greg Oster <oster@cs.usask.ca>
From: Manuel Bouyer <bouyer@antioche.lip6.fr>
List: current-users
Date: 01/19/2001 17:31:29
On Thu, Jan 18, 2001 at 03:00:30PM -0600, Greg Oster wrote:
> [...]
> 
> A few other things about "parity rewrite on demand".
> 1) if a block is to be read, then the associated stripe must have its parity 
> updated before the block is returned.  (If it is not, and the component that 
> block lives on dies, then that block could be reconstructed incorrectly.)
> 2) if a block is to be written, then the associated stripe must have its 
> parity updated before the block is written. (same reason as above)
> 3) there could *still* be other stripes where the parity is incorrect, and 
> where a failed component would result in incorrect data being reconstructed.

3) is also true if you rebuild parity before doing any I/O, I believe.
If yo have to rebuild parity it's because it's dirty. Now, if a component fails
during parity rebuild, you'll still have part of the raid with dirty parity,
and data rebuild from parity may be wrong. I can't see how you can avoid this.

--
Manuel Bouyer, LIP6, Universite Paris VI.           Manuel.Bouyer@lip6.fr
--