Data Consistency Models of Public Cloud Storage Services: Amazon S3, Google Cloud Storage and Windows Azure Storage

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.

Eric Z Ma

Eric is a father and systems guy. Eric is interested in building high-performance and scalable distributed systems and related technologies. The views or opinions expressed here are solely Eric's own and do not necessarily represent those of any third parties.

Leave a Reply

Your email address will not be published. Required fields are marked *