[OpenIndiana-discuss] RAIDZ performance

Sašo Kiselkov skiselkov.ml at gmail.com
Thu Feb 21 19:06:36 UTC 2013


On 02/21/2013 07:27 PM, Timothy Coalson wrote:
> I think last time this was asked, the consensus was that the implementation
> was based on linear feedback shift registers and xor, which happens to be a
> reed-solomon code (not as clear on this part, but what matters is what it
> is, not what it isn't).  Regardless, from reading the source previously, I
> am fairly sure it operates bytewise, with xor for first syndrome (parity),
> and LFSR and then xor for the other syndromes.
> 
> See
> http://openindiana.org/pipermail/openindiana-discuss/2012-October/010419.html

Just had a look over the code of vdev_raidz_generate_parity_pq[r] and
you are right, the first column is calculated as a simple XOR parity.
However, as can been in vdev_raidz_generate_parity_pq, a raid-z2 does an
extra for() loop pass over the data in comparison to just the raid-z1
case above it. I don't have the time to test it separately, but
presumably this can incur quite a cost for the CPU in terms of
processing (especially if the block being processed doesn't fit in L1
caches).

Cheers,
--
Saso



More information about the OpenIndiana-discuss mailing list