The public cloud storage services like Amazon S3, Google Cloud Storage and Windows Azure Storage replicate the data to ensure high availability. On the other hand, with data being replicated, the storage services exhibits certain data consistency models. Different cloud service providers employ different data consistency models nowadays. In this post, we survey the data consistency models provided by the time the post is written (Feb. 4, 2014) by the solutions from the three big players: Amazon S3 (and DynamoDB), Google Cloud Storage and Windows Azure Storage.
Amazon S3 ∞
Amazon S3 is a simple key-based object store service for the Internet and provides a SLA which reflects it maturity.
Amazon S3 buckets provide read-after-write consistency for PUTS of new objects and eventual consistency for overwrite PUTS and DELETES in a number of regions, while the buckets in the US Standard Region provide eventual consistency. More information on Amazon S3’s data consistency model is available at http://aws.amazon.com/s3/faqs/
DynamoDB is an Internet-scale NoSQL database service provided by AWS. Different from Amazon S3, DynamoDB allows the users to choose between a strongly consistent read and an eventually consistent read based on the needs when the users get an item. Of course, the strongly consistent read consumes more resource than the eventually consistent read. Read more about DynamoDB at http://aws.typepad.com/aws/2012/01/amazon-dynamodb-internet-scale-data-storage-the-nosql-way.html
Google Cloud Storage ∞
Briefly, Google Cloud Storage provides strong read-after-write consistency for all upload and delete operations and eventual consistency for list operations. Additionally, the upload operations to Google Cloud Storage are atomic. There are several exceptions to the strong read-after-write consistency model which is related to the cache and the eventual consistency for list operations as discussed at https://developers.google.com/storage/docs/concepts-techniques#consistency
Windows Azure Storage ∞
Windows Azure Storage provides three properties that the CAP theorem claims are difficult to achieve at the same time: strong consistency, high availability, and partition tolerance. Brad Calder et al. published the design of the Windows Azure Storage in the paper Windows Azure Storage: A Highly Available Cloud Storage Service with Strong Consistency at SOSP’11.