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 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. Amazon S3 buckets in all Regions provide read-after-write consistency for PUTS of new objects and eventual consistency for overwrite PUTS and DELETES. However, there is one exception: if a HEAD or GET request to a key name is made to find if the object exists before the object is create, Amazon S3 provides only eventual consistency. Updates to a single key are atomic.
More information on Amazon S3’s data consistency model is available at http://aws.amazon.com/s3/faqs/
Amazon DynamoDB ∞
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 (2x) 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 global consistency for upload and delete operations and list operations in a region, and eventual consistency for object list operations across regions. For access controlling, granting is strongly consistent while revoking is eventual consistent. Additionally, the upload operations to Google Cloud Storage are atomic.
Caches, as usually, have a different consistency model from the storage itself. Cached objects from Google Cloud Storage that are publicly readable might not exhibit strong consistency.
For more information on Google Cloud Storage’s consistency model, please check https://cloud.google.com/storage/docs/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.