openstack team mailing list archive
Mailing list archive
Re: iSCSI target service on the top of swift
On Sep 14, 2010, at 1:15 AM, FUJITA Tomonori wrote:
> Sorry for the late reply, just got back from vacation.
> 2010/9/7 Gregory Holt <gholt@xxxxxxxxxxxxx>:
>> On Sep 6, 2010, at 4:18 AM, FUJITA Tomonori wrote:
>>> I've just started playing with swift, implemented block storage
>>> service (iSCSI) on the top of swift:
>> This sounds quite interesting but I'm wondering: what do you do with regards to inconsistency periods with Swift?
> What data consistency model does swift use?
> 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.
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.