左右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
版权声明:本文博主原创文章。博客,未经同意不得转载。