[sheepdog] consistency problem when replicating to multi-replica
Hitoshi Mitake
mitake.hitoshi at lab.ntt.co.jp
Mon Jan 5 01:52:18 CET 2015
At Sun, 04 Jan 2015 23:27:15 +0800,
guping wrote:
>
> Sheepdog send write request to all replica simultaneously to do the
> replication. Which I think could lead to divergent content in replicas.
>
> Imagine a scenario, there are two write requests A & B to update the
> same offset in a 2-replicas object. If a qemu client send A and B to a
> gateway concurrently, the gateway will send A and B to the same set of
> replicas simultaneously. Which could not guarantee the same sequence to
> apply A and B, you can apply A then B in a replica and apply B then A in
> another replica, then you get two request return successfully but not
> the same data in the replicas.
>
> Is this a consistency problem in sheepdog? How can we deal with it?
Hi Gu,
Currently, the above problem is prevented for a case of copy on write
requests (first write to an object). Look at
check_simultaneous_create() of sheepdog driver in qemu. Multiple COW
requests for a single object is serialized for not losing written
information illegally.
But, the driver doesn't do the serialization for ordinal write
request. As you say, there might be a possibility of divergent
objects. Could you produce the problem with artificial workload?
Thanks,
Hitoshi
>
> --
> Thanks,
> Gu Ping
> --
> sheepdog mailing list
> sheepdog at lists.wpkg.org
> https://lists.wpkg.org/mailman/listinfo/sheepdog
More information about the sheepdog
mailing list