AWS S3 Data Consistency Model
- S3 achieves high availability by replicating data across multiple servers within Amazon’s data centers.
- S3 provides read-after-write consistency for PUTS of new objects
- For a PUT request, S3 synchronously stores data across multiple facilities before returning SUCCESS
- A process writes a new object to S3 and will be immediately able to read the Object
- A process writes a new object to S3 and immediately lists keys within its bucket. Until the change is fully propagated, the object might not appear in the list.
- S3 provides eventual consistency for overwrite PUTS and DELETES in all regions.
- For updates and deletes to Objects, the changes are eventually reflected and not available immediately
- if a process replaces an existing object and immediately attempts to read it. Until the change is fully propagated, S3 might return the prior data
- if a process deletes an existing object and immediately attempts to read it. Until the deletion is fully propagated, S3 might return the deleted data
- if a process deletes an existing object and immediately lists keys within its bucket. Until the deletion is fully propagated, S3 might list the deleted object.
- Updates to a single key are atomic. for e.g., if you PUT to an existing key, a subsequent read might return the old data or the updated data, but it will never write corrupted or partial data.
- S3 does not currently support object locking. for e.g. If two PUT requests are simultaneously made to the same key, the request with the latest time stamp wins. If this is an issue, you will need to build an object-locking mechanism into your application.
- Updates are key-based; there is no way to make atomic updates across keys. for e.g, you cannot make the update of one key dependent on the update of another key unless you design this functionality into your application.
AWS Certification Exam Practice Questions
- Questions are collected from Internet and the answers are marked as per my knowledge and understanding (which might differ with yours).
- AWS services are updated everyday and both the answers and questions might be outdated soon, so research accordingly.
- AWS exam questions are not updated to keep up the pace with AWS updates, so even if the underlying feature has changed the question might not be updated
- Open to further feedback, discussion and correction.
- Which of the following are valid statements about Amazon S3? Choose 2 answers
- S3 provides read-after-write consistency for any type of PUT or DELETE.
- Consistency is not guaranteed for any type of PUT or DELETE.
- A successful response to a PUT request only occurs when a complete object is saved
- Partially saved objects are immediately readable with a GET after an overwrite PUT.
- S3 provides eventual consistency for overwrite PUTS and DELETES
A customer is leveraging Amazon Simple Storage Service in eu-west-1 to store static content for web-based property. The customer is storing objects using the Standard Storage class. Where are the customers’ objects replicated?
- Single facility in eu-west-1 and a single facility in eu-central-1
- Single facility in eu-west-1 and a single facility in us-east-1
- Multiple facilities in eu-west-1
- A single facility in eu-west-1
- A user has an S3 object in the US Standard region with the content “color=red”. The user updates the object with the content as “color=”white”. If the user tries to read the value 1 minute after it was uploaded, what will S3 return?
- It will return “color=white”
- It will return “color=red”
- It will return an error saying that the object was not found
- It may return either “color=red” or “color=white” i.e. any of the value (Eventual Consistency)