Compare eventual consistency of object stores
Observed and documented eventual consistency of object stores, e.g., Amazon S3, OpenStack Swift.
Traditional systems provide strong consistency, where clients can immediately view updates. Some distributed systems relax their consistency model to allow greater availability or better performance. Eventual consistency manifests itself to clients as stale views of data.
We ran a test in which we wrote (i.e., create, update, delete) an object and then attempted to read the object. Across many trials, we count the number of times the object was not immediately available. When the object is not immediately found, it's an occurrence of observed eventual consistency.
Observed instances of eventual consistency with a number of operations during tests around 17 December 2014 with a 1-byte object size:
Provider | read after create | read after delete | read after overwrite | list after create | list after delete | number of operations |
---|---|---|---|---|---|---|
Amazon S3 (us-standard) | * | * | * | 16 | * | 100,000 |
Amazon S3 (us-standard†) | 16 | 8 | 12 | 8 | 3 | 1,000 |
Amazon S3 (us-west) | - | 1 | 1 | * | * | 100,000 |
Ceph (DreamObjects) | - | - | - | - | - | 1,000 |
Google Cloud Storage | - | - | - | 2 | 2 | 1,000 |
Microsoft Azure Storage | - | - | - | - | - | 1,000 |
OpenStack Swift (Rackspace) | - | 17 | 3 | 30 | 20 | 1,000 |
Legend: