cycreation - Fotolia

What is eventual consistency in object stores?

Eventual consistency in object stores can be an issue because object storage is spread over many nodes and up-to-date data may not always be available.

All data storage has three factors referred to as CAP: consistency, availability and partitioning. Most users want to stay away from partitioning because if affects consistency and availability. When you have to scale out storage, you have to deal with these issues. But object stores have eventual consistency -- and not immediate consistency -- on the read.

Let’s say you've just changed an object by writing to it, but someone else is now accessing that object on a different node. The node could be in a different physical location because object storage can scale across a large geographic region. This new user will be reading the object, but it will be an older version. And while there will be eventual consistency of the object stores, it's not consistent at that moment in time.

That's a problem for a lot of people, especially if you use an object store for collaboration. Some vendors have done a good job of providing guaranteed consistency for their object storage, such as Joyent with its Manta Storage Service, and don't allow you to read the old content once it has been changed. You have to wait to read the content, but what you read is consistent. In addition, everybody does things a little differently on the consistency front.

Next Steps

OpenStack Swift implements concept of eventual consistency

Swift object storage uses eventual consistency to implement data resiliency

Eventual consistency affects performance of cloud object storage

Dig Deeper on Storage architecture and strategy

Disaster Recovery
Data Backup
Data Center
and ESG