On 04/28/2017 02:48 PM, David Turner wrote:
> Wouldn't k=1, m=1 just be replica 2? 

Well yes. But Ceph does not support mixing replication and erasure code in the 
same pool.

> EC will split the object into k pieces (1)... Ok, that's the whole object. 

I was just wondering if jerasure tolerates this degraded use case. Even though 
it's not useful in general it would solve Oleg issue.

> 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.

:-D

> 
> 
> On Thu, Apr 27, 2017, 6:49 PM Loic Dachary <[email protected] 
> <mailto:[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]> <mailto:[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] <mailto:[email protected]>
>     http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
> 

-- 
Loïc Dachary, Artisan Logiciel Libre
_______________________________________________
ceph-users mailing list
[email protected]
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to