← Back to team overview

openstack team mailing list archive

Re: Swift Consistency Guarantees?


You would need to have the following occur, to make your scenario plausible:

* you write the object, which places it on a majority of the replica nodes
(i.e. 2 out of 3)
* replication is slowly churning away, but doesn't quite catch up
* both the nodes that have the updated data fail simultaneously, before
replication catches up the remaining node.

Swift chooses the A & P from CAP. if the swift proxy where to wait till all
replicas got updated before it returned a reply, it would be choosing the C
but probably dropping both the P and maybe the A (depending on how it would
handle a failure).

So yes.. you are hitting CAP on the head...

On Fri, Jan 20, 2012 at 6:56 PM, Nikolaus Rath <Nikolaus@xxxxxxxx> wrote:

> On 01/20/2012 06:35 PM, Pete Zaitcev wrote:
> > On Fri, 20 Jan 2012 15:17:32 -0500
> > Nikolaus Rath <Nikolaus@xxxxxxxx> wrote:
> >
> >> Thanks! So there is no way to reliably get the most-recent version of an
> >> object under all conditions.
> >
> > If you bend the conditions hard enough to hit the CAP theorem, you do.
> From what I have heard so far, it seems to be sufficient if all servers
> holding the newest replica are down for me to get old data. I don't
> think that this condition is already hitting the CAP theorem, or is it?
> Best,
>   -Nikolaus
> --
>  »Time flies like an arrow, fruit flies like a Banana.«
>  PGP fingerprint: 5B93 61F8 4EA2 E279 ABF6  02CF A9AD B7F8 AE4E 425C
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to     : openstack@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~openstack
> More help   : https://help.launchpad.net/ListHelp