From: Loic Dachary <loic@dachary.org>
To: Andreas Joachim Peters <Andreas.Joachim.Peters@cern.ch>,
"ceph-devel@vger.kernel.org" <ceph-devel@vger.kernel.org>
Subject: Re: Simplified LRC in CEPH
Date: Fri, 01 Aug 2014 18:17:44 +0545 [thread overview]
Message-ID: <53DB88EC.4050209@dachary.org> (raw)
In-Reply-To: <3472A07E6605974CBC9BC573F1BC02E4AE75333D@CERNXCHG44.cern.ch>
[-- Attachment #1: Type: text/plain, Size: 2897 bytes --]
Hi Andreas,
Enlightening explanation, thank you !
On 01/08/2014 13:45, Andreas Joachim Peters wrote:
> Hi Loic et. al.
>
> I managed to prototype (and understand) LRC encoding similiar to Xorbas in the ISA plug-in.
>
> As an example take a (16,4) code (which gives nice alignment for 4k blocks) :
>
> For 4 sub groups of the data chunks you build e.g. local parities LP1-LP4
>
> LP1 = 1 ^ 2 ^ 3 ^ 4
>
> LP2 = 5 ^ 6 ^ 7 ^ 8
>
> LP3 = 9 ^ 10 ^ 11 ^ 12
>
> LP4 = 13 ^ 14 ^ 15 ^ 16
>
> You do normal erasure encoding with 4 RS chunks:
>
> RS(1..16) = (R1, R2, R3, R4)
>
> You compute the local parity LP5 for the erasure chunks:
>
> LP5 = R1 ^ R2 ^ R3 ^ R4
>
> The relation which holds for Vandermonde matrices (because the first matrix row contains only 1's)
>
> LP1 ^ LP2 ^ LP3 ^ LP4 = R1
>
> So you need to store only 24 chunks (not 25):
>
> (1 .. 16) (R2,R3,R4) (LP1,LP2,LP3,LP4,LP5)
>
> Side remark: in this simplified explanation I imply R1, not LP5 as described in the Xorbas paper
Does it make a difference or is it equivalent ?
> The degree of the code is 5 e.g. you can construct a failure with 5 losses where you loose data, while if you are 'lucky' the code can even repair up to 8 failures (one loss in each sub group + LP5,R2,R3,R4).
>
> The reconstruction traffic for single failures is:
>
> [(20 x 4) + (4 x 8)]/24 =~ 4.66 x [disk size] instead of 16 x [disk size]
>
> There are three repair scenarios:
>
> 1) only single failures in any of the local groups using LRC repair (simple parities)
> 2) multiple failures which can be reconstructed with RS parities without LRC repair
> 3) multiple failures which can be reconstructed with RS parities after LRC repair
>
> [ 4) reconstruction impossible ]
>
> Having your proposed LRC layer (decoding) model in mind there is a certain contradiction here because there are cases where it is not required to use LRC since you can resolve all the failures with RS alone.
>
> In the end I think, it is sufficient if we introduce a parameter l in the EC parameter list which defines the number of subgroups in the data chunks and imply to use always one local parity for all RS chunks. So you can specify an LRC easily with three simple parameters:
>
> k=16 m=4 l=4
>
> The Xorbas configuration would be written as k=10 m=4 l=2
>
> Wouldn't that be much simpler and sufficient? What do you think?
It would, definitely. How would you control where data / parity chunks are located ?
Cheers
>
> Cheers Andreas.
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
Loïc Dachary, Artisan Logiciel Libre
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 263 bytes --]
next prev parent reply other threads:[~2014-08-01 12:32 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <3472A07E6605974CBC9BC573F1BC02E4AE753328@CERNXCHG44.cern.ch>
2014-08-01 8:00 ` Simplified LRC in CEPH Andreas Joachim Peters
2014-08-01 12:32 ` Loic Dachary [this message]
2014-08-01 12:44 ` Andreas Joachim Peters
2014-08-01 13:14 ` Loic Dachary
2014-08-01 14:25 ` Andreas Joachim Peters
2014-08-01 15:29 ` Sage Weil
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53DB88EC.4050209@dachary.org \
--to=loic@dachary.org \
--cc=Andreas.Joachim.Peters@cern.ch \
--cc=ceph-devel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.