[OpenIndiana-discuss] RAIDZ performance

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


On 02/21/2013 08:06 PM, Sašo Kiselkov wrote:
> 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).

Shit, ignore my previous babbling, I need to look more carefully. Of
course there's only a single pass over the data...

--
Saso



More information about the OpenIndiana-discuss mailing list