[sheepdog] Question about fix_object_consistency()

MORITA Kazutaka morita.kazutaka at gmail.com
Sun Jun 3 08:47:52 CEST 2012


At Fri, 01 Jun 2012 21:38:27 +0800,
Liu Yuan wrote:
> 
> Hi Kazum,
>    I haven't get any clue what does fix_object_consistency() really fix
> for? I can't come up with a real scenario for it, it blindly uses
> forward_read_obj_req() to read a copy and then write it to cluster. It
> seems we don't have any quorum about which copy is corrupted or stale,
> if forward_write_obj_req() give us a strong consistency between replica,
> why do we bother fixing the consistency?

With the following scenarios, object replicas could have the different
contents:

 - a gateway node fails while forwarding write requests
 - total node failure happens while writing objects

In the such cases, it is okay for VMs not to read the latest data from
the inconsistent objects because the VMs received EIO from them
before.  However, it is still needed to fix the objects' inconsistency
so that the VMs won't read the different data from the objects next
time.

I don't like the current read-repair approach since the overhead is
very expensive and the most I/Os don't need the repair.  Any
alternatives are welcome as long as Sheepdog can provide a block
device semantic.

Thanks,

Kazutaka



More information about the sheepdog mailing list