Amazon S3的数据一致性模型

关于Amazon S3的数据一致性模型有两种:

最终一致性和读写一致性。

有以下几种行为:

1 写一个新的object,然后开始读它,直到所有的变化都传播完(副本),你才能读到它,否则就是key does not exist。

2 写一个新的object,然后listkeys,直到所有的变化都传播完,你才能看到它。

3 覆盖一个已有的object,然后开始读它,直到所有的变化都传播完,你才能拿到最新的object,否则就是老的。

4 删除一个object,直到所有的变化都传播完,你读它,才会产生key does not exist,否则读到已删除的object。

5 删除一个object,直到所有的变化都传播完,你listkeys,才没有这个object,否则还会有它。


这里需要注意的是不同的region提供的数据一致性模型是不一样的,US Standard Region比较特殊,它提供的是最终一致性模型(eventual consistency)。其它的region提供的是对于put一个新的object,提供的是read after write consistency. 对于覆盖object和删除object,提供的也是最终一致性。

最终一致性可能导致脏读,但是latency会比较小,所以吞吐量会比较高。读写一致性不会出现脏读,但是latency可能会比较大,所以吞吐量会比较低。


还需要注意的是,S3并不提供锁,如果你同时对同一个key进行操作,那么后一个操作会覆盖前一个操作的结果。

原文:http://blog.csdn.net/hongchangfirst/article/details/36015151

作者:hongchangfirst

hongchangfirst的主页:http://blog.csdn.net/hongchangfirst


你可能感兴趣的:(Amazon S3的数据一致性模型)