2010/9/14 Gregory Holt <[email protected]>:

>> Read-your-writes consistency works nicely for the iSCSI service. We
>> could live with weaker consistency models though.
>
> Swift has the small possibility you'd read older data, even just after 
> writing newer data with the same HTTP Keep-Alive connection.
>
> Example scenario: PUT obj(v1) goes to the three replica nodes desired 
> (1-2-3), no problem on read; then PUT obj(v2) times out on the first replica 
> node (x-2-3) but succeeds with two of the three saving the data, but a read 
> that succeeds on node 1 will return obj(v1).
>
> We have discussed making read hit all known replicas and return the greatest 
> version, but we have to test the impact of that at scale first.

Can we support that optionally?  e.g. selecting a consistency model
per container or object?


> Even with greatest version support, there always is a chance that only one 
> node could be reached on read, and that node might have older data.

Yeah, in such a case (nodes having the latest data are down, etc), it
would be better if a client gets an I/O error explicitly. But I don't
think that it's easy
to guarantee that (we did for Sheepdog storage system). Getting old
data is kinda silent data corruption, which could happen even with
real disk.
I think that we could live with that if the possibility is small (as
you know, some file systems can handle such failure).

_______________________________________________
Mailing list: https://launchpad.net/~openstack
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp

Reply via email to