AW: RAID6 - RMW logic

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Von: linux-raid-owner@xxxxxxxxxxxxxxx 
> Gesendet: Mittwoch, 30. Juli 2014 23:30
> An: Markus Stockhausen
> Cc: linux-raid@xxxxxxxxxxxxxxx
> Betreff: Re: RAID6 - RMW logic
> 
> On Wed, 30 Jul 2014 20:24:30 +0000 Markus Stockhausen
> <stockhausen@xxxxxxxxxxx> wrote:
> 
> > Hi,
> >
> > the last days I tried to understand the RAID6 logic when recalculating
> > P/Q parity (or syndrome) if only parts of a stripe are updated. As far
> > ...
>
> Please see
>   http://comments.gmane.org/gmane.linux.raid/42559
> 
> Yes, this is something we probably want.
> The previous effort stalled somehow.  Maybe it just needs someone to start
> pushing again.
> 
> NeilBrown

Hi,

thanks for the link. Crawling through the modifcation I isolated two steps
that we must achieve in first place to get it on track. I'm far away from
implementing a full patch so I focus on what I understand.

1) Implement a generic switch so we can configure rmw/rcw handling
on the fly. Without any RAID6 rmw patches yet it will simply focus on the
current RAID5 implementation. Later on RAID6 can use it too and we
are able to  compare rmw versus rcw performance in all cases.
I would name the parameter enable_rmw and default it to 1. In RAID6 case 
it will be ignored.

-> Ok with that?

2) The previous patch was quite tricky with handling the P/Q calculation.
It combined a gen_syndrome run with 2 extra xor runs. Additionally it
saved P/Q delta in spare pages. Maybe to avoid patching gen_syndrome 
functions. I understand the discussion that the flag "subtract" and the handling
of the second spare page is not easy to understand. As explained in my
last mail I would enhance the syndrome functions with the option to XOR the 
target P/Q pages instead of only storing the calculated values. This would allow 
to work the same way the RAID5 shortcut does. See ops_run_prexor that uses 
parity page to store the interim result.

>From a performance perspective I would write separate logic in /lib/raid6 
by copying the existing functions. Another approach could be to change 
all gen_syndrome functions to xor the destination page - and empty the
target page in advance for the rcw case. In all cases this patch will be quite 
huge but I should be easy to understand and to verify.

-> Suggestions?

Best regards.

Markus
****************************************************************************
Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte
Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail
irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und
vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte
Weitergabe dieser Mail ist nicht gestattet.

�ber das Internet versandte E-Mails können unter fremden Namen erstellt oder
manipuliert werden. Deshalb ist diese als E-Mail verschickte Nachricht keine
rechtsverbindliche Willenserklärung.

Collogia
Unternehmensberatung AG
Ubierring 11
D-50678 Köln

Vorstand:
Kadir Akin
Dr. Michael Höhnerbach

Vorsitzender des Aufsichtsrates:
Hans Kristian Langva

Registergericht: Amtsgericht Köln
Registernummer: HRB 52 497

This e-mail may contain confidential and/or privileged information. If you
are not the intended recipient (or have received this e-mail in error)
please notify the sender immediately and destroy this e-mail. Any
unauthorized copying, disclosure or distribution of the material in this
e-mail is strictly forbidden.

e-mails sent over the internet may have been written under a wrong name or
been manipulated. That is why this message sent as an e-mail is not a
legally binding declaration of intention.

Collogia
Unternehmensberatung AG
Ubierring 11
D-50678 Köln

executive board:
Kadir Akin
Dr. Michael Höhnerbach

President of the supervisory board:
Hans Kristian Langva

Registry office: district court Cologne
Register number: HRB 52 497

****************************************************************************

[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux