Tuesday, August 31, 2010

Eventual Consistency


Eventual consistency is one of the consistency models used in the domain of parallel programming, for example in distributed shared memory, distributed transactions, and optimistic replication.

The term itself suggests the following definition: when no updates occur for a long period of time, eventually all updates will propagate through the system and all the replicas will be consistent. While some authors use that definition (e.g., the Vogels citation above), others prefer a stronger definition that requires good things to happen even in the presence of continuing updates, reconfigurations, or failures. In the Terry et. al. work referenced above, eventual consistency means that for a given accepted update and a given replica eventually either the update reaches the replica or the replica retires from service.

In database terminology, this is known as BASE (Basically Available, Soft state, Eventual consistency), as opposed to the database concept of ACID.

No comments: