Hi Sage,

Paraphrasing what you suggested today : 

The logic for writing a stripe ( i.e. all the chunks created by the erasure 
encoding function for a given object or part of a given object if it exceeds 
the maximum size of a stripe ) for a single object is going to be done in a way 
that is not the same as what we currently have for replicated objects. The 
object is consistent when all chunks ( or at least K if K+M ) are committed to 
disk. It may make sense to start writing all the chunks in parallel and when 
they are acknowledged, send a pg_log event that says : now switch to this new 
version of the object. To avoid ending up with chunks that are partially for 
one version of the object and other chunks partially for another version of the 
object and we can't repair any of them. 

I will try to sketch the path for implementing the erasure coding ( including 
the above ) by adding to 
https://github.com/dachary/ceph/blob/wip-4929/doc/dev/osd_internals/erasure-code.rst

Cheers

-- 
Loïc Dachary, Artisan Logiciel Libre
All that is necessary for the triumph of evil is that good people do nothing.

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to