Wouldn't k=1, m=1 just be replica 2? EC will split the object into k pieces
(1)... Ok, that's the whole object. And then you want to be able to lose m
copies of the object (1)... Ok, that's an entire copy of that whole
object.  That isn't erasure coding, that is full 2 copy replication. For
erasure coding to work you need to split the object into at least 2 pieces
(k) and then have at least one parity copy (m). With m=0  you have no
redundancy and just made a super slow raid 0.

On Thu, Apr 27, 2017, 6:49 PM Loic Dachary <[email protected]> wrote:

>
>
> On 04/27/2017 11:43 PM, Oleg Kolosov wrote:
> > Hi Loic,
> > Of course.
> > I'm implementing a version of Pyramid Code. In Pyramid you remove one of
> the global parities of Reed-Solomon and add one local parity for each local
> group. In my version, I'd like to add local parity to the global parity
> (meaning that for the case the global parity = 1, it would be replicated).
> This way in case of a failure in the global parity, you can reconstruct it
> using the replicated node instead of reconstructing it will all K nodes.
> >
> > This is my profile:
> > ceph osd erasure-code-profile set myprofile \
> > plugin=lrc \
> > mapping=DD_DD___ \
> > layers='[
> > [ "DD_DD_c_", "" ],
> > [ "DDc_____", "" ],
> > [ "___DDc__", "" ],
> > [ "______Dc", "" ],
> > ]' \
> > ruleset-steps='[
> > [ "chooseleaf", "osd",  8  ],
> > ]'
>
> You could test and see if commenting out the sanity check at
>
>
> https://github.com/ceph/ceph/blob/master/src/erasure-code/jerasure/ErasureCodeJerasure.cc#L89
>
> does the trick. I don't remember enough about this border case to be sure
> it won't work. You can also give it a try with
>
>
> https://github.com/ceph/ceph/blob/master/src/test/erasure-code/ceph_erasure_code_benchmark.cc
>
> Cheers
>
> > Regards,
> > Oleg
> >
> > On Fri, Apr 28, 2017 at 12:33 AM, Loic Dachary <[email protected]
> <mailto:[email protected]>> wrote:
> >
> >     Hi Oleg,
> >
> >     On 04/27/2017 11:23 PM, Oleg Kolosov wrote:
> >     > Hi,
> >     > I'm working on various implementation of LRC codes for study
> purposes. The layers implementation in the LRC module is very convenient
> for this, but I've came upon a problem in one of the cases.
> >     > I'm interested in having k=1, m=1 in one of the layers. However
> this gives out an error:
> >     > Error EINVAL: k=1 must be >= 2
> >     >
> >     > I should point out that my erasure code has additional layers
> which are fine, only this one has k=1, m=1.
> >     >
> >     > What was the reason for this issue?
> >     > Can replication be implemented in one of LRC's layers?
> >
> >     Could you provide the code for me to reproduce this problem ? Or a
> description of the layers ? I implemented this restriction because it made
> the code simpler. And also because I could not think of a valid use case.
> >
> >     Cheers
> >
> >     --
> >     Loïc Dachary, Artisan Logiciel Libre
> >
> >
>
> --
> Loïc Dachary, Artisan Logiciel Libre
> _______________________________________________
> ceph-users mailing list
> [email protected]
> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
>
_______________________________________________
ceph-users mailing list
[email protected]
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to