The following diagram (click for large version) shows the various consistency models that have been discussed in this blog post series. Stronger consistency modes generally meet the requirements of weaker modes, and are thus shown as subsets in this Venn-like diagram.
Keep in mind that for many products, consistency is tunable: a product doesn’t necessarily belong to a particular rectangle, but a given operation certainly does.
- Eventual Consistency - eventual consistency as defined by Amazon in the Dynamo paper.
- Monotonic read consistency - a stricter form of eventual consistency.
- Read-your-own-writes consistency - a stricter form of eventual consistency.
- MRC + RYOW - a system with both monotonic read plus read-your-own-writes properties. A master-master replication system, where a given client always interacts with a single master, would have these properties.
- Immediate Consistency - a system which is immediately consistent but which does not support atomic operations. Strict quorum systems, where R+W>N, meet this criteria (and theoretically could do more, depending on the design).
- Strong Consistency - a system which supports read/write atomic operations on single data entities. This is the default mode for MongoDB.
- Full Transactions - Oracle!